如何使用 Boto3 通过 Lambda 在 EC2 创建中将变量传递给用户数据



我正在尝试使用 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 中,你能在三引号内有变量吗?如果是这样,如何?

最新更新