API ゲートウェイ WebSocket によってトリガーされる、NatGateway を持つパブリック サブネットと通信するプライベート サブネット内に Lambda があるアーキテクチャから移行しています。次に、Nat ゲートウェイを削除し、VPC リンクを使用して VPC エンドポイントを挿入しました。リンクで見つけたもの: https://d1.awsstatic.com/whitepapers/private-api-best-practices.pdf
私の VPC エンドポイントは現在、ポリシーがすべて開いています。VPC には API Gateway と通信する別のプロジェクトがあるため、 Enable Private DNS Name は使用しませんでした。
API Gateway が Lambda をトリガーしましたが、返信メッセージに応答できませんでした。私のラムダにはタイムアウトがあります。
私の古いアーキテクチャでは、リターン エンドポイントは でしたがhttps://{restapi-id}.execute-api.{region}.amazonaws.com/{stage}
、応答しようとすると、そのエンドポイントでは機能しません。
エンドポイントを変更する必要がありますか?
この接続のテストが完了するまで、セキュリティ グループと NACL は非常にオープンです。VPC リンクと API ゲートウェイ エンドポイントは、Lambda サブネットと Lambda セキュリティ グループで構成されます。
VPC リンクまたは VPC エンドポイントに何か不足していますか?
編集: ApiGateway でログを有効にしましたが、ラムダ ログが返される前に:
{
"requestId": "em-5aGamaDDAdtd=",
"ip": "",
"caller": "-",
"user": "-",
"requestTime": "30/Apr/2021:17:57:42 +0000",
"eventType": "MESSAGE",
"routeKey": "lambda",
"status": "504",
"connectionId": "em-5abCDaaDBJtw="
}
クライアントは次のメッセージを受け取ります。
{
message: "Endpoint request timed out", connectionId: "enBZ-dFG2oAFDA4a=",…}
connectionId: "em-5abCDaaDBJtw="
message: "Endpoint request timed out"
requestId: "em-5aGamaDDAdtd="