Управление AWS лямбда-источником IP - PullRequest
0 голосов
/ 15 октября 2018

У меня есть простая лямбда-функция, ее задача - сделать HTTP GET для определенного сервера.

Мне нужно запустить много копий (сотен) функции одновременно и я хочу иметь отдельный IP-адрес источника для каждого HTTP GET, приходящего от каждой лямбды.

Мои вопросы:

  1. Как сделать так, чтобы у каждой «копии» функции Lambda был свой IP-адрес?
  2. Как использовать botoAPI вызывает call, чтобы сообщить AWS, что мне нужно N одновременных копий моей лямбды?Я смотрю здесь , но я не могу найти аргумент, который устанавливает количество одновременных копий.

Спасибо

Avishay

Что касаетсявопрос № 2 Я использую следующий код для вызова N одновременных копий лямбда-функции.

 import boto3, json
 from concurrent.futures import ThreadPoolExecutor

 N = 5
 unique_ips = set()

 lambda_client = boto3.client('lambda', region_name='us-west-2')


 def _lambda_caller(idx):
     test_event = dict(idx=idx)
     res = lambda_client.invoke(
        FunctionName='SimpleHTTPGetter',
        InvocationType='RequestResponse',
        Payload=json.dumps(test_event),
     )
     data = json.loads(res['Payload']._raw_stream.data)
     print('Thread {} is done'.format(idx))
     unique_ips.add(data['body'])

 with ThreadPoolExecutor(max_workers=N) as executor:
     for i in range(0,N):
         future = executor.submit(_lambda_caller,i)
     executor.shutdown()
    print('Done')

мой лямбда-код (короткая версия)

import json
import socket    

def lambda_handler(event, context):
    print('-- HTTP Client started')
    hostname = socket.gethostname()    
    ip = socket.gethostbyname(hostname) 
    print('My IP address is {}:'.format(ip))
    return {
        "statusCode": 200,
        "body": ip
    }

1 Ответ

0 голосов
/ 17 октября 2018

Вам необходимо создать VPC, убедитесь, что вы подключили подсеть, которая позволяет доступ в Интернет.А затем прикрепите политику безопасности к вашей лямбде.Шаг за шагом здесь: https://medium.com/@philippholly/aws-lambda-enable-outgoing-internet-access-within-vpc-8dd250e11e12

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