我正在尝试启动一个实例,并在第一次作为用户数据的一部分启动时运行一个脚本。使用以下代码(python boto3 库):
import boto3
ec2 = boto3.resource('ec2')
instance = ec2.create_instances(DryRun=False, ImageId='ami-abcd1234', MinCount=1, MaxCount=1, KeyName='tde', Placement={'AvailabilityZone': 'us-west-2a'}, SecurityGroupIds=['sg-abcd1234'], UserData=user_data, InstanceType='c3.xlarge', SubnetId='subnet-abcd1234')
我一直在玩弄 user_data 但没有成功。我一直在尝试将某些字符串回显到现有目录中的新文件。以下是我尝试的最新版本。
user_data = '''
#!/bin/bash
echo 'test' > /home/ec2/test.txt
'''
ami 是基于 CentOS 的私有 AMI。我已经在服务器上本地测试了这些命令并使其正常工作。但是当我在用户数据上使用相同的命令(稍微调整以匹配用户数据格式)时,它不起作用。实例启动成功,但我指定的文件不存在。
我查看了其他示例(https://github.com/coresoftwaregroup/boto-examples/blob/master/32-create-instance-enhanced-with-user-data.py https://github.com/coresoftwaregroup/boto-examples/blob/master/32-create-instance-enhanced-with-user-data.py)甚至复制了他们的命令。
感谢您的帮助!谢谢 :)