As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
AWS::Serverless::WebSocketApi
Cria uma API do Amazon WebSocket API Gateway, que permite criar aplicativos de comunicação interativa bidirecional. WebSocket APIs permitem que o servidor envie mensagens aos clientes sem que o cliente precise solicitá-las. Para obter mais informações, consulte Trabalhando com WebSocket APIs no Guia do Desenvolvedor do API Gateway.
Recomendamos que você use CloudFormation ganchos ou políticas do IAM para verificar se os recursos do API Gateway têm autorizadores vinculados a eles para controlar o acesso a eles.
Para obter mais informações sobre o uso de CloudFormation ganchos, consulte Registrando ganchos no guia do usuário da CloudFormation CLI e no repositório. apigw-enforce-authorizer
Para obter mais informações sobre o uso de políticas do IAM, consulte Exigir que as rotas de API tenham autorização no Guia do desenvolvedor do API Gateway.
nota
Quando você implanta AWS CloudFormation, AWS SAM transforma seus AWS SAM recursos em CloudFormation recursos. Para obter mais informações, consulte CloudFormation Recursos gerados para AWS SAM.
Sintaxe
Para declarar essa entidade em seu modelo AWS Serverless Application Model (AWS SAM), use a sintaxe a seguir.
YAML
Type: AWS::Serverless::WebSocketApi Properties: ApiKeySelectionExpression:StringAccessLogSettings:AccessLogSettingsAuth:WebSocketApiAuthDefaultRouteSettings:RouteSettingsDescription:StringDisableExecuteApiEndpoint:BooleanDisableSchemaValidation:BooleanDomain:WebSocketApiDomainConfigurationIpAddressType:StringName:StringPropagateTags:BooleanRoutes:RouteConfigurationRouteSelectionExpression:StringRouteSettings:RouteSettingsStageName:StringStageVariables:JsonTags:Map
Propriedades
-
ApiKeySelectionExpression -
Uma expressão de seleção de chaves de API. Para obter mais informações, consulte Expressões de seleção de chaves de API no Guia do desenvolvedor do API Gateway.
Tipo: string
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
ApiKeySelectionExpressionpropriedade de umAWS::ApiGatewayV2::Apirecurso. -
AccessLogSettings -
As configurações para o registro em log de acesso em um estágio.
Digite: AccessLogSettings
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
AccessLogSettingspropriedade de umAWS::ApiGatewayV2::Stagerecurso. -
Auth -
Configura a autorização para controlar o acesso à sua WebSocket API. A autorização é aplicada à
$connectrota.Para obter mais informações, consulte Como controlar o acesso ao WebSocket APIs no Guia do desenvolvedor do API Gateway.
Digite: WebSocketApiAuth
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.
-
DefaultRouteSettings -
As configurações de rota padrão para essa WebSocket API. Essas configurações se aplicam a todas as rotas, a menos que sejam substituídas pela propriedade
RouteSettingspara determinadas rotas.Digite: RouteSettings
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
DefaultRouteSettingspropriedade de umAWS::ApiGatewayV2::Stagerecurso. -
Description -
Uma descrição da WebSocket API.
Tipo: string
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
Descriptionpropriedade de umAWS::ApiGatewayV2::Apirecurso. -
DisableExecuteApiEndpoint -
Especifica se os clientes podem invocar sua API usando o endpoint
execute-apipadrão. Para exigir que os clientes usem um nome de domínio personalizado para invocar sua API, desabilite o endpoint padrão.Tipo: booliano
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
DisableExecuteApiEndpointpropriedade de umAWS::ApiGatewayV2::Apirecurso. -
DisableSchemaValidation -
Evite validar modelos ao criar uma implantação.
Tipo: booliano
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
DisableSchemaValidationpropriedade de umAWS::ApiGatewayV2::Apirecurso. -
Domain -
Configura um domínio personalizado para essa WebSocket API.
nota
WebSocket APIs não oferecem suporte à autenticação TLS mútua (MTLS). Se você especificar
MutualTlsAuthenticationouOwnershipVerificationCertificateArn, AWS SAM retornará um erro.Digite: WebSocketApiDomainConfiguration
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.
-
IpAddressType -
O tipo de endereço IP da API. Os valores válidos são IPv4 somente
ipv4dualstackpara IPv4 e para IPv6 e.Tipo: string
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
IpAddressTypepropriedade de umAWS::ApiGatewayV2::Apirecurso. -
Name -
Um nome para a WebSocket API. Se você não especificar um nome, AWS SAM gera um nome para você.
Tipo: string
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
Namepropriedade de umAWS::ApiGatewayV2::Apirecurso. -
Se
true, AWS SAM adiciona aTagspropriedade aosAWS::ApiGatewayV2::DomainNamerecursosAWS::ApiGatewayV2::Stagee AWS SAM gerados.Tipo: booliano
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.
-
Routes -
As configurações de rota para essa WebSocket API. As rotas definem como as mensagens são roteadas para as funções Lambda. Cada rota consiste em uma chave de rota e um ARN da função Lambda.
WebSocket APIs suportam três rotas predefinidas:
$connect$disconnect, e.$defaultVocê também pode definir rotas personalizadas.Digite: RouteConfiguration
Obrigatório: Sim
CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.
-
RouteSelectionExpression -
A expressão de seleção de rotas para a WebSocket API. Para obter mais informações, consulte Expressões de seleção de rotas no Guia do desenvolvedor do API Gateway.
Um valor comum é
$request.body.action, que roteia mensagens com base em umactioncampo no corpo da mensagem.Tipo: string
Obrigatório: Sim
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
RouteSelectionExpressionpropriedade de umAWS::ApiGatewayV2::Apirecurso. -
RouteSettings -
As configurações de rota para essa WebSocket API. Essas configurações substituem
DefaultRouteSettingsas rotas específicas.Digite: RouteSettings
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
RouteSettingspropriedade de umAWS::ApiGatewayV2::Stagerecurso. -
StageName -
O nome do estágio da API. Se você não especificar um nome, AWS SAM use
defaultcomo nome artístico.Tipo: string
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
StageNamepropriedade de umAWS::ApiGatewayV2::Stagerecurso. -
StageVariables -
Um mapa que define as variáveis da etapa. Os nomes das variáveis podem ter caracteres alfanuméricos e sublinhados, e os valores devem corresponder
[A-Za-z0-9-._~:/?#&=,]+.Type: Json
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é passada diretamente para a
StageVariablespropriedade de umAWS::ApiGatewayV2::Stagerecurso. -
Um mapa (string a string) que especifica as tags a serem adicionadas a essa WebSocket API. Para obter detalhes sobre chaves e valores válidos para tags, consulte Etiqueta de recurso no CloudFormation Guia do usuário.
Tipo: mapa
Obrigatório: não
CloudFormation compatibilidade: essa propriedade é exclusiva AWS SAM e não tem CloudFormation equivalente.
Exemplos
WebSocket API simples
O exemplo a seguir cria uma WebSocket API com três rotas.
Resources: MyWebSocketApi: Type: AWS::Serverless::WebSocketApi Properties: RouteSelectionExpression: $request.body.action Routes: $connect: FunctionArn: !GetAtt ConnectFunction.Arn $disconnect: FunctionArn: !GetAtt DisconnectFunction.Arn sendMessage: FunctionArn: !GetAtt SendMessageFunction.Arn ConnectFunction: Type: AWS::Serverless::Function Properties: Handler: index.connect Runtime: nodejs20.x CodeUri: ./src DisconnectFunction: Type: AWS::Serverless::Function Properties: Handler: index.disconnect Runtime: nodejs20.x CodeUri: ./src SendMessageFunction: Type: AWS::Serverless::Function Properties: Handler: index.sendMessage Runtime: nodejs20.x CodeUri: ./src
WebSocket API com Lambda Authorizer
O exemplo a seguir cria uma WebSocket API com um autorizador Lambda.
Resources: MyWebSocketApi: Type: AWS::Serverless::WebSocketApi Properties: RouteSelectionExpression: $request.body.action Auth: AuthType: CUSTOM AuthArn: !GetAtt AuthorizerFunction.Arn IdentitySource: - route.request.header.Authorization Routes: $connect: FunctionArn: !GetAtt ConnectFunction.Arn sendMessage: FunctionArn: !GetAtt SendMessageFunction.Arn AuthorizerFunction: Type: AWS::Serverless::Function Properties: Handler: index.authorize Runtime: nodejs20.x CodeUri: ./src ConnectFunction: Type: AWS::Serverless::Function Properties: Handler: index.connect Runtime: nodejs20.x CodeUri: ./src SendMessageFunction: Type: AWS::Serverless::Function Properties: Handler: index.sendMessage Runtime: nodejs20.x CodeUri: ./src