Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS::Serverless::Api
Membuat koleksi sumber daya Amazon API Gateway dan metode yang dapat dipanggil melalui titik akhir HTTPS.
AWS::Serverless::ApiSumber daya tidak perlu ditambahkan secara eksplisit ke template Definisi Aplikasi AWS Tanpa Server. Sumber daya tupe ini secara implisit dibuat dari penyatuan peristiwa Api yang ditentukan pada sumber daya AWS::Serverless::Function yang ditentukan dalam templat yang tidak mengacu pada sumber daya AWS::Serverless::Api.
AWS::Serverless::ApiResource harus digunakan untuk mendefinisikan dan mendokumentasikan penggunaan API OpenApi, yang memberikan lebih banyak kemampuan untuk mengonfigurasi sumber daya Amazon API Gateway yang mendasarinya.
Kami menyarankan Anda menggunakan AWS 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 AWS CloudFormation kait, lihat Mendaftarkan kait di panduan pengguna AWS 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 AWS CloudFormation sumber daya. Untuk informasi selengkapnya, lihat AWS 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::Api Properties: AccessLogSetting:AccessLogSettingAlwaysDeploy:BooleanApiKeySourceType:StringAuth:ApiAuthBinaryMediaTypes:ListCacheClusterEnabled:BooleanCacheClusterSize:StringCanarySetting:CanarySettingCors:String | CorsConfigurationDefinitionBody:JSONDefinitionUri:String | ApiDefinitionDescription:StringDisableExecuteApiEndpoint:BooleanDomain:DomainConfigurationEndpointConfiguration:EndpointConfigurationFailOnWarnings:BooleanGatewayResponses:MapMergeDefinitions:BooleanMethodSettings:MethodSettingsMinimumCompressionSize:IntegerMode:StringModels:MapName:StringOpenApiVersion:StringPropagateTags:BooleanPolicy:JSONStageName:StringTags:MapTracingEnabled:BooleanVariables:Map
Properti
- 
					AccessLogSetting
- 
					Mengonfigurasi Pengaturan Log Ac untuk tahap. Jenis: AccessLogSetting Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke AccessLogSettingpropertiAWS::ApiGateway::Stagesumber daya.
- 
					AlwaysDeploy
- 
					Selalu menerapkan API, bahkan ketika tidak ada perubahan pada API yang terdeteksi. Tipe: Boolean Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki AWS CloudFormation padanan. 
- 
					ApiKeySourceType
- 
					Sumber kunci API untuk permintaan pengukuran sesuai dengan rencana penggunaan. Nilai yang valid adalah HEADERdanAUTHORIZER.Tipe: String Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke ApiKeySourceTypepropertiAWS::ApiGateway::RestApisumber daya.
- 
					Auth
- 
					Konfigurasikan otorisasi untuk mengendalikan akses ke API Gateway Anda. Untuk informasi selengkapnya tentang mengonfigurasi akses menggunakan AWS SAM lihatKontrol akses API dengan AWS SAM template Anda. Untuk contoh yang menunjukkan cara mengganti otorisasi global, lihat. Ganti otorisasi global untuk REST API Amazon API Gateway Jenis: ApiAuth Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki AWS CloudFormation padanan. 
- 
					BinaryMediaTypes
- 
					Daftar tipe MIME yang dapat dikembalikan API Anda. Gunakan ini untuk mengaktifkan dukungan biner untukAPIs. Tipe: Daftar Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini mirip dengan BinaryMediaTypespropertiAWS::ApiGateway::RestApisumber daya. Daftar BinaryMediaTypes ditambahkan ke AWS CloudFormation sumber daya dan dokumen OpenAPI.
- 
					CacheClusterEnabled
- 
					Menunjukkan apakah caching diaktifkan untuk panggung. Untuk cache respons, Anda juga harus mengatur CachingEnabledketruebawahMethodSettings.Tipe: Boolean Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke CacheClusterEnabledpropertiAWS::ApiGateway::Stagesumber daya.
- 
					CacheClusterSize
- 
					Ukuran klaster cache dari tahap tersebut. Tipe: String Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke CacheClusterSizepropertiAWS::ApiGateway::Stagesumber daya.
- 
					CanarySetting
- 
					Konfigurasikan pengaturan canary ke tahap deployment reguler. Jenis: CanarySetting Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke CanarySettingpropertiAWS::ApiGateway::Stagesumber daya.
