Невозможно протестировать сторонние библиотеки с помощью moto для лямбда-тестирования в локальной среде

Я пытаюсь протестировать лямбда-функцию aws локально, и мне удалось высмеять ресурс aws, такой как Dynamo DB, с использованием библиотеки moto, но когда я представил компонент, то есть запрос на вызов сторонних библиотек, я получил ошибку, поскольку в соединении было отказано.

requests.exceptions.ConnectionError: Connection refused: GET https://www.google.com/

Это в основном из-за moto-библиотек, класса reponse.py, то есть библиотеки httpPretty.

Какие еще альтернативы мы можем использовать для их исправления или тестирования лямбда-функции локально с ресурсами aws, а также с вызовом сторонних библиотек.

Источник моей лямбда-функции:

  import boto3
  import requests    
  def lambda_handler(event,context):
        client=boto3.client('dynamodb')
        response = client.put_item(TableName='divyanayan_test',
                                  Item={'id': {'S': 'hello1'}})
        r = requests.get('https://www.google.com/')
        print(r)

Также попробовал с библиотекой localstack и развернул образ в докере, но он дает URL-адрес, который не может подключиться к URL-адресу конечной точки: "http://localhost:4569/ ".

Ссылка: https://github.com/localstack/localstack


person divyanayan awasthi    schedule 04.01.2019    source источник


Ответы (1)


Решение для сторонних библиотек библиотеки moto, которое я понял, имитировало ответ третьей стороны, а также ожидаемый ответ, и, следовательно, получил любую ошибку отказа в соединении.

А для библиотеки localstack для локального лямбда-тестирования это была ошибка с моей стороны, так как мне пришлось использовать ip докер-машины вместо localhost, и тогда URL-адрес был доступен.

В случае сомнений дайте мне знать.

person divyanayan awasthi    schedule 07.01.2019