首页 > 解决方案 > 通过 Lambda 启动 EC2 实例时未执行 Powershell 用户数据

问题描述

我创建了 AWS Lambda python3.6 函数来启动新的 windows ec2 实例。此外,我在启动新实例时添加了 powershell 脚本作为用户数据。但实例已成功启动。但不执行用户数据。

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    import os
    import boto3
    AMI = os.environ["AMI"]
    INSTANCE_TYPE = os.environ["INSTANCE_TYPE"]
    KEY_NAME = os.environ["KEY_NAME"]
    SUBNET_ID = os.environ["SUBNET_ID"]
    REGION = os.environ["REGION"]
    ec2 = boto3.client("ec2", region_name=REGION)
    def lambda_handler(event, context):
        init_script = '''
            <powershell>
            $USERNAME="Latchu"
            $PASSWORD="eM2An@ydxk"
            net user /add $USERNAME $PASSWORD
            </powershell>'''
instance = ec2.run_instances(
    ImageId=AMI,
    InstanceType=INSTANCE_TYPE,
    KeyName=KEY_NAME,
    SubnetId=SUBNET_ID,
    MaxCount=1,
    MinCount=1,
    InstanceInitiatedShutdownBehavior="terminate",
    UserData=init_script,
)

在启动 EC2 实例登录到 Windows 服务器后,我看了看。但似乎,用户没有创建。我在我的代码中遗漏了什么吗?

标签: amazon-web-servicespowershellaws-lambda

解决方案


实例上的软件检查第一行是否为<powershell>.

行首的空格很可能会阻止它的工作,因此脚本不会被执行。


推荐阅读