

現在関わっているプロジェクトでAPI Gateway(websocket)+Lambda＋RDS(RDS
Proxy経由)の調査を行っていて、LambdaからRDS
Proxy経由でデータベースへ接続するため、LambdaにVPCを設定したところ、Lambdaからのメッセージが返ってこなくなりました。

VPC内のLambdaからはAPI Gateway(websocket)経由のメッセージ返信はできなくなってしまうのでしょうか？

Lambdaからのメッセージ返信は以下のようにしてあります。言語はTypeScript

[code]

                const apiGateway = new ApiGatewayManagementApi({
                    apiVersion: '2018-11-29',
                    endpoint: event.requestContext.domainName + '/' + event.requestContext.stage
                });
    
                await apiGateway.postToConnection({
                    ConnectionId: event.requestContext.connectionId,
                    Data: 'data'
                } as ApiGatewayManagementApi.PostToConnectionRequest).promise();
    
[/code]

LambdaにVPCを設定するまでは上記でメッセージを返すことができていました。

CloudWatchのログで確認してみたところ、`postToConnection`
を呼んでいるあたりから処理が進んでおらず、タイムアウトになってしまっているようで、以下のようなログが出力されています。

[code]

    2022-00-00T00:00:00.280Z 10xx0xx5-9821-4x02-8x05-1x588x7x460x Task timed out after 5.02 seconds
    
[/code]

ネットワークはあまり詳しくなく、試しにセキュリティグループのインバウンド、アウトバウンドをすべてのトラフィックを通すような設定にしてみたり、サブネットにpublicとついたものを設定してみたりということを試していますが変わらずです。

対策方法などありましたらご教示いただかればと存じます。

構成に関してはお客様希望で、なるべくこの構成で開発ということになっています。


CC BY-SA 4.0
2022-05-12T00:51:00.727
88773
2023-07-07T08:04:05.400
2023-01-25T23:54:44.603
19110
52569
question
aws-lambda websocket vpc aws-api-gateway
VPC内のLambdaはAPI Gatewayにアクセスできない？


ちょうど同じことが起こりました。私はVPC内のlambdaでRDSに接続してデータを取得した後、VPCを設定していないlambdaにデータを渡して実行させました。そのlambdaがWebSocket発信することで対応しています。  
他に良い方法がありましたら、知りたいですね。


CC BY-SA 4.0
2022-05-20T11:34:58.887
88942
2022-05-20T11:34:58.887
52722
88773
answer