本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Api
描述 Api 事件源类型的对象。如果定义了 AWS::Serverless::Api 资源,则路径和方法值必须与 API 的 OpenAPI 定义中的操作相对应。
如果未定义 AWS::Serverless::Api,则函数的输入和输出表示 HTTP 请求和 HTTP 响应。
例如,使用 JavaScript API,可以通过返回带有 statusCode 和 body 密钥的对象来控制响应的状态代码和正文。
语法
要在 AWS Serverless Application Model (AWS SAM) 模板中声明此实体,请使用以下语法。
YAML
Auth:ApiFunctionAuthMethod:StringPath:StringRequestModel:RequestModelRequestParameters:List of [ String | RequestParameter ]RestApiId:StringTimeoutInMillis:Integer
属性
-
Auth -
此特定 Api+路径+方法的身份验证配置。
对于未指定
DefaultAuthorizer时覆盖在单个路径上 API 的DefaultAuthorizer设置身份验证配置或覆盖默认ApiKeyRequired设置很有用。必需:否
AWS CloudFormation 兼容性:此属性是独有的 AWS SAM ,没有 AWS CloudFormation 等效属性。
-
Method -
调用此函数的 HTTP 方法。选项包括
DELETE、GET、HEAD、OPTIONS、PATCH、POST、PUT、和ANY。有关详细信息,请参阅《API Gateway 开发者指南》中的设置 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.header、method.request.querystring、或method.request.path。列表既可以包含参数名称字符串,也可以包含RequestParameter对象。对于字符串,
Required和Caching属性将默认为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