翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWSSupport-TroubleshootAPIGatewayHttpErrors
説明
AWSSupport-TroubleshootAPIGatewayHttpErrors ランブックは、アクセスログや実行ログを解析し、エラーを分析して re:Post の記事や AWS ドキュメントを通じて修復手順を提供することで、デプロイされた Amazon API Gateway REST API を呼び出す際の 5XX/4XX エラーのトラブルシューティングに役立ちます。
重要
このランブックには以下の制限があります。
ログ記録を有効にする必要があります。「API Gateway コンソールを使用して Amazon CloudWatch API ログ記録を設定する」を参照してください。
エラーが発生する前に、ログが有効になっている必要があります (複数可)。ログのキャプチャと分析を遡及的に行うことはできません。
対象となるエラー: 500、502、503、504、401、403、429。
REST API のみがサポートされています。WebSocket と HTTP (v2) はこのランブックの対象ではありません。
重要
このランブックを使用すると、REST API によってキャプチャされた Amazon CloudWatch Logs と、分析で使用される CloudWatch Logs Insights の AWS アカウントに対して追加料金が発生する場合があります。発生する可能性のある料金の詳細については、Amazon CloudWatch aws:deletestack ステップが失敗した場合は、 CloudFormation コンソールに移動してスタックを手動で削除します。このランブックで作成されたスタック名は AWSSupport-TroubleshootAPIGatewayHttpErrors で始まります。 CloudFormation スタックの削除については、 AWS CloudFormation 「 ユーザーガイド」の「スタックの削除」を参照してください。
動作の仕組み
ランブックは、以下の検証および分析ステップを実行します。
指定された REST API が存在し、必要なアクセス許可があることを検証します。
指定されたステージが API に存在することを検証します。
指定されたリソースパスが API に存在することを検証します。
リソースに指定された HTTP メソッドが存在することを検証します。
指定されたパラメータと時間範囲について CloudWatch Logs を分析してエラーを特定し、修復に関する推奨事項を提供します。
ドキュメントタイプ
オートメーション
[所有者]
Amazon
[Platforms] (プラットフォーム)
/
必要な IAM アクセス許可
AutomationAssumeRole パラメータでは、ランブックを正常に使用するために、次のアクションが必要です。
apigateway:GETlogs:CreateLogGrouplogs:CreateLogStreamlogs:DescribeLogGroupslogs:DescribeLogStreamslogs:PutLogEventslogs:StartQuerylogs:GetQueryResults
IAM ポリシーの例:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "apigateway:GET", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:PutLogEvents", "logs:StartQuery", "logs:GetQueryResults" ], "Resource": "*" } ] }
指示
次の手順に従って自動化を設定します。
-
ドキュメントの Systems Manager
AWSSupport-TroubleshootAPIGatewayHttpErrorsで に移動します。 -
[Execute automation] (オートメーションを実行) を選択します。
-
入力パラメータには、次のように入力します。
-
AutomationAssumeRole(オプション):
-
説明: (オプション) SSM Automation が AWS Identity and Access Management ユーザーに代わってアクションを実行できるようにする (IAM) ロールの Amazon リソースネーム (ARN)。ロールが指定されていない場合、SSM Automation はこのランブックを開始するユーザーのアクセス許可を使用します。
-
型:
AWS::IAM::Role::Arn
-
-
RestApiId (必須):
説明: (必須) トラブルシューティングが必要な API の API ID。10 文字の英数字文字列である必要があります。
型:
String-
許可されたパターン:
^[a-zA-Z0-9]{10}$
-
StageName (必須):
説明: (必須) デプロイされたステージの名前。文字、数字、アンダースコア、ハイフンを含む 1~128 文字にする必要があります。
型:
String-
許可されたパターン:
^[a-zA-Z0-9_\\-]{1,128}$
-
ResourcePath (オプション):
説明: (オプション) メソッドが設定されているリソースパス。例:
/、/store/items、/{resource}。型:
Stringデフォルト:
/
-
HttpMethod (オプション):
説明: (オプション) 設定されたリソースパスの メソッド。
型:
String-
使用できる値:
[ANY, DELETE, HEAD, OPTIONS, GET, POST, PUT, PATCH] デフォルト:
GET
-
StartTime (オプション):
説明: (オプション) CloudWatch Logs をクエリする開始日時。形式:
yyyy-MM-ddTHH:mm:ssUTC タイムゾーン。指定しない場合、デフォルトでは現在の時刻の 3 日前になります。型:
String-
許可されたパターン:
^$|^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T(2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$ -
デフォルト:
""
-
EndTime (オプション):
説明: (オプション) CloudWatch Logs をクエリするための終了日時。形式:
yyyy-MM-ddTHH:mm:ssUTC タイムゾーン。指定しない場合、デフォルトで現在の時刻になります。型:
String-
許可されたパターン:
^$|^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T(2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$ -
デフォルト:
""
-
AccessLogs (オプション):
説明: (オプション) アクセスログを分析するかどうか。
型:
Boolean-
使用できる値:
[true, false] デフォルト:
false
-
RequestId (オプション):
説明: (オプション) エラーが観察されたリクエストのリクエスト ID。有効な UUID 形式である必要があります。
型:
String-
許可されたパターン:
^$|^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$ デフォルト:
""
-
-
[実行] を選択します。
-
自動化が開始されます。
-
ドキュメントは以下のステップを実行します。
-
CheckApiExists:
提供された REST API が存在し、それにアクセスするために必要なアクセス許可があることを検証します。
-
CheckStageExists:
指定されたステージ名が指定された API に存在することを確認し、アクセスロググループ情報を取得します。
-
CheckResourceExists:
指定されたリソースパスが API に存在することを確認し、リソース ID を取得します。
-
CheckMethodExists:
指定されたリソースに指定された HTTP メソッドが存在することを検証します。
-
AnalyseLogs:
指定されたパラメータを使用してログを検索し、見つかったエラーに基づいてレコメンデーションを返します。このステップでは、実行ログとアクセスログ (有効になっている場合) の両方を分析して 4XX および 5XX エラーを特定し、特定の修復ガイダンスを提供します。
-
-
完了後、エラー分析や修復の推奨事項など、実行の詳細な結果については、出力セクションを確認してください。
リファレンス
Systems Manager Automation