amazon-web-services - 通过 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 服务器后,我看了看。但似乎,用户没有创建。我在我的代码中遗漏了什么吗?
解决方案
实例上的软件检查第一行是否为<powershell>
.
行首的空格很可能会阻止它的工作,因此脚本不会被执行。
推荐阅读
- three.js - WebGL.Stencil 在 Three.js/editor 中工作吗?
- python - 使用 Pymodbus 顺序读取多个从站
- python - 如何将自己的装饰器添加到烧瓶管理面板?
- c - 如何在数组中打印条件语句
- javascript - JavaScript 2 onclick 事件,但只做第一个
- reactjs - Nextjs,无法理解 nextjs 中的构建大小结果
- keyboard-shortcuts - 在 iTerm2 中重现 Terminal.app 的回滚到上一个提示
- python - 在方法中引用相同模型时,无法通过联系人实例访问管理器
- google-oauth-java-client - 自动客户端密码
- python - For 循环使用前一个日期填充新列