- 
					Cors
- 
					Kelola berbagi sumber daya lintas asal (CORS) untuk semua API Gateway Anda. APIs Tentukan domain untuk diizinkan sebagai string atau tentukan kamus dengan konfigurasi Cors tambahan. catatanCORS AWS SAM perlu memodifikasi definisi OpenAPI Anda. Buat definisi OpenAPI sebaris di untuk mengaktifkan DefinitionBodyCORS.Untuk informasi lebih lanjut tentang CORS, lihat Aktifkan CORS untuk sumber daya API REST API Gateway di Panduan Developer API Gateway. Jenis: String | CorsConfiguration Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki AWS CloudFormation padanan. 
- 
					DefinitionBody
- 
					Spesifikasi OpenAPI yang menggambarkan API Anda. Jika DefinitionUridanDefinitionBodytidak ditentukan, SAM akan membuatDefinitionBodyuntuk Anda berdasarkan konfigurasi templat Anda.Untuk mereferensikan OpenAPI file lokal yang mendefinisikan API Anda, gunakan AWS::Includetransformasi. Untuk mempelajari selengkapnya, lihat Cara AWS SAM mengunggah file lokal.Tipe: JSON Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini mirip dengan BodypropertiAWS::ApiGateway::RestApisumber daya. Jika properti tertentu disediakan, konten dapat dimasukkan atau dimodifikasi ke dalam DefinitionBody sebelum diteruskan ke CloudFormation. Properti termasukAuth,BinaryMediaTypesCors,GatewayResponses,Models,, danEventSourcetipe Api untuk yang sesuaiAWS::Serverless::Function.
- 
					DefinitionUri
- 
					Amazon S3 Uri, jalur file lokal, atau objek lokasi dokumen OpenAPI menentukan API. Objek Amazon S3 yang dirujuk properti ini harus menjadi file OpenAPI yang valid. Jika DefinitionUridanDefinitionBodytidak ditentukan, SAM akan membuatDefinitionBodyuntuk Anda berdasarkan konfigurasi templat Anda.Jika lintasan file lokal disediakan, templat harus melalui alur kerja yang mencakup perintah sam deployatausam package, agar ketentuan diubah dengan benar.Fungsi intrinsik tidak didukung dalam OpenApi file eksternal yang direferensikan oleh. DefinitionUriGunakan sebagai gantinyaDefinitionBodyproperti dengan Include Transform untuk mengimpor OpenApi definisi ke dalam template.Jenis: String | ApiDefinition Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini mirip dengan BodyS3LocationpropertiAWS::ApiGateway::RestApisumber daya. Properti Amazon S3 nest diberi nama berbeda.
- 
					Description
- 
					Deskripsi sumber daya Api. Tipe: String Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke DescriptionpropertiAWS::ApiGateway::RestApisumber daya.
- 
					DisableExecuteApiEndpoint
- 
					Menentukan apakah klien dapat memanggil API dengan menggunakan titik akhir execute-apidefault. Secara default, klien dapat memanggil API Anda dengan defaulthttps://{api_id}.execute-api.{region}.amazonaws.com. Untuk mengharuskan klien menggunakan nama domain khusus untuk menjalankan API Anda, tentukanTrue.Tipe: Boolean Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini mirip dengan DisableExecuteApiEndpointpropertiAWS::ApiGateway::RestApisumber daya. Itu diteruskan langsung kedisableExecuteApiEndpointpropertix-amazon-apigateway-endpoint-configurationekstensi, yang akan ditambahkan keBodypropertiAWS::ApiGateway::RestApisumber daya.
- 
					Domain
- 
					Mengonfigurasi domain khusus untuk API dari API Gateway ini. Jenis: DomainConfiguration Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki AWS CloudFormation padanan. 
- 
					EndpointConfiguration
- 
					Tipe titik akhir dari REST API. Jenis: EndpointConfiguration Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini mirip dengan EndpointConfigurationpropertiAWS::ApiGateway::RestApisumber daya. Properti konfigurasi nest diberi nama berbeda.
- 
					FailOnWarnings
- 
					Menentukan apakah akan memutar kembali penciptaan API ( true) atau not (false) ketika peringatan ditemui. Nilai default-nya adalahfalse.Tipe: Boolean Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke FailOnWarningspropertiAWS::ApiGateway::RestApisumber daya.
