AWS::ApiGatewayV2::Integration - AWS CloudFormation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS::ApiGatewayV2::Integration

AWS::ApiGatewayV2::Integration 资源为 API 创建集成。

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type" : "AWS::ApiGatewayV2::Integration", "Properties" : { "ApiId" : String, "ConnectionId" : String, "ConnectionType" : String, "ContentHandlingStrategy" : String, "CredentialsArn" : String, "Description" : String, "IntegrationMethod" : String, "IntegrationSubtype" : String, "IntegrationType" : String, "IntegrationUri" : String, "PassthroughBehavior" : String, "PayloadFormatVersion" : String, "RequestParameters" : Json, "RequestTemplates" : Json, "TemplateSelectionExpression" : String, "TimeoutInMillis" : Integer, "TlsConfig" : TlsConfig } }

YAML

Type: AWS::ApiGatewayV2::Integration Properties: ApiId: String ConnectionId: String ConnectionType: String ContentHandlingStrategy: String CredentialsArn: String Description: String IntegrationMethod: String IntegrationSubtype: String IntegrationType: String IntegrationUri: String PassthroughBehavior: String PayloadFormatVersion: String RequestParameters: Json RequestTemplates: Json TemplateSelectionExpression: String TimeoutInMillis: Integer TlsConfig: TlsConfig

属性

ApiId

API 标识符。

必需:是

类型:字符串

Update requires: Replacement

ConnectionId

私有集成的 VPC 链接的 ID。仅 HTTP API 支持。

必需:否

类型:字符串

Update requires: No interruption

ConnectionType

到集成终端节点的网络连接的类型。为通过公有可路由 Internet 进行的连接指定 INTERNET,为 VPC 中 API 网关与资源之间的私有连接指定 VPC_LINK。默认值为 INTERNET

必需:否

类型:字符串

Update requires: No interruption

ContentHandlingStrategy

仅 WebSocket API 支持。指定如何处理响应负载内容类型转换。支持的值为 CONVERT_TO_BINARYCONVERT_TO_TEXT,以及以下行为:

CONVERT_TO_BINARY:将响应负载从 Base64 编码字符串转换为相应的二进制 Blob。

CONVERT_TO_TEXT:将响应负载从二进制 Blob 转换为 Base64 编码字符串。

如果未定义此属性,则响应负载将从集成响应传递到路由响应或方法响应,而不进行修改。

必需:否

类型:字符串

Update requires: No interruption

CredentialsArn

