Скрипт для AWS Lambda? - PullRequest
       0

Скрипт для AWS Lambda?

0 голосов
/ 01 марта 2019

У меня есть скрипт bash, в котором перечислены все активные экземпляры EC2 по регионам:

for region in `aws ec2 describe-regions --output text | cut -f3` do
 echo -e "\nListing Instances in region:'$region'..."
 aws ec2 describe-instances --region $region
done

Я бы хотел перенести это на функцию Lambda в AWS.Каков будет лучший подход сегодня?Должен ли я использовать обертку или подобное?Узел?Я гуглил и нашел то, что выглядело в основном как обходные пути ... но им было пару лет.Был бы признателен за актуальную индикацию.

Ответы [ 2 ]

0 голосов
/ 02 марта 2019

Вы должны написать его на языке, который имеет AWS SDK, например, Python.

Вам также следует подумать о том, что функция Lambda должна делать с выводом, поскольку нав тот момент, когда он просто получает информацию, но ничего с ней не делает.

Вот пример лямбда-функции AWS:

import boto3

def lambda_handler(event, context):

    instance_ids = []

    # Get a list of regions    
    ec2_client = boto3.client('ec2')
    response = ec2_client.describe_regions()

    # For each region
    for region in response['Regions']:

        # Get a list of instances
        ec2_resource = boto3.resource('ec2', region_name=region['RegionName'])
        for instance in ec2_resource.instances.all():
            instance_ids.append(instance.id)

    # Return the list of instance_ids
    return instance_ids

Обратите внимание, что для вызова всехрегионы последовательно.Вышеуказанное может занять 15-20 секунд.

0 голосов
/ 01 марта 2019

Два способа сделать это:

  1. Использование пользовательских сред выполнения и слоев: https://github.com/gkrizek/bash-lambda-layer

  2. 'Выполнение из другой среды выполнения: https://github.com/alestic/lambdash

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