

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

# 的自定义响应示例 Amazon SAM
<a name="serverless-controlling-access-to-apis-customize-response"></a>

您可以通过在 Amazon SAM 模板中定义响应标头来自定义某些 API Gateway 错误响应。为此，您需要使用[网关响应对象](https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#gateway-response-object)数据类型。

以下是为`DEFAULT_5XX`错误创建自定义响应的示例 Amazon SAM 模板。

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
  MyApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: Prod
      GatewayResponses:
        DEFAULT_5XX:
          ResponseParameters:
            Headers:
              Access-Control-Expose-Headers: "'WWW-Authenticate'"
              Access-Control-Allow-Origin: "'*'"
              ErrorHeader: "'MyCustomErrorHeader'"
          ResponseTemplates:
            application/json: "{\"message\": \"Error on the $context.resourcePath resource\" }"
              
  GetFunction:
    Type: AWS::Serverless::Function
    Properties:
      Runtime: python3.10
      Handler: index.handler
      InlineCode: |
        def handler(event, context):
          raise Exception('Check out the new response!')
      Events:
        GetResource:
          Type: Api
          Properties:
            Path: /error
            Method: get
            RestApiId: !Ref MyApi
```

有关 API Gateway 响应的更多信息，请参阅*《API Gateway 开发人员指南》*中的 [API Gateway 中的网关响应](https://docs.amazonaws.cn/apigateway/latest/developerguide/api-gateway-gatewayResponse-definition.html)。