インスタンスを起動してからコマンドを実行できるpythonスクリプトを実行しようとしています。私はuserdataの形式でインスタンスを作成しようとすると渡すことができることを知っています。私が理解しようとしているのは、すでに作成されたインスタンスを開始する場合に、それを渡す方法です。pythonスクリプトからインスタンスを起動した後、ec2にコマンドを渡す方法は?
import boto3
userdata = """#cloud-config
repo_update: true
repo_upgrade: all
packages:
- s3cmd
runcmd:
- echo 'Hello S3!' > /tmp/hello.txt
- aws --region YOUR_REGION s3 cp /tmp/hello.txt s3://YOUR_BUCKET/hello.txt
"""
ec2 = boto3.resource('ec2')
instances = ec2.create_instances(
ImageId='ami-f5f41398', # default Amazon linux
InstanceType='t2.micro',
KeyName='YOUR_SSH_KEY_NAME',
MinCount=1,
MaxCount=1,
IamInstanceProfile={
'Arn': 'YOUR_ARN_ID'
},
SecurityGroupIds=['YOUR_SECURITY_GROUP_NAME'],
UserData=userdata
)
あなたはUserDataを設定し、インスタンスを起動して、変更ピックアップしますすることができます
i = ec2.Instance(id='i-5fea4d42')
i.start('pass commands here: eg echo xx, mv a b/ etc')
あなたは毎回異なるコマンドを実行したいのですが、ユーザーデータに同じコマンドを実行したいですか? – helloV
ec2シェルフでコマンドを実行しようとしています。彼らは異なるでしょう、私はboto3のリンクに引き継がれていないbotoとコマンドシェルを使用しようとしています。おそらく私はparamikoとboto3の組み合わせを使用します。 –