#aws-lambda #aws-api-gateway
Вопрос:
Я новичок в aws и пытаюсь кое-что настроить.
У меня есть этот дизайн на том же vpc:
API Gateway1-> /gateway-> Lambda python script1-> send request to API Gateway2 endpoint /downstream
API Gateway1-> /downstream-> Lambda python script2 return status
API Gateway2-> /downstream-> Lambda python script3 return status
что я нашел странным в этой настройке, так это то, что «сценарий python Lambda 1» отправляет запрос на «конечную точку /нисходящий поток API Gateway1», когда он ссылается на «конечную точку /нисходящий поток API Gateway2».
вот пример лямбда-скрипта python1:
import json
import urllib3
def lambda_handler(event, context):
headers=event["headers"]
headers=event["body"]
url = "https://{apiGatewayID}.execute-api.{region}.amazonaws.com/prod/downstream"
http = urllib3.PoolManager()
r = http.request('POST', url, body=payload,headers=headers)
response = {"statusCode": r.status}
return response
Есть идеи, что может привести к этому?
Комментарии:
1. Проблема кроется в вашем коде или вашей конфигурации. AWS не просто решает неправильно использовать шлюз api вызовов.
2. если вы определили для него запись DNS (пользовательский домен), и они совпадают, то он будет использоваться с более поздним. В противном случае вы, скорее всего, используете неправильную конечную точку. Попробуйте изменить /вниз по течению на что-то другое и посмотрите, сможете ли вы нажать на него или получите сообщение об ошибке «не существует».
3. Я добавил свой пример кода. URL-адрес определенно установлен для ссылки на идентификатор шлюза api 2
4. Вы вошли
url
в систему, чтобы убедиться, что это правильный шлюз API? Вызывали ли вы этот URL-адрес за пределами своей Лямбды, чтобы посмотреть, что он вызывает?5. Да, использование внешнего URL-адреса работает.