Невозможно протестировать сторонние библиотеки с мото для лямбда-тестирования в локальной среде - PullRequest
0 голосов
/ 04 января 2019

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

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

Это в основном из-за библиотек moto reponse.py class, т.е. библиотеки 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 и развернул образ в Docker, но он дает URL-адрес не удалось подключиться к URL-адресу конечной точки: "http://localhost:4569/".

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

1 Ответ

0 голосов
/ 07 января 2019

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

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

В случае каких-либо сомнений, пожалуйста, дайте мне знать.

...