HttpApi - AWS Serverless Application Model

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

HttpApi

描述类型为 HttpApi 的事件源的对象。

如果 API 中存在针对指定路径和方法的 OpenApi 定义,SAM 会为您添加 Lambda 集成和安全性部分(如果适用)。

如果 API 中不存在针对指定路径和方法的 OpenApi 定义,SAM 会为您创建此定义。

语法

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

属性

ApiId

此模板中定义的 AWS::Serverless::HttpApi 资源的标识符。

如果未定义,则会使用生成的 OpenApi 文档创建名为 ServerlessHttpApi 的默认 AWS::Serverless::HttpApi 资源,该文档包含由此模板中定义的 Api 事件定义的所有路径和方法的联合,但未指定 ApiId

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

类型:字符串

必需:否

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

Auth

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

在未指定 DefaultAuthorizer 的情况下,对于覆盖 API 的 DefaultAuthorizer 或在各个路径中设置身份验证配置很有用。

类型HttpApiFunctionAuth

必需:否

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

Method

调用此函数的 HTTP 方法。

如果未指定 PathMethod,SAM 会创建默认 API 路径,用于将未映射到其他端点的任何请求路由到此 Lambda 函数。每个 API 只能存在其中一个默认路径。

类型:字符串

必需:否

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

Path

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

如果未指定 PathMethod,SAM 会创建默认 API 路径,用于将未映射到其他端点的任何请求路由到此 Lambda 函数。每个 API 只能存在其中一个默认路径。

类型:字符串

必需:否

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

PayloadFormatVersion

指定发送到集成的有效负载的格式。

注意:PayloadFormatVersion 要求 SAM 修改 OpenAPI 定义,因此它仅适用于 DefinitionBody 属性中定义的内联 OpenApi。

类型:字符串

必需:否

默认值:2.0

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

RouteSettings

此 HTTP API 的每条路径的路由设置。有关路由设置的更多信息,请参阅《API Gateway 开发人员指南》中的 AWS::ApiGatewayV2::Stage RouteSettings

注意:如果在 HttpApi 资源和事件源中都指定了 RouteSettings,则 AWS SAM 会将它们合并,优先使用事件源属性。

类型RouteSettings

必需:否

AWS CloudFormation 兼容性:此属性直接传递给 AWS::ApiGatewayV2::Stage 资源的 RouteSettings 属性。

TimeoutInMillis

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

注意:TimeoutInMillis 要求 SAM 修改 OpenAPI 定义,因此它仅适用于 DefinitionBody 属性中定义的内联 OpenApi。

类型:整数

必需:否

默认值:5000

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

示例

默认 HttpApi 事件

使用默认路径的 HttpApi 事件。此 API 中所有未映射的路径和方法都将路由到此端点。

YAML

Events: HttpApiEvent: Type: HttpApi

HttpApi

使用特定路径和方法的 HttpApi 事件。

YAML

Events: HttpApiEvent: Type: HttpApi Properties: Path: / Method: GET

HttpApi 授权

使用授权方的 HttpApi 事件。

YAML

Events: HttpApiEvent: Type: HttpApi Properties: Path: /authenticated Method: GET Auth: Authorizer: OpenIdAuth AuthorizationScopes: - scope1 - scope2