Python 在启动ec2实例时创建一个文件
我在本地机器中有一个文件Python 在启动ec2实例时创建一个文件,python,amazon-ec2,boto3,Python,Amazon Ec2,Boto3,我在本地机器中有一个文件file.txt 我希望在ec2实例启动时自动创建具有相同内容的相同文件(例如在根目录中) create\u instances函数的UserData参数允许在实例启动时自动执行脚本: UserData = '''#/bin/bash echo "content" >> /file.txt''' 但是,此脚本将直接在实例中执行,因此它无法了解本地计算机中的file.txt。您需要问自己“Internet上的计算机如何访问本地计算机
file.txt
我希望在ec2实例启动时自动创建具有相同内容的相同文件(例如在根目录中)
create\u instances
函数的UserData
参数允许在实例启动时自动执行脚本:
UserData = '''#/bin/bash
echo "content" >> /file.txt'''
但是,此脚本将直接在实例中执行,因此它无法了解本地计算机中的file.txt
。您需要问自己“Internet上的计算机如何访问本地计算机上的file.txt
”
如果你遵循良好的安全性,答案是:“它不能!”
相反,请考虑可以将file.txt
放在何处,以便EC2实例可以访问。简单的答案是将其放在AmazonS3中,并授予实例访问AmazonS3中文件的权限
这一进程将是:
- 创建(或使用现有)Amazon S3存储桶
- 上传
到bucketfile.txt
- 启动EC2实例时,为其分配一个IAM角色,该角色有权访问bucket中的
file.txt
- 在用户数据脚本中,将文件从S3复制到实例
aws s3 cp s3://my-bucket/file.txt file.txt
然后该文件在EC2实例上可用
将来,您可以更新S3存储桶中的file.txt
。任何新实例都将自动检索此文件的最新版本