Как я могу передать переменные в USERDATA при создании EC2 через Lambda с помощью Boto3 - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь создать экземпляр EC2 через Lambda, используя Boto3.Создание 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

Я хотел быуметь использовать переменные окружения в init_script, который передается в UserData.

1 Ответ

0 голосов
/ 04 июня 2019

Обнаружил, что это действительно проблема с питоном.При использовании тройных кавычек вы можете обращаться к переменным следующим образом: В Python вы можете иметь переменные в тройных кавычках?Если да, то как?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...