Функция Lamda, вызывающая конечную точку шлюза API

#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-адреса работает.