View a markdown version of this page

CloudFormation 指定时 AWS::Serverless::WebSocketApi 生成的资源 - AWS Serverless Application Model

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

CloudFormation 指定时 AWS::Serverless::WebSocketApi 生成的资源

指定AWS::Serverless::WebSocketApi后, AWS Serverless Application Model (AWS SAM) 会生成AWS::ApiGatewayV2::Api基础 CloudFormation 资源。此外,它还会始终生成AWS::ApiGatewayV2::Stage资源,并为Routes属性中定义的每条路径 AWS SAM 生成AWS::ApiGatewayV2::RouteAWS::ApiGatewayV2::Integration、和AWS::Lambda::Permission资源。

AWS::ApiGatewayV2::Api

LogicalId: <websocketapi‑LogicalId>

可引用的属性:N/A(必须使用LogicalId来引用此 CloudFormation 资源)

AWS::ApiGatewayV2::Stage

LogicalId: <websocketapi‑LogicalId><stage‑name>Stage

<stage‑name>StageName 属性将被设置为的字符串。如果StageName未指定,则默认值为default。例如,您将 StageName 设置为 prodLogicalIdMyWebSocketApiprodStage

可引用属性:<websocketapi‑LogicalId>.Stage

AWS::ApiGatewayV2::Route

LogicalId: <websocketapi‑LogicalId><normalized‑route‑key>Route

<normalized‑route‑key>是去掉特殊字符的路径密钥。例如,对于路径密钥$connectLogicalIdMyWebSocketApiconnectRoute

可引用的属性:N/A(必须使用LogicalId来引用此 CloudFormation 资源)

AWS::ApiGatewayV2::Integration

LogicalId: <websocketapi‑LogicalId><normalized‑route‑key>Integration

可引用的属性:N/A(必须使用LogicalId来引用此 CloudFormation 资源)

AWS::Lambda::Permission

LogicalId: <websocketapi‑LogicalId><normalized‑route‑key>Permission

可引用的属性:N/A(必须使用LogicalId来引用此 CloudFormation 资源)

除了这些 CloudFormation 资源之外,如果AWS::Serverless::WebSocketApi指定了这些资源, AWS SAM 还会为以下场景生成 CloudFormation 资源:

指定身份验证属性时 AuthType 设置为 “自定义”

将的Auth属性指定AWS::Serverless::WebSocketApiAuthType为时CUSTOM,将 AWS SAM 生成AWS::ApiGatewayV2::Authorizer CloudFormation 资源。如果未指定,InvokeRole则 AWS SAM 还会生成一个AWS::Lambda::Permission资源以允许 API Gateway 调用授权器函数。

AWS::ApiGatewayV2::Authorizer

LogicalId: <websocketapi‑LogicalId>Authorizer

可引用的属性:N/A(必须使用LogicalId来引用此 CloudFormation 资源)

AWS::Lambda::PermissionInvokeRole未指定时)

LogicalId: <websocketapi‑LogicalId>AuthorizerPermission

可引用的属性:N/A(必须使用LogicalId来引用此 CloudFormation 资源)

DomainName 属性已指定

指定DomainName属性的Domain属性后,将 AWS SAM 生成AWS::ApiGatewayV2::DomainName CloudFormation 资源。AWS::Serverless::WebSocketApi

AWS::ApiGatewayV2::DomainName

LogicalId: ApiGatewayDomainNameV2<sha>

<sha> 是在创建堆栈时生成的唯一哈希值。例如:ApiGatewayDomainNameV2926eeb5ff1

可引用的属性:N/A(必须使用LogicalId来引用此 CloudFormation 资源)

BasePath 属性已指定

指定属BasePath性的属性后, AWS SAM 会生成AWS::ApiGatewayV2::ApiMapping CloudFormation 资源,每个指定的基本路径都生成一个资源。Domain AWS::Serverless::WebSocketApi

AWS::ApiGatewayV2::ApiMapping

LogicalId: <websocketapi‑LogicalId><basepath>ApiMapping

<basepath>是基本路径值。例如,如果您指定v1为基本路径,则LogicalIdMyWebSocketApiv1ApiMapping

可引用的属性:N/A(必须使用LogicalId来引用此 CloudFormation 资源)

指定了 Route53 属性

当指定了Domain属性的属性AWS::Serverless::WebSocketApi时, AWS SAM 会生成一个AWS::Route53::RecordSetGroup CloudFormation 资源。Route53

AWS::Route53::RecordSetGroup

LogicalId: RecordSetGroup<sha>

<sha> 是在创建堆栈时生成的唯一哈希值。例如:RecordSetGroup926eeb5ff1

可引用的属性:N/A(必须使用LogicalId来引用此 CloudFormation 资源)