- 
					GatewayResponses
- 
					Mengonfigurasi Respons Gateway untuk API. Respons Gateway adalah respons yang dikembalikan oleh API Gateway, secara langsung atau melalui penggunaan Lambda Authorizers. Untuk informasi selengkapnya, lihat dokumentasi untuk OpenApi ekstensi Api Gateway untuk Tanggapan Gateway. Tipe: Peta Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki AWS CloudFormation padanan. 
- 
					MergeDefinitions
- 
					AWS SAM menghasilkan OpenAPI spesifikasi dari sumber peristiwa API Anda. Tentukan trueuntuk AWS SAM menggabungkan ini ke dalam OpenAPI spesifikasi sebaris yang ditentukan dalam sumber daya AndaAWS::Serverless::Api. Tentukanfalseuntuk tidak bergabung.MergeDefinitionsmembutuhkanDefinitionBodypropertiAWS::Serverless::Apiuntuk didefinisikan.MergeDefinitionstidak kompatibel denganDefinitionUriproperti untukAWS::Serverless::Api.Nilai default: falseTipe: Boolean Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki AWS CloudFormation padanan. 
- 
					MethodSettings
- 
					Mengonfigurasi semua pengaturan untuk tahap API termasuk Logging, Metrik, CacheTTL, Throttling. Jenis: Daftar MethodSetting Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke MethodSettingspropertiAWS::ApiGateway::Stagesumber daya.
- 
					MinimumCompressionSize
- 
					Izinkan kompresi isi respons berdasarkan header Accept-Encoding klien. Kompresi terpicu ketika ukuran tubuh respons lebih besar dari atau sama dengan ambang batas Anda yang telah dikonfigurasi. Ambang batas ukuran isi maksimum adalah 10 MB (10.485.760 Bita). - Tipe kompresi berikut didukung: gzip, mengempis, dan identitas. Tipe: Integer Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke MinimumCompressionSizepropertiAWS::ApiGateway::RestApisumber daya.
- 
					Mode
- 
					Properti ini hanya berlaku bila Anda menggunakan OpenAPI untuk menentukan API REST Anda. Modemenentukan bagaimana API Gateway menangani pembaruan sumber daya. Untuk informasi selengkapnya, lihat Properti mode dari jenis AWS::ApiGateway::RestApisumber daya.Nilai yang valid: overwriteataumergeTipe: String Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke ModepropertiAWS::ApiGateway::RestApisumber daya.
- 
					Models
- 
					Skema yang akan digunakan oleh metode API Anda. Skema ini dapat dijelaskan menggunakan JSON atau YAML. Lihat bagian Contoh di bagian bawah halaman ini misalnya model. Tipe: Peta Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki AWS CloudFormation padanan. 
- 
					Name
- 
					Nama untuk RestApi sumber daya API Gateway Tipe: String Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke NamepropertiAWS::ApiGateway::RestApisumber daya.
- 
					OpenApiVersion
- 
					Versi OpenApi untuk digunakan. Ini bisa 2.0untuk spesifikasi Swagger, atau salah satu versi OpenApi 3.0, seperti.3.0.1Untuk informasi selengkapnya tentang OpenAPI, lihat Spesifikasi OpenAPI. catatanAWS SAM menciptakan tahap yang disebut secara Stagedefault. Menyetel properti ini ke nilai yang valid akan mencegah pembuatan panggungStage.Tipe: String Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki AWS CloudFormation padanan. 
- 
					Tunjukkan apakah akan meneruskan tag dari Tagsproperti ke sumber daya yang Anda AWS::Serverless::Api hasilkan atau tidak. TentukanTrueuntuk menyebarkan tag di sumber daya yang Anda hasilkan.Tipe: Boolean Wajib: Tidak Default: FalseAWS CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki AWS CloudFormation padanan. 
- Policy
- 
					Dokumen kebijakan yang berisi izin untuk API. Untuk menetapkan ARN untuk kebijakan, gunakan fungsi intrinsik !Joindengan""sebagai pembatas dan nilai-nilai"execute-api:/"dan"*".Tipe: JSON Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke properti Kebijakan AWS::ApiGateway::RestApisumber daya.
- 
					StageName
