Amazon Virtual Private Cloud (Amazon VPC) にある AWS Lambda 関数へのインターネットアクセスを許可しました。現在、この関数はインターネットにアクセスできなくなったり、タイムアウトしたりし続けています。
簡単な説明
次のリソースを参照して、Lambda 関数へのアウトバウンドインターネットアクセスが許可されていることを確認します:
これらのリソースのいずれかで Lambda 関数へのインターネットアクセスが許可されない場合は、関数にインターネットアクセスを許可するようにリソースを再構成します。
これらのリソースを手動で確認するには、「Amazon VPC に接続されている Lambda 関数にインターネットアクセスを許可するにはどうすればよいですか?」の手順を実行してください。 トラブルシューティングのプロセスを自動化するには、AWS Systems Manager の AWSSupport-TroubleshootLambdaInternetAccess ランブックを使用できます。
解決方法
注: 次のトラブルシューティングの手順は、AWSSupport-TroubleshootLambdaInternetAccess ランブックの使用方法を示しています。
1. AWS Systems Manager コンソールを開きます。
2. 左側のナビゲーションペインで、[変更管理] から [オートメーション] を選択します。
3. [オートメーションの実行] を選択します。
4. [Amazon が所有] タブの [オートメーションドキュメント] 検索ボックスに「AWSSupport-TroubleshootLambdaInternetAccess」と入力します。その後、検索アイコンをクリックするか、キーボードの Enter キーを押します。
5. AWSSupport-TroubleshootLambdaInternetAccess カードの右上にあるアイコンをクリックします。オートメーションの名前ではなく、カードの右上にあるアイコンをクリックしてください。
6. [次へ] を選択します。
7. (オプション) [入力パラメータ] セクションの [AutomationAssumeRole] に、Systems Manager Automation によるアクションの実行を許可するロールの Amazon Resource Name (ARN) を入力します。IAM ロールを指定しない場合、Systems Manager Automation ではドキュメントを実行する IAM ユーザーのアクセス許可が使用されます。Systems Manager Automation の assume ロールの作成については、「IAM を使用して、オートメーションのロールを設定する」を参照してください。
**重要:**AutomationAssumeRole またはユーザーのロールのいずれかに、次のアクションのアクセス許可が必要です:
lambda:GetFunction
ec2:DescribeRouteTables
ec2:DescribeNatGateways
ec2:DescribeSecurityGroups
ec2:DescribeNetworkAcls
8. FunctionName に、接続の検証が必要な関数の名前を入力します。
9. destinationIp に、アウトバウンドインターネットアクセスを開始する宛先の IP アドレスを入力します。
10. destinationPort に、アウトバウンドインターネットアクセスを開始する宛先ポートを入力します。
11. [実行] を選択します。
ランブックの出力に、Lambda 関数のインターネット接続の切断の原因となっている可能性のある各リソースのステータスが表示されます。出力には、「分析」メッセージとして問題の解決方法に関する推奨事項も提供されます。
注: AWS System Manager のオートメーションランブックの詳細については、「独自のランブックの作成」を参照してください。