

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# API Gateway
<a name="automation-ref-abp"></a>

 AWS Systems Manager 自动化为 Amazon API Gateway 提供了预定义的运行手册。有关运行手册的更多信息，请参阅[使用运行手册](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)。有关如何查看运行手册内容的信息，请参阅 [查看运行手册内容](automation-runbook-reference.md#view-automation-json)。

**Topics**
+ [`AWSConfigRemediation-DeleteAPIGatewayStage`](automation-aws-delete-apigw-stage.md)
+ [`AWSConfigRemediation-EnableAPIGatewayTracing`](automation-aws-enable-apigw-tracing.md)
+ [`AWSConfigRemediation-UpdateAPIGatewayMethodCaching`](automation-aws-update-api-gateway.md)
+ [`AWSSupport-TroubleshootAPIGatewayHttpErrors`](automation-aws-troubleshootapigatewayhttp-errors.md)

# `AWSConfigRemediation-DeleteAPIGatewayStage`
<a name="automation-aws-delete-apigw-stage"></a>

 **描述** 

 `AWSConfigRemediation-DeleteAPIGatewayStage`运行手册删除了亚马逊 API Gateway（API Gateway）阶段。 AWS Config 必须在运行此自动化的 AWS 区域 位置中启用。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-DeleteAPIGatewayStage) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux，macOS, Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

  描述：（必需）允许 Systems Manager Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。
+ StageArn

  类型：字符串

  描述：（必需）要删除的 API 网关的 Amazon 资源名称（ARN）。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `config:GetResourceConfigHistory` 
+  `apigateway:GET` 
+  `apigateway:DELETE` 

 **文档步骤** 
+  `aws:executeScript` - 删除 `StageArn` 参数中指定的 API Gateway 阶段。

# `AWSConfigRemediation-EnableAPIGatewayTracing`
<a name="automation-aws-enable-apigw-tracing"></a>

 **描述** 

 该`AWSConfigRemediation-EnableAPIGatewayTracing`运行手册支持在亚马逊 API Gateway（API Gateway）阶段进行跟踪。 AWS Config 必须在运行此自动化的 AWS 区域 位置中启用。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-EnableAPIGatewayTracing) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux，macOS, Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

  描述：（必需）允许 Systems Manager Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。
+ StageArn

  类型：字符串

  描述：（必需）要启用跟踪的 Amazon 资源名称（ARN）。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+  `ssm:GetAutomationExecution` 
+  `ssm:StartAutomationExecution` 
+  `config:GetResourceConfigHistory` 
+  `apigateway:GET` 
+  `apigateway:PATCH` 

 **文档步骤** 
+  `aws:executeScript`- 对 `StageArn` 参数中指定的 API Gateway 阶段启用跟踪。

# `AWSConfigRemediation-UpdateAPIGatewayMethodCaching`
<a name="automation-aws-update-api-gateway"></a>

 **描述** 

 `AWSConfigRemediation-UpdateAPIGatewayMethodCaching` 运行手册将更新 Amazon API Gateway 阶段资源的缓存方法设置。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSConfigRemediation-UpdateAPIGatewayMethodCaching) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

Linux，macOS, Windows

**参数**
+ AutomationAssumeRole

  类型：字符串

  描述：（必需）允许 Systems Manager Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称（ARN）。
+ CachingAuthorizedMethods

  类型： StringList

   描述：（必需）授权启用缓存的方法。该列表必须是 `DELETE`、`GET`、`HEAD`、`OPTIONS`、`PATCH`、`POST` 和 `PUT` 的某种组合。对选定方法启用缓存，对非选定方法禁用缓存。对所有选定 `ANY` 的方法启用缓存，对所有选定 `NONE` 的方法禁用缓存。
+ StageArn

  类型：字符串

   描述：（必需）`REST` API 的 API Gateway 阶段 ARN。

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+  `ssm:StartAutomationExecution` 
+  `ssm:GetAutomationExecution` 
+  `apigateway:PATCH` 
+  `apigateway:GET` 

 **文档步骤** 
+  `aws:executeScript` - 接受阶段资源 ID 作为输入，使用 `UpdateStage` API 操作更新 API Gateway 阶段的缓存方法设置，并验证更新。

# `AWSSupport-TroubleshootAPIGatewayHttpErrors`
<a name="automation-aws-troubleshootapigatewayhttp-errors"></a>

 **描述** 

