本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Api
描述 Api
事件源类型的对象。如果定义了 AWS::Serverless::Api 资源,则路径和方法值必须与 API 的 OpenAPI 定义中的操作相对应。
如果未定义 AWS::Serverless::Api,则函数的输入和输出表示 HTTP 请求和 HTTP 响应。
例如,使用 JavaScript API,可以通过返回带有 statusCode 和 body 密钥的对象来控制响应的状态代码和正文。
语法
要在 AWS Serverless Application Model (AWS SAM) 模板中声明此实体,请使用以下语法。
YAML
Auth:
ApiFunctionAuth
Method:String
Path:String
RequestModel:RequestModel
RequestParameters:List of [ String | RequestParameter ]
RestApiId:String
TimeoutInMillis:Integer
属性
-
Auth
-
此特定 Api+路径+方法的身份验证配置。
对于未指定
DefaultAuthorizer
时覆盖在单个路径上 API 的DefaultAuthorizer
设置身份验证配置或覆盖默认ApiKeyRequired
设置很有用。必需:否
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.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