Невозможно протестировать сторонние библиотеки с мото для лямбда-тестирования в локальной среде
Я пытаюсь протестировать лямбда-функцию 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/".
1 ответ
Решением для библиотек третьей части moto library, которое я обнаружил, было высмеивание ответа третьей стороны, а также в ожидаемом ответе, и, следовательно, было получено сообщение об отказе в соединении.
А для библиотеки localalstack для локального лямбда-тестирования это была ошибка с моей стороны, так как мне пришлось использовать ip док-машины вместо localhost, и тогда URL был доступен.
В случае каких-либо сомнений, пожалуйста, дайте мне знать.