我想運行一個python腳本,可以啓動一個實例,然後運行一些命令。我知道如果我嘗試以userdata的形式創建一個實例,它可以通過。我想弄清楚的是,如果我正在啓動一個已經創建的實例,該如何傳遞它。以下是使用boto3代碼通過簡單的Hello World,同時創建一個實例:從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
)
喜歡的東西
i = ec2.Instance(id='i-5fea4d42')
i.start('pass commands here: eg echo xx, mv a b/ etc')
你想每次運行不同的命令或者在用戶數據中使用相同的命令嗎? – helloV
我正試圖在ec2 shel上執行命令。他們會有所不同,我試圖使用博託和命令外殼,這是沒有結轉到博託3鏈接。可能我會使用paramiko和boto3的組合。 –