Api - AWS Serverless Application Model

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

Api

描述 Api 事件源类型的对象。如果定义了 AWS::Serverless::Api 资源,则路径和方法值必须与 API 的 OpenAPI 定义中的操作相对应。

如果未定义 AWS::Serverless::Api,则函数的输入和输出表示 HTTP 请求和 HTTP 响应。

例如,使用 JavaScript API,可以通过返回带有 statusCode 和 body 密钥的对象来控制响应的状态代码和正文。

语法

要在 AWS Serverless Application Model (AWS SAM) 模板中声明此实体,请使用以下语法。

属性

Auth

此特定 Api+路径+方法的身份验证配置。

对于未指定 DefaultAuthorizer 时覆盖在单个路径上 API 的 DefaultAuthorizer 设置身份验证配置或覆盖默认 ApiKeyRequired 设置很有用。

类型:ApiFunctionAuth

必需:否

AWS CloudFormation 兼容性:此属性是独有的 AWS SAM ,没有 AWS CloudFormation 等效属性。

Method

调用此函数的 HTTP 方法。

类型:字符串

必需:是

AWS CloudFormation 兼容性:此属性是独有的 AWS SAM ,没有 AWS CloudFormation 等效属性。

Path

调用此函数的 URI 路径。必须以 / 开头。

类型:字符串

必需:是

AWS CloudFormation 兼容性:此属性是独有的 AWS SAM ,没有 AWS CloudFormation 等效属性。

RequestModel

用于此特定 Api+路径+方法 的请求模型。这应该引用 AWS::Serverless::Api 资源 Models 部分中指定的模型的名称。

类型:RequestModel

必需:否

AWS CloudFormation 兼容性:此属性是独有的 AWS SAM ,没有 AWS CloudFormation 等效属性。

RequestParameters

此特定 Api+Path+Method 的请求参数配置。所有参数名称必须以 method.request 开头,且必须限制为 method.request.headermethod.request.querystring、或method.request.path

列表既可以包含参数名称字符串,也可以包含RequestParameter对象。对于字符串,RequiredCaching 属性将默认为 false

类型:[字符串 | RequestParameter] 列表

必需:否

AWS CloudFormation 兼容性:此属性是独有的 AWS SAM ,没有 AWS CloudFormation 等效属性。

RestApiId

RestApi 资源的标识符,必须包含具有给定路径和方法的操作。通常,将其设置为引用此模板中定义的 AWS::Serverless::Api 资源。

如果未定义此属性,则使用生成的OpenApi文档 AWS SAM 创建默认AWS::Serverless::Api资源。该资源包含所有路径和方法的并集,这些路径和方法由同一模板中的 Api 事件定义,但未指定 RestApiId

这不能引用其他模板中定义的 AWS::Serverless::Api 资源。

类型:字符串

必需:否

AWS CloudFormation 兼容性:此属性是独有的 AWS SAM ,没有 AWS CloudFormation 等效属性。

TimeoutInMillis

自定义超时值,范围在 50 到 29,000 毫秒之间。

注意

当您指定此属性时, AWS SAM 会修改您的 OpenAPI 定义。必须使用 DefinitionBody 属性内联指定 OpenAPI 定义。

类型:整数

必需:否

默认值:29,000 毫秒或 29 秒

AWS CloudFormation 兼容性:此属性是独有的 AWS SAM ,没有 AWS CloudFormation 等效属性。

示例

基本示例

YAML

Events: ApiEvent: Type: Api Properties: Path: /path Method: get RequestParameters: - method.request.header.Authorization - method.request.querystring.keyword: Required: true Caching: false