翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS::Serverless::WebSocketApi
Amazon API Gateway WebSocket API を作成します。これにより、双方向のインタラクティブ通信アプリケーションを作成できます。WebSocket APIsを使用すると、サーバーはクライアントにメッセージをリクエストすることなくメッセージを送信できます。詳細については、APIsWebSocket API の使用」を参照してください。
CloudFormation フックまたは IAM ポリシーを使用して、API Gateway リソースにアクセスを制御するオーソライザーがアタッチされていることを確認することをお勧めします。
CloudFormation フックの使用の詳細については、CloudFormation CLI ユーザーガイドの「フックの登録」およびapigw-enforce-authorizer
IAM ポリシーの使用の詳細については、「API ゲートウェイデベロッパーガイド」の「API ルートに認可を要求する」を参照してください。
注記
にデプロイすると AWS CloudFormation、 は AWS SAM リソースを CloudFormation リソース AWS SAM に変換します。詳細については、「の生成済み CloudFormation リソース AWS SAM」を参照してください。
構文
AWS Serverless Application Model (AWS SAM) テンプレートでこのエンティティを宣言するには、次の構文を使用します。
YAML
Type: AWS::Serverless::WebSocketApi Properties: ApiKeySelectionExpression:StringAccessLogSettings:AccessLogSettingsAuth:WebSocketApiAuthDefaultRouteSettings:RouteSettingsDescription:StringDisableExecuteApiEndpoint:BooleanDisableSchemaValidation:BooleanDomain:WebSocketApiDomainConfigurationIpAddressType:StringName:StringPropagateTags:BooleanRoutes:RouteConfigurationRouteSelectionExpression:StringRouteSettings:RouteSettingsStageName:StringStageVariables:JsonTags:Map
プロパティ
-
ApiKeySelectionExpression -
API キー選択表現。詳細については、「 API Gateway デベロッパーガイド」の「API キー選択式」を参照してください。
タイプ: 文字列
必須: いいえ
CloudFormation 互換性: このプロパティは、
AWS::ApiGatewayV2::ApiリソースのApiKeySelectionExpressionプロパティに直接渡されます。 -
AccessLogSettings -
ステージのアクセスロギングのための設定です。
タイプ: AccessLogSettings
必須: いいえ
CloudFormation 互換性: このプロパティは、
AWS::ApiGatewayV2::StageリソースのAccessLogSettingsプロパティに直接渡されます。 -
Auth -
WebSocket API へのアクセスを制御するための認可を設定します。認可は
$connectルートに適用されます。詳細については、API Gateway デベロッパーガイドのWebSocket APIs」を参照してください。
タイプ: WebSocketApiAuth
必須: いいえ
CloudFormation 互換性: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のプロパティはありません。
-
DefaultRouteSettings -
この WebSocket API のデフォルトのルート設定。これらの設定は、特定のルートの
RouteSettingsプロパティによって上書きされる場合を除き、すべてのルートに適用されます。Type: RouteSettings
必須: いいえ
CloudFormation 互換性: このプロパティは、
AWS::ApiGatewayV2::StageリソースのDefaultRouteSettingsプロパティに直接渡されます。 -
Description -
WebSocket API の説明。
タイプ: 文字列
必須: いいえ
CloudFormation 互換性: このプロパティは、
AWS::ApiGatewayV2::ApiリソースのDescriptionプロパティに直接渡されます。 -
DisableExecuteApiEndpoint -
クライアントがデフォルトの
execute-apiエンドポイントを使用して API を呼び出すことができるかどうかを指定します。クライアントがカスタムドメイン名を使用して API を呼び出すように要求するには、デフォルトのエンドポイントを無効にします。型: ブール
必須: いいえ
CloudFormation 互換性: このプロパティは、
AWS::ApiGatewayV2::ApiリソースのDisableExecuteApiEndpointプロパティに直接渡されます。 -
DisableSchemaValidation -
デプロイを作成するときにモデルの検証を避けます。
型: ブール
必須: いいえ
CloudFormation 互換性: このプロパティは、
AWS::ApiGatewayV2::ApiリソースのDisableSchemaValidationプロパティに直接渡されます。 -
Domain -
この WebSocket API のカスタムドメインを設定します。
注記
WebSocket APIs相互 TLS 認証 (MTLS) をサポートしていません。
MutualTlsAuthenticationまたは を指定した場合OwnershipVerificationCertificateArn、 AWS SAM はエラーを返します。タイプ: WebSocketApiDomainConfiguration
必須: いいえ
CloudFormation 互換性: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のプロパティはありません。
-
IpAddressType -
API の IP アドレスタイプ。有効な値は IPv4 のみ
ipv4、IPv4 および IPv6dualstackです。タイプ: 文字列
必須: いいえ
CloudFormation 互換性: このプロパティは、
AWS::ApiGatewayV2::ApiリソースのIpAddressTypeプロパティに直接渡されます。 -
Name -
WebSocket API の名前。名前を指定しない場合、 は名前 AWS SAM を生成します。
タイプ: 文字列
必須: いいえ
CloudFormation 互換性: このプロパティは、
AWS::ApiGatewayV2::ApiリソースのNameプロパティに直接渡されます。 -
の場合
true、 が AWS SAM 生成するAWS::ApiGatewayV2::StageおよびAWS::ApiGatewayV2::DomainNameリソースにTagsプロパティ AWS SAM を追加します。型: ブール
必須: いいえ
CloudFormation 互換性: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のプロパティはありません。
-
Routes -
この WebSocket API のルート設定。ルートは、メッセージが Lambda 関数にルーティングされる方法を定義します。各ルートは、ルートキーと Lambda 関数 ARN で構成されます。
WebSocket APIs
$connect、、$disconnectおよび の 3 つの事前定義されたルートをサポートします$default。カスタムルートを定義することもできます。タイプ: RouteConfiguration
必須: はい
CloudFormation 互換性: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のものはありません。
-
RouteSelectionExpression -
WebSocket API のルート選択式。詳細については、API Gateway デベロッパーガイドの「ルート選択式」を参照してください。
一般的な値は で
$request.body.action、メッセージ本文のactionフィールドに基づいてメッセージをルーティングします。タイプ: 文字列
必須: はい
CloudFormation 互換性: このプロパティは、
AWS::ApiGatewayV2::ApiリソースのRouteSelectionExpressionプロパティに直接渡されます。 -
RouteSettings -
この WebSocket API のルート設定。これらの設定は、特定のルート
DefaultRouteSettingsの を上書きします。Type: RouteSettings
必須: いいえ
CloudFormation 互換性: このプロパティは、
AWS::ApiGatewayV2::StageリソースのRouteSettingsプロパティに直接渡されます。 -
StageName -
API ステージの名前です。名前を指定しない場合、ステージ名
defaultとして AWS SAM を使用します。タイプ: 文字列
必須: いいえ
CloudFormation 互換性: このプロパティは、
AWS::ApiGatewayV2::StageリソースのStageNameプロパティに直接渡されます。 -
StageVariables -
ステージ変数を定義するマップです。変数名には英数字とアンダースコアを使用できます。値は と一致する必要があります
[A-Za-z0-9-._~:/?#&=,]+。タイプ: Json
必須: いいえ
CloudFormation 互換性: このプロパティは、
AWS::ApiGatewayV2::StageリソースのStageVariablesプロパティに直接渡されます。 -
この WebSocket API に追加するタグを指定するマップ (文字列から文字列)。タグの有効なキーと値の詳細については、CloudFormation ユーザーガイドのリソースタグを参照してください。
タイプ: マップ
必須: いいえ
CloudFormation 互換性: このプロパティは に固有 AWS SAM であり、 CloudFormation 同等のプロパティはありません。
例
Simple WebSocket API
次の例では、3 つのルートを持つ WebSocket API を作成します。
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
Lambda オーソライザーを使用した WebSocket API
次の例では、Lambda オーソライザーを使用して WebSocket API を作成します。
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