AWSSupport-TroubleshootAPIGatewayHttpErrors AWS Support Automation Workflow (SAW) ランブックを使用して Amazon API Gateway エラーのトラブルシューティングを行いたいと考えています。
簡単な説明
AWSSupport-TroubleshootAPIGatewayHttpErrors ランブックは、API Gateway HTTP リクエストから発生する問題を見つけてトラブルシューティングできるように自動化されたソリューションを提供します。API がすべてのリソース要求とメソッド要求をログ記録するように設定された場合は、このランブックを使用することで 4xx および 5xx 問題のトラブルシューティングを行うことができます。
ログ記録の設定方法の詳細については、「Setting up CloudWatch logging for a REST API in API Gateway」を参照してください。
SAW の詳細については、「AWS サポートオートメーションワークフロー (SAW)」を参照してください。
解決策
AWSSupport-TroubleshootAPIGatewayHttpErrors ランブックは、Amazon CloudWatch Logs の取得と分析を試みる前に、API、リソース、メソッド、およびステージを検証します。
オートメーションを実行する現在のユーザーまたは引き受ける AWS Identity and Access Management (IAM) サービスロールには、以下のアクセス許可が必要です:
- apigateway:GET
- logs:GetQueryResults
- logs:StartQuery
- ssm:DescribeAutomationExecutions
- ssm:GetAutomationExecution
- ssm:DescribeAutomationStepExecutions
- ssm:StartAutomationExecution
- ssm:DescribeDocument
- ssm:GetDocument
- ssm:ListDocuments
前提条件
ランブックを実行する前に、IAM ユーザーまたはロールに正しいアクセス許可があることを確認してください。これらのアクセス許可には、特定の AWS Systems Manager のアクセス許可と、本記事の前のセクションで説明したその他のサービス固有のアクセス許可が含まれます。
AWSSupport-TroubleshootAPIGatewayHttpErrors automation を実行する
-
AWSSupport-TroubleshootAPIGatewayHttpErrors ランブックを開きます。
注: このランブックは us-east-1 AWS リージョンにあります。
-
[オートメーションの実行] を選択します。
入力パラメーターに、次の情報を入力します:
- RestApiId (必須): トラブルシューティングが必要な API の API ID です。
- StageName (必須): デプロイしたステージ名。
- ResourcePath (必須): メソッドのリソースパス。
- HttpMethod (必須): 設定されたリソースパスのメソッド。
- StartTime (必須): CloudWatch ログをクエリするための開始日時。yyyy-MM-ddTHH:mm:ss 形式で、タイム ゾーンは UTC とする必要があります。
- **EndTime (必須):**CloudWatch ログをクエリする終了日時です。yyyy-MM-ddTHH:mm:ss 形式で、タイム ゾーンは UTC とする必要があります。
- AccessLogs (必須):: アクセスログを分析するかどうかに関する情報を提供します。
- 実行ID (任意): エラーが発生した要求の実行ID。
- AutomationAssumeRole (任意): Systems Manager の機能である Automation がユーザーに代わってアクションを実行できるようにデザインされた IAM ロールである Amazon リソースネーム (ARN)。ロールが指定されていない場合、Automation は、ランブックを開始するユーザーのアクセス許可を使用します。
-
[実行] をクリックします。オートメーションが開始されます。
-
オートメーションが完了したら、[出力] セクションで詳細な結果を確認します。
注: ランブックは、ログが見つからない場合でも正常に完了します。