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 resource 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.
Sintaks
Untuk mendeklarasikan entitas ini dalam template AWS Serverless Application Model (AWS SAM) Anda, gunakan sintaks berikut.
YAML
Type: AWS::Serverless::Api Properties: AccessLogSetting:
AccessLogSetting
AlwaysDeploy:Boolean
ApiKeySourceType:String
Auth:ApiAuth
BinaryMediaTypes:List
CacheClusterEnabled:Boolean
CacheClusterSize:String
CanarySetting:CanarySetting
Cors:String | CorsConfiguration
DefinitionBody:JSON
DefinitionUri:String | ApiDefinition
Description:String
DisableExecuteApiEndpoint:Boolean
Domain:DomainConfiguration
EndpointConfiguration:EndpointConfiguration
FailOnWarnings:Boolean
GatewayResponses:Map
MergeDefinitions:Boolean
MethodSettings:MethodSettings
MinimumCompressionSize:Integer
Mode:String
Models:Map
Name:String
OpenApiVersion:String
PropagateTags:Boolean
StageName:String
Tags:Map
TracingEnabled:Boolean
Variables:Map
Properti
-
AccessLogSetting
-
Mengonfigurasi Pengaturan Log Ac untuk tahap.
Jenis: AccessLogSetting
Wajib: Tidak
AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
AccessLogSetting
propertiAWS::ApiGateway::Stage
sumber 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
HEADER
danAUTHORIZER
.Tipe: String
Wajib: Tidak
AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
ApiKeySourceType
propertiAWS::ApiGateway::RestApi
sumber daya. -
Auth
-
Konfigurasikan otorisasi untuk mengendalikan akses ke API Gateway Anda.
Untuk informasi selengkapnya tentang mengonfigurasi akses menggunakan AWS SAM lihatKontrol API akses dengan AWS SAM template Anda.
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 untuk API. Gunakan ~1 bukan / dalam tipe mime.
Tipe: Daftar
Wajib: Tidak
AWS CloudFormation kompatibilitas: Properti ini mirip dengan
BinaryMediaTypes
propertiAWS::ApiGateway::RestApi
sumber 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
CachingEnabled
ketrue
bawahMethodSettings
.Tipe: Boolean
Wajib: Tidak
AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
CacheClusterEnabled
propertiAWS::ApiGateway::Stage
sumber daya. -
CacheClusterSize
-
Ukuran klaster cache dari tahap tersebut.
Tipe: String
Wajib: Tidak
AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
CacheClusterSize
propertiAWS::ApiGateway::Stage
sumber daya. -
CanarySetting
-
Konfigurasikan pengaturan canary ke tahap deployment reguler.
Jenis: CanarySetting
Wajib: Tidak
AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
CanarySetting
propertiAWS::ApiGateway::Stage
sumber daya. -
Cors
-
Kelola Cross-origin resource sharing (CORS) untuk semua API Gateway Anda. Tentukan domain untuk diizinkan sebagai string atau tentukan kamus dengan konfigurasi Cors tambahan.
catatan
CORS AWS SAM perlu memodifikasi definisi OpenAPI Anda. Buat definisi OpenAPI sebaris di untuk mengaktifkan
DefinitionBody
CORS.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
DefinitionUri
danDefinitionBody
tidak ditentukan, SAM akan membuatDefinitionBody
untuk Anda berdasarkan konfigurasi templat Anda.Untuk mereferensikan OpenAPI file lokal yang mendefinisikan API Anda, gunakan
AWS::Include
transformasi. Untuk mempelajari selengkapnya, lihat Cara AWS SAM mengunggah file lokal.Tipe: JSON
Wajib: Tidak
AWS CloudFormation kompatibilitas: Properti ini mirip dengan
Body
propertiAWS::ApiGateway::RestApi
sumber daya. Jika properti tertentu disediakan, konten dapat dimasukkan atau dimodifikasi ke dalam DefinitionBody sebelum diteruskan ke CloudFormation. Properti termasukAuth
,BinaryMediaTypes
Cors
,GatewayResponses
,Models
,, danEventSource
tipe 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
DefinitionUri
danDefinitionBody
tidak ditentukan, SAM akan membuatDefinitionBody
untuk Anda berdasarkan konfigurasi templat Anda.Jika lintasan file lokal disediakan, templat harus melalui alur kerja yang mencakup perintah
sam deploy
atausam package
, agar ketentuan diubah dengan benar.Fungsi intrinsik tidak didukung dalam OpenApi file eksternal yang direferensikan oleh.
DefinitionUri
GunakanDefinitionBody
properti dengan Include Transform untuk mengimpor OpenApi definisi ke dalam template.Jenis: String | ApiDefinition
Wajib: Tidak
AWS CloudFormation kompatibilitas: Properti ini mirip dengan
BodyS3Location
propertiAWS::ApiGateway::RestApi
sumber 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
Description
propertiAWS::ApiGateway::RestApi
sumber daya. -
DisableExecuteApiEndpoint
-
Menentukan apakah klien dapat memanggil API dengan menggunakan titik akhir
execute-api
default. 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
DisableExecuteApiEndpoint
propertiAWS::ApiGateway::RestApi
sumber daya. Itu diteruskan langsung kedisableExecuteApiEndpoint
propertix-amazon-apigateway-endpoint-configuration
ekstensi, yang akan ditambahkan keBody
propertiAWS::ApiGateway::RestApi
sumber 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
EndpointConfiguration
propertiAWS::ApiGateway::RestApi
sumber 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
FailOnWarnings
propertiAWS::ApiGateway::RestApi
sumber 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
true
untuk AWS SAM menggabungkan ini ke dalam OpenAPI spesifikasi sebaris yang ditentukan dalam sumber daya AndaAWS::Serverless::Api
. Tentukanfalse
untuk tidak bergabung.MergeDefinitions
membutuhkanDefinitionBody
propertiAWS::Serverless::Api
untuk didefinisikan.MergeDefinitions
tidak kompatibel denganDefinitionUri
properti untukAWS::Serverless::Api
.Nilai default:
false
Tipe: 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
MethodSettings
propertiAWS::ApiGateway::Stage
sumber 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
MinimumCompressionSize
propertiAWS::ApiGateway::RestApi
sumber daya. -
Mode
-
Properti ini hanya berlaku bila Anda menggunakan OpenAPI untuk menentukan API REST Anda.
Mode
menentukan bagaimana API Gateway menangani pembaruan sumber daya. Untuk informasi selengkapnya, lihat Properti mode dari jenis AWS::ApiGateway::RestApisumber daya.Nilai yang valid:
overwrite
ataumerge
Tipe: String
Wajib: Tidak
AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
Mode
propertiAWS::ApiGateway::RestApi
sumber 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
Name
propertiAWS::ApiGateway::RestApi
sumber daya. -
OpenApiVersion
-
Versi OpenApi untuk digunakan. Ini bisa
2.0
untuk spesifikasi Swagger, atau salah satu versi OpenApi 3.0, seperti.3.0.1
Untuk informasi selengkapnya tentang OpenAPI, lihat Spesifikasi OpenAPI. catatan
AWS SAM menciptakan tahap yang disebut secara
Stage
default. 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
Tags
properti ke sumber daya yang Anda AWS::Serverless::Api hasilkan atau tidak. TentukanTrue
untuk menyebarkan tag di sumber daya yang Anda hasilkan.Tipe: Boolean
Wajib: Tidak
Default:
False
AWS CloudFormation kompatibilitas: Properti ini unik AWS SAM dan tidak memiliki AWS CloudFormation padanan.
-
StageName
-
Nama tahap, yang digunakan API Gateway sebagai segmen jalur pertama dalam Uniform Resource Identifier (URI) panggil.
Untuk referensi sumber daya tahap, gunakan
. Untuk informasi lebih lanjut tentang referensi sumber daya yang dibuat ketika sumber daya AWS::Serverless::Api ditentukan, lihat AWS CloudFormation sumber daya yang dihasilkan saat AWS::Serverless::Api ditentukan. Untuk informasi umum tentang AWS CloudFormation sumber daya yang dihasilkan, lihatAWS CloudFormation Sumber daya yang dihasilkan untuk AWS SAM.<api-logical-id>
.StageTipe: String
Wajib: Ya
AWS CloudFormation kompatibilitas: Properti ini mirip dengan
StageName
propertiAWS::ApiGateway::Stage
sumber 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
Tags
propertiAWS::ApiGateway::Stage
sumber 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 Melacak permintaan pengguna untuk REST API menggunakan X-Ray di Panduan Developer API Gateway.
Tipe: Boolean
Wajib: Tidak
AWS CloudFormation kompatibilitas: Properti ini diteruskan langsung ke
TracingEnabled
propertiAWS::ApiGateway::Stage
sumber 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
Variables
propertiAWS::ApiGateway::Stage
sumber 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}