- 
					Nama tahap, yang digunakan API Gateway sebagai segmen jalur pertama dalam Uniform Resource Identifier (URI) panggil. Untuk referensi sumber daya tahap, gunakan <api-logical-id>.StageTipe: String Wajib: Ya AWS CloudFormation kompatibilitas: Properti ini mirip dengan StageNamepropertiAWS::ApiGateway::Stagesumber daya. Hal ini diperlukan dalam SAM, tetapi tidak diperlukan di API GatewayCatatan tambahan: API implisit memiliki nama tahap “Prod”. 
- 
					Sebuah peta (string ke string) yang menentukan tanda yang akan ditambahkan ke tahap API Gateway ini. Untuk detail tentang kunci dan nilai tag yang valid, lihat Tag sumber daya di Panduan AWS CloudFormation Pengguna. Tipe: Peta Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini mirip dengan TagspropertiAWS::ApiGateway::Stagesumber daya. Properti Tags di SAM terdiri dari pasangan Key:Value; di CloudFormation dalamnya terdiri dari daftar objek Tag.
- 
					TracingEnabled
- 
					Menunjukkan apakah penelusuran aktif dengan X-Ray diaktifkan untuk tahap tersebut. Untuk informasi selengkapnya tentang X-Ray, lihat Menelusuri permintaan pengguna ke REST APIs menggunakan X-Ray di Panduan Pengembang API Gateway. Tipe: Boolean Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke TracingEnabledpropertiAWS::ApiGateway::Stagesumber daya.
- 
					Variables