该**AWSSupport-TroubleshootAPIGatewayHttpErrors**运行手册通过解析访问 and/or 执行日志和分析错误，通过 re: Post 文章和文档提供补救步骤，从而帮助解决调用已部署的 Amazon API Gateway REST API 时出现的 5XX/4XX 错误。 AWS 

**重要**  
本运行手册有以下限制：  
必须启用日志记录。请参阅[使用 CloudWatch API Gateway 控制台设置亚马逊 API 日志](https://docs.aws.amazon.com//apigateway/latest/developerguide/set-up-logging.html#set-up-access-logging-using-console)。
错误发生之前必须已启用日志。日志捕获和分析不能追溯性地完成。
涵盖的错误：500、502、503、504、401、403、429。
仅支持 REST APIs 。 WebSocket 而且 HTTP (v2) 未包含在本运行手册中。

**重要**  
使用此运行手册可能会因您的 REST API 捕获的 Amazon CloudWatch 日志以及分析中使用的 CloudWatch 日志见解而向您的 AWS 账户收取额外费用。有关可能产生的费用的更多详细信息，请参阅 [Amazon CloudWatch 定价](https://aws.amazon.com/cloudwatch/pricing/)。如果该`aws:deletestack`步骤失败，请前往 CloudFormation 控制台手动删除堆栈。此运行手册创建的堆栈名称以 `AWSSupport-TroubleshootAPIGatewayHttpErrors` 开头。有关删除 CloudFormation 堆栈的信息，请参阅《 AWS CloudFormation 用户指南》中的[删除堆栈](https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html)。

 **如何工作？** 

运行手册执行以下验证和分析步骤：
+ 验证指定的 REST API 是否存在并且您是否具有必要的权限。
+ 验证 API 中是否存在指定的阶段。
+ 验证 API 中是否存在指定的资源路径。
+ 验证资源是否存在指定的 HTTP 方法。
+ 根据指定参数和时间范围分析 CloudWatch 日志，以识别错误并提供补救建议。

 [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootAPIGatewayHttpErrors) 

**文档类型**

自动化

**所有者**

Amazon

**平台**

/

**所需的 IAM 权限**

`AutomationAssumeRole` 参数需要执行以下操作才能成功使用运行手册。
+ `apigateway:GET`
+ `logs:CreateLogGroup`
+ `logs:CreateLogStream`
+ `logs:DescribeLogGroups`
+ `logs:DescribeLogStreams`
+ `logs:PutLogEvents`
+ `logs:StartQuery`
+ `logs: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": "*"
        }
    ]
}
```

 **说明** 

按照这些步骤对自动化进行配置：

1. [https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootAPIGatewayHttpErrors/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootAPIGatewayHttpErrors/description)在 Systems Manager 的 “文档” 下导航至。

1. 选择 **Execute automation**（执行自动化）。

1. 对于输入参数，请输入以下内容：
   + **AutomationAssumeRole （可选）：**
     + 描述：（可选）允许 SSM Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的亚马逊资源名称 (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 日志的开始日期和时间。格式：采用 `yyyy-MM-ddTHH:mm:ss` UTC 时区。如果未指定，则默认为当前时间前 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 日志的结束日期和时间。格式：采用 `yyyy-MM-ddTHH:mm:ss` UTC 时区。如果未指定，则默认为当前时间。
     + 类型：`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}$`
     + 默认值：`""`

1. 选择**执行**。

1. 自动化启动。

1. 文档将执行以下步骤：
   + **CheckApiExists**:

     验证所提供的 REST API 是否存在，并且您是否具有访问该应用程序的必要权限。
   + **CheckStageExists**:

     验证所提供的阶段名称是否存在于给定的 API 中，并检索访问日志组信息。
   + **CheckResourceExists**:

     验证所提供的资源路径是否存在于 API 中，并检索资源 ID。
   + **CheckMethodExists**:

     验证指定资源是否存在所提供的 HTTP 方法。
   + **AnalyseLogs**:

     使用提供的参数搜索日志，并根据发现的任何错误返回建议。此步骤将分析执行和访问日志（如果启用），以识别 4XX 和 5XX 错误，并提供具体的补救指导。

1. 完成后，请查看 “**输出**” 部分，了解执行的详细结果，包括错误分析和补救建议。

**参考**

Systems Manager Automation
+ [运行此自动化（控制台）](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootAPIGatewayHttpErrors/description)
+ [运行自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html)
+ [设置自动化](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html)
+ [Support 自动化工作流程](https://aws.amazon.com/premiumsupport/technology/saw/)