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

时间:2019-06-04 10:56:10

标签: variables amazon-ec2 aws-lambda

我正在尝试使用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中使用环境变量。

1 个答案:

答案 0 :(得分:0)

发现这确实是python问题。使用三重引号时,您可以按照In Python, can you have variables within triple quotes? If so, how?

的方式访问变量