我正在尝试使用Boto3通过Lambda创建EC2实例。创建EC2可以正常进行,但是将变量传递到USERDATA脚本中。
我尝试了以下几种调用USERDATA的方法: os.environ ['VARIABLE'],VARIABLE,$ VARIABLE,$ {VARIABLE}
import os
import boto3
EC2 = boto3.client('ec2', region_name=os.environ['REGION'])
AMI = os.environ['AMI']
INSTANCE_TYPE = os.environ['INSTANCE_TYPE']
def lambda_to_ec2(event, context):
init_script = """#!/bin/bash
yum update -y
echo VARIABLE
shutdown -h +5"""
print 'Running script:'
print init_script
instance = EC2.run_instances(
ImageId= AMI,
InstanceType= INSTANCE_TYPE,
MinCount=1,
MaxCount=1,
InstanceInitiatedShutdownBehavior='terminate',
UserData=init_script
)
instance_id = instance['Instances'][0]['InstanceId']
return instance_id
我希望能够在传递给UserData的init_script中使用环境变量。
答案 0 :(得分:0)
发现这确实是python问题。使用三重引号时,您可以按照In Python, can you have variables within triple quotes? If so, how?
的方式访问变量