指定集成所需的凭证(如果有)。对于 AWS 集成,提供了三个选项。要指定 API Gateway 代入的 IAM 角色,请使用角色的 Amazon 资源名称 (ARN)。要让调用方的身份通过请求传递,请指定字符串 arn:aws:iam::*:user/*。要对支持的 AWS 服务使用基于资源的权限,请指定 null。

必需:否

类型:字符串

Update requires: No interruption

Description

集成的描述。

必需:否

类型:字符串

Update requires: No interruption

IntegrationMethod

指定集成的 HTTP 方法类型。

必需:条件

类型:字符串

Update requires: No interruption

IntegrationSubtype

仅支持用于 HTTP API AWS_PROXY 集成。指定要调用的 AWS 服务操作。要了解更多信息,请参阅集成子类型参考

必需:否

类型:字符串

Update requires: No interruption

IntegrationType

集成的集成类型。下列情况之一:

AWS:用于将路由或方法请求与 AWS 服务操作集成,包括 Lambda 函数调用操作。使用 Lambda 函数调用操作,这称为 Lambda 自定义集成。使用任何其他 AWS 服务操作,这称为 AWS 集成。仅 WebSocket API 支持。

AWS_PROXY:用于将路由或方法请求与 Lambda 函数或其他 AWS 服务操作集成。此集成也称为 Lambda 代理集成。

HTTP:用于将路由或方法请求与 HTTP 终端节点集成。该集成也称为 HTTP 自定义集成。仅 WebSocket API 支持。

HTTP_PROXY:用于将带 HTTP 终端节点的路由或方法请求与按原样传递的客户端请求集成在一起。这也称作 HTTP 代理集成。对于 HTTP API 私有集成,请使用 HTTP_PROXY 集成。

MOCK:用于将路由或方法请求与 API Gateway 集成为“环回”终端节点,而不调用任何后端。仅 WebSocket API 支持。

必需:是

类型:字符串

Update requires: No interruption

IntegrationUri

对于 Lambda 集成,请指定 Lambda 函数的 URI。

对于 HTTP 集成,请指定完全限定的 URL。

对于 HTTP API 私有集成,请指定 Application Load Balancer 侦听器、网络负载均衡器侦听器或 AWS Cloud Map 服务的 ARN。如果您指定 AWS Cloud Map 服务的 ARN,API 网关将使用 DiscoverInstances 来标识资源。您可以使用查询参数来定位特定资源。要了解更多信息,请参阅 DiscoverInstances。对于私有集成,所有资源必须由同一个 AWS 账户拥有。

必需:否

类型:字符串

Update requires: No interruption

PassthroughBehavior

指定基于请求中的 Content-Type 标头的传入请求的传递行为,以及在 Integration 资源上指定为 requestTemplates 属性的可用映射模板。提供了三个有效值:WHEN_NO_MATCHWHEN_NO_TEMPLATESNEVER。仅 WebSocket API 支持。

WHEN_NO_MATCH 将未映射的内容类型的请求正文传递到集成后端而不进行转换。

NEVER 使用 HTTP 415 Unsupported Media Type 响应拒绝未映射的内容类型。

WHEN_NO_TEMPLATES 在集成没有映射到模板的内容类型时允许传递。但是,如果至少定义了一种内容类型,则将使用相同的 HTTP 415 Unsupported Media Type 响应拒绝未映射的内容类型。

必需:否

类型:字符串

Update requires: No interruption

PayloadFormatVersion

指定发送到集成的负载的格式。对 HTTP API 是必需的。对于 HTTP API,Lambda 代理集成支持的值为 1.02.0。对于所有其他集成,1.0 是唯一受支持的值。要了解更多信息,请参阅使用适用于 HTTP API 的 AWS Lambda 代理集成

必需:条件

类型:字符串

Update requires: No interruption

RequestParameters

对于 WebSocket API,这是一个键/值映射,用于指定从方法请求传递到后端的请求参数。键是集成请求参数名称,而关联值是方法请求参数值或静态值(必须包含在单引号中并根据后端的要求进行预编码)。方法请求参数值必须与 method.request.{location}.{name} 模式匹配,其中 {location} querystringpathheader{name} 必须是有效的唯一方法请求参数名称。

对于 HTTP API,请求参数是键/值映射,用于指定通过指定的 integrationSubtype 传递给 AWS_PROXY 集成的参数。您可以提供静态值,或者在运行时评估的映射请求数据、阶段变量或上下文变量。要了解更多信息,请参阅使用适用于 HTTP API 的 AWS 服务集成

必需:否

类型:Json

Update requires: No interruption

RequestTemplates

表示根据客户端发送的 Content-Type 标头的值在请求负载上应用的 Velocity 模板的映射。内容类型值是此映射中的键,模板(作为字符串)是值。仅 WebSocket API 支持。

必需:否

类型:Json

Update requires: No interruption

TemplateSelectionExpression

集成的模板选择表达式。仅 WebSocket API 支持。

必需:否

类型:字符串

Update requires: No interruption

TimeoutInMillis

对于 WebSocket API,自定义超时介于 50 到 29000 毫秒之间;对于 HTTP API,自定义超时介于 50 到 30000 毫秒之间。对于 WebSocket API,默认超时为 29 秒,对于 HTTP API,默认超时为 30 秒。

必需:否

类型:整数

Update requires: No interruption

TlsConfig

私有集成的 TLS 配置。如果指定 TLS 配置,私有集成流量将使用 HTTPS 协议。仅 HTTP API 支持。

必需:否

类型TlsConfig

Update requires: No interruption

返回值

Ref

在将此资源的逻辑 ID 传递给内部 Ref 函数时,Ref 返回集成资源 ID,例如 abcd123

For more information about using the Ref function, see Ref.

示例

集成创建示例

以下示例为 MyApi API 创建一个名为 MyIntegrationintegration 资源,其凭证由 MyCredentialsArn 指定。

JSON

{ "MyIntegration": { "Type": "AWS::ApiGatewayV2::Integration", "Properties": { "ApiId": { "Ref": "MyApi" }, "Description": "Lambda Integration", "IntegrationType": "AWS", "IntegrationUri": { "Fn::Join": [ "", [ "arn:", { "Ref": "AWS::Partition" }, ":apigateway:", { "Ref": "AWS::Region" }, ":lambda:path/2015-03-31/functions/", { "Ref": "MyLambdaFunction" }, "/invocations" ] ] }, "CredentialsArn": "MyCredentialsArn", "IntegrationMethod": "GET", "ConnectionType": "INTERNET" } } }

YAML

MyIntegration: Type: 'AWS::ApiGatewayV2::Integration' Properties: ApiId: !Ref MyApi Description: Lambda Integration IntegrationType: AWS IntegrationUri: !Join - '' - - 'arn:' - !Ref 'AWS::Partition' - ':apigateway:' - !Ref 'AWS::Region' - ':lambda:path/2015-03-31/functions/' - !Ref MyLambdaFunction - /invocations CredentialsArn: MyCredentialsArn IntegrationMethod: GET ConnectionType: INTERNET

另请参阅