- 
					Sebuah peta (string ke string) yang menentukan variabel tahap, dengan nama variabel adalah kunci dan nilai variabel adalah nilai. Nama variabel terbatas pada karakter alfanumerik. Nilai harus sesuai dengan ekspresi reguler berikut: [A-Za-z0-9._~:/?#&=,-]+.Tipe: Peta Wajib: Tidak AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke VariablespropertiAWS::ApiGateway::Stagesumber daya.
Nilai Pengembalian
Ref
Ketika ID logis dari sumber daya ini disediakan untuk fungsi intrinsik Ref, ID logis mengembalikan ID dari API Gateway utama.
Untuk informasi lebih lanjut tentang menggunakan fungsi Ref, lihat Ref di Panduan Pengguna AWS CloudFormation . 
Fn:: GetAtt
Fn::GetAtt mengembalikan nilai untuk atribut yang ditentukan dari jenis ini. Berikut ini adalah atribut yang tersedia dan nilai-nilai kembali sampel. 
Untuk informasi lebih lanjut tentang Fn::GetAtt, lihat Fn::GetAtt di Panduan Pengguna AWS CloudFormation  
- RootResourceId
- 
						ID sumber daya root untuk sumber daya RestApi, sepertia0bc123d4e.
Contoh
SimpleApiExample
File AWS SAM template Hello World yang berisi Fungsi Lambda dengan titik akhir API. Ini adalah file AWS SAM template lengkap untuk aplikasi tanpa server yang berfungsi.
YAML
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: AWS SAM template with a simple API definition Resources: ApiGatewayApi: Type: AWS::Serverless::Api Properties: StageName: prod ApiFunction: # Adds a GET method at the root resource via an Api event Type: AWS::Serverless::Function Properties: Events: ApiEvent: Type: Api Properties: Path: / Method: get RestApiId: Ref: ApiGatewayApi Runtime: python3.10 Handler: index.handler InlineCode: | def handler(event, context): return {'body': 'Hello World!', 'statusCode': 200}
ApiCorsExample
Cuplikan AWS SAM template dengan API yang ditentukan dalam file Swagger eksternal bersama dengan integrasi Lambda dan konfigurasi CORS. Ini hanya sebagian dari file AWS SAM template yang menunjukkan AWS::Serverless::Api definisi.
YAML
Resources: ApiGatewayApi: Type: AWS::Serverless::Api Properties: StageName: Prod # Allows www.example.com to call these APIs # SAM will automatically add AllowMethods with a list of methods for this API Cors: "'www.example.com'" DefinitionBody: # Pull in an OpenApi definition from S3 'Fn::Transform': Name: 'AWS::Include' # Replace "bucket" with your bucket name Parameters: Location: s3://bucket/swagger.yaml
ApiCognitoAuthExample
Cuplikan AWS SAM template dengan API yang menggunakan Amazon Cognito untuk mengotorisasi permintaan terhadap API. Ini hanya sebagian dari file AWS SAM template yang menunjukkan AWS::Serverless::Api definisi.
YAML
Resources: ApiGatewayApi: Type: AWS::Serverless::Api Properties: StageName: Prod Cors: "'*'" Auth: DefaultAuthorizer: MyCognitoAuthorizer Authorizers: MyCognitoAuthorizer: UserPoolArn: Fn::GetAtt: [MyCognitoUserPool, Arn]
ApiModelsExample
Cuplikan AWS SAM template dengan API yang menyertakan skema Model. Ini hanya sebagian dari file AWS SAM template, menunjukkan AWS::Serverless::Api definisi dengan dua skema model.
YAML
Resources: ApiGatewayApi: Type: AWS::Serverless::Api Properties: StageName: Prod Models: User: type: object required: - username - employee_id properties: username: type: string employee_id: type: integer department: type: string Item: type: object properties: count: type: integer category: type: string price: type: integer
Contoh caching
File AWS SAM template Hello World yang berisi Fungsi Lambda dengan titik akhir API. API telah mengaktifkan caching untuk satu sumber daya dan metode. Untuk informasi selengkapnya tentang caching, lihat Mengaktifkan caching API untuk meningkatkan daya tanggap dalam Panduan Pengembang API Gateway.
YAML
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: AWS SAM template with a simple API definition with caching turned on Resources: ApiGatewayApi: Type: AWS::Serverless::Api Properties: StageName: prod CacheClusterEnabled: true CacheClusterSize: '0.5' MethodSettings: - ResourcePath: / HttpMethod: GET CachingEnabled: true CacheTtlInSeconds: 300 Tags: CacheMethods: All ApiFunction: # Adds a GET method at the root resource via an Api event Type: AWS::Serverless::Function Properties: Events: ApiEvent: Type: Api Properties: Path: / Method: get RestApiId: Ref: ApiGatewayApi Runtime: python3.10 Handler: index.handler InlineCode: | def handler(event, context): return {'body': 'Hello World!', 'statusCode': 200}
Domain khusus dengan contoh API pribadi
File AWS SAM template Hello World yang berisi fungsi Lambda dengan titik akhir API yang dipetakan ke domain pribadi. Template membuat asosiasi akses domain antara titik akhir VPC dan domain pribadi. Untuk informasi selengkapnya, lihat Nama domain khusus untuk pribadi APIs di API Gateway.
YAML
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: AWS SAM template configured with a custom domain using a private API Parameters: DomainName: Type: String Default: mydomain.example.com CertificateArn: Type: String HostedZoneId: Type: String VpcEndpointId: Type: String VpcEndpointDomainName: Type: String VpcEndpointHostedZoneId: Type: String Resources: MyFunction: Type: AWS::Serverless::Function Properties: InlineCode: | def handler(event, context): return {'body': 'Hello World!', 'statusCode': 200} Handler: index.handler Runtime: python3.13 Events: Fetch: Type: Api Properties: RestApiId: Ref: MyApi Method: Get Path: /get MyApi: Type: AWS::Serverless::Api Properties: StageName: Prod EndpointConfiguration: Type: PRIVATE VPCEndpointIds: - !Ref VpcEndpointId Policy: Version: '2012-10-17 ' Statement: - Effect: Allow Principal: '*' Action: execute-api:Invoke Resource: execute-api:/* - Effect: Deny Principal: '*' Action: execute-api:Invoke Resource: execute-api:/* Condition: StringNotEquals: aws:SourceVpce: !Ref VpcEndpointId Domain: DomainName: !Ref DomainName CertificateArn: !Ref CertificateArn EndpointConfiguration: PRIVATE BasePath: - / Route53: HostedZoneId: !Ref HostedZoneId VpcEndpointDomainName: !Ref VpcEndpointDomainName VpcEndpointHostedZoneId: !Ref VpcEndpointHostedZoneId AccessAssociation: VpcEndpointId: !Ref VpcEndpointId Policy: Version: '2012-10-17 ' Statement: - Effect: Allow Principal: '*' Action: execute-api:Invoke Resource: execute-api:/* - Effect: Deny Principal: '*' Action: execute-api:Invoke Resource: execute-api:/* Condition: StringNotEquals: aws:SourceVpce: !Ref VpcEndpointId