我正在尝试使用 Boto3 通过 Lambda 创建 EC2 实例。创建 EC2 工作正常,但将变量传递到 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
我希望能够在传递给用户数据的init_script中使用环境变量。
发现
这确实是python的问题。使用 tripple 引号时,您可以按照以下方式访问变量 在 Python 中,你能在三引号内有变量吗?如果是这样,如何?