Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS::Serverless::WebSocketApi
Membuat API Amazon WebSocket API Gateway, yang memungkinkan Anda membuat aplikasi komunikasi interaktif dua arah. WebSocket APIs memungkinkan server untuk mengirim pesan ke klien tanpa klien harus meminta mereka. Untuk informasi selengkapnya, lihat Bekerja dengan WebSocket APIs di Panduan Pengembang API Gateway.
Kami menyarankan Anda menggunakan CloudFormation kait atau kebijakan IAM untuk memverifikasi bahwa sumber daya API Gateway memiliki otorisasi yang melekat padanya untuk mengontrol akses ke sumber daya tersebut.
Untuk informasi selengkapnya tentang penggunaan CloudFormation kait, lihat Mendaftarkan kait di panduan pengguna CloudFormation CLI dan repositori. apigw-enforce-authorizer
Untuk informasi selengkapnya tentang penggunaan kebijakan IAM, lihat Mengharuskan rute API memiliki otorisasi dalam Panduan Pengembang API Gateway.
catatan
Ketika Anda menyebarkan ke AWS CloudFormation, AWS SAM mengubah AWS SAM sumber daya Anda menjadi CloudFormation sumber daya. Untuk informasi selengkapnya, lihat CloudFormation Sumber daya yang dihasilkan untuk AWS SAM.
Sintaksis
Untuk mendeklarasikan entitas ini dalam template AWS Serverless Application Model (AWS SAM) Anda, gunakan sintaks berikut.
YAML
Type: AWS::Serverless::WebSocketApi Properties: ApiKeySelectionExpression:StringAccessLogSettings:AccessLogSettingsAuth:WebSocketApiAuthDefaultRouteSettings:RouteSettingsDescription:StringDisableExecuteApiEndpoint:BooleanDisableSchemaValidation:BooleanDomain:WebSocketApiDomainConfigurationIpAddressType:StringName:StringPropagateTags:BooleanRoutes:RouteConfigurationRouteSelectionExpression:StringRouteSettings:RouteSettingsStageName:StringStageVariables:JsonTags:Map
Sifat-sifat
-
ApiKeySelectionExpression -
Ekspresi pemilihan kunci API. Untuk informasi selengkapnya, lihat Ekspresi Pemilihan Kunci API di Panduan Pengembang API Gateway.
Tipe: String
Wajib: Tidak
CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
ApiKeySelectionExpressionpropertiAWS::ApiGatewayV2::Apisumber daya. -
AccessLogSettings -
Pengaturan untuk log akses dalam tahap.
Jenis: AccessLogSettings
Wajib: Tidak
CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
AccessLogSettingspropertiAWS::ApiGatewayV2::Stagesumber daya. -
Auth -
Mengonfigurasi otorisasi untuk mengontrol akses ke API Anda WebSocket . Otorisasi diterapkan pada
$connectrute.Untuk informasi selengkapnya, lihat Mengontrol akses WebSocket APIs di Panduan Pengembang API Gateway.
Jenis: WebSocketApiAuth
Wajib: Tidak
CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.
-
DefaultRouteSettings -
Pengaturan rute default untuk WebSocket API ini. Pengaturan ini berlaku untuk semua rute kecuali dibatalkan oleh properti
RouteSettingsuntuk rute tertentu.Jenis: RouteSettings
Wajib: Tidak
CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
DefaultRouteSettingspropertiAWS::ApiGatewayV2::Stagesumber daya. -
Description -
Deskripsi WebSocket API.
Tipe: String
Wajib: Tidak
CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
DescriptionpropertiAWS::ApiGatewayV2::Apisumber daya. -
DisableExecuteApiEndpoint -
Menentukan apakah klien dapat memanggil API dengan menggunakan titik akhir
execute-apidefault. Untuk meminta agar klien menggunakan nama domain kustom untuk memanggil API Anda, nonaktifkan titik akhir default.Tipe: Boolean
Wajib: Tidak
CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
DisableExecuteApiEndpointpropertiAWS::ApiGatewayV2::Apisumber daya. -
DisableSchemaValidation -
Hindari memvalidasi model saat membuat deployment.
Tipe: Boolean
Wajib: Tidak
CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
DisableSchemaValidationpropertiAWS::ApiGatewayV2::Apisumber daya. -
Domain -
Mengonfigurasi domain kustom untuk WebSocket API ini.
catatan
WebSocket APIs tidak mendukung otentikasi TLS timbal balik (MTLS). Jika Anda menentukan
MutualTlsAuthenticationatauOwnershipVerificationCertificateArn, AWS SAM akan mengembalikan kesalahan.Jenis: WebSocketApiDomainConfiguration
Wajib: Tidak
CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.
-
IpAddressType -
Jenis alamat IP untuk API. Nilai yang valid IPv4 hanya
ipv4untuk dandualstackuntuk IPv4 dan IPv6.Tipe: String
Wajib: Tidak
CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
IpAddressTypepropertiAWS::ApiGatewayV2::Apisumber daya. -
Name -
Sebuah nama untuk WebSocket API. Jika Anda tidak menentukan nama, AWS SAM buat nama untuk Anda.
Tipe: String
Wajib: Tidak
CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
NamepropertiAWS::ApiGatewayV2::Apisumber daya. -
Jika
true, AWS SAM tambahkanTagsproperti keAWS::ApiGatewayV2::StagedanAWS::ApiGatewayV2::DomainNamesumber daya yang AWS SAM menghasilkan.Tipe: Boolean
Wajib: Tidak
CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.
-
Routes -
Konfigurasi rute untuk WebSocket API ini. Rute menentukan bagaimana pesan dirutekan ke fungsi Lambda. Setiap rute terdiri dari kunci rute dan fungsi Lambda ARN.
WebSocket APIs mendukung tiga rute yang telah ditentukan:
$connect,$disconnect, dan$default. Anda juga dapat menentukan rute khusus.Jenis: RouteConfiguration
Wajib: Ya
CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.
-
RouteSelectionExpression -
Ekspresi pemilihan rute untuk WebSocket API. Untuk informasi selengkapnya, lihat Ekspresi Pemilihan Rute di Panduan Pengembang API Gateway.
Nilai umum adalah
$request.body.action, yang merutekan pesan berdasarkanactionbidang di badan pesan.Tipe: String
Wajib: Ya
CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
RouteSelectionExpressionpropertiAWS::ApiGatewayV2::Apisumber daya. -
RouteSettings -
Pengaturan rute untuk WebSocket API ini. Pengaturan ini mengesampingkan
DefaultRouteSettingsrute tertentu.Jenis: RouteSettings
Wajib: Tidak
CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
RouteSettingspropertiAWS::ApiGatewayV2::Stagesumber daya. -
StageName -
Nama tahap API. Jika Anda tidak menentukan nama, AWS SAM gunakan
defaultsebagai nama panggung.Tipe: String
Wajib: Tidak
CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
StageNamepropertiAWS::ApiGatewayV2::Stagesumber daya. -
StageVariables -
Sebuah peta yang mendefinisikan variabel tahapan. Nama variabel dapat memiliki karakter alfanumerik dan garis bawah, dan nilainya harus cocok.
[A-Za-z0-9-._~:/?#&=,]+Tipe: Json
Wajib: Tidak
CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
StageVariablespropertiAWS::ApiGatewayV2::Stagesumber daya. -
Peta (string ke string) yang menentukan tag yang akan ditambahkan ke WebSocket API ini. Untuk detail tentang kunci dan nilai tag yang valid, lihat Tag sumber daya di Panduan CloudFormation Pengguna.
Tipe: Peta
Wajib: Tidak
CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki CloudFormation padanan.
Contoh
WebSocket API Sederhana
Contoh berikut membuat WebSocket API dengan tiga rute.
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 dengan Lambda Authorizer
Contoh berikut membuat WebSocket API dengan otorisasi 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