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

Я пытаюсь протестировать лямбда-функцию aws локально и успешно смоделировать ресурс aws, такой как динамо-база данных, используя библиотеку 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 и развернул образ в Docker, но он дает URL-адрес Не удалось подключиться к URL-адресу конечной точки: " http://localhost:4569/".

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

1 ответ

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

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

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

Другие вопросы по тегам