ALIYUN::ApiGateway::Api digunakan untuk membuat API di API Gateway.
Sintaksis
{
"Type": "ALIYUN::ApiGateway::Api",
"Properties": {
"ErrorCodeSamples": List,
"Description": String,
"ServiceConfig": Map,
"SystemParameters": List,
"ServiceParameters": List,
"OpenIdConnectConfig": Map,
"RequestConfig": Map,
"AuthType": String,
"Visibility": String,
"Tags": List,
"ResultSample": String,
"ResultType": String,
"ApiName": String,
"FailResultSample": String,
"DisableInternet": Boolean,
"ForceNonceCheck": Boolean,
"ConstParameters": List,
"GroupId": String,
"ServiceParametersMap": List,
"RequestParameters": List,
"AppCodeAuthType": String,
"ResultBodyModel": String,
"AllowSignatureMethod": String,
"WebSocketApiType": String,
"ResultDescriptions": String
}
}Properti
Nama properti | Tipe | Wajib | Pembaruan diizinkan | Deskripsi | Batasan |
ApiName | String | Ya | Ya | Nama API. | Nilai harus terdiri dari 4 hingga 50 karakter. Harus dimulai dengan huruf Inggris atau karakter Tionghoa dan hanya boleh berisi huruf Inggris, karakter Tionghoa, angka, dan garis bawah (_). Catatan Nama API harus unik dalam satu grup API. |
GroupId | String | Ya | Tidak | ID grup API. | Tidak ada |
RequestConfig | Map | Ya | Ya | Konfigurasi untuk permintaan API yang dikirim oleh konsumen ke API Gateway. | |
ResultSample | String | Tidak | Ya | Contoh respons layanan backend. | Tidak ada |
ResultType | String | Tidak | Ya | Format respons layanan backend. | Nilai valid:
|
ServiceConfig | Map | Ya | Ya | Konfigurasi untuk permintaan API yang dikirim oleh API Gateway ke layanan backend. | |
Visibility | String | Ya | Ya | Apakah API bersifat publik. | Nilai valid:
|
AllowSignatureMethod | String | Tidak | Ya | Diperlukan ketika AuthType adalah APP. Menetapkan algoritma signature. | Nilai valid:
|
AppCodeAuthType | String | Tidak | Ya | Jenis autentikasi AppCode. | Hanya berlaku jika Anda menetapkan AuthType ke APP. Nilai valid:
|
AuthType | String | Tidak | Ya | Jenis otentikasi keamanan API. | Nilai valid:
|
ConstParameters | List | Tidak | Ya | Parameter konstan API. | |
Description | String | Tidak | Ya | Deskripsi API. | Deskripsi dapat memiliki panjang maksimal 180 karakter. |
DisableInternet | Boolean | Tidak | Ya | Apakah panggilan melalui jaringan publik dinonaktifkan. | Nilai valid:
|
ErrorCodeSamples | List | Tidak | Ya | Contoh kode kesalahan yang dikembalikan oleh layanan backend. | |
FailResultSample | String | Tidak | Ya | Contoh respons permintaan gagal dari layanan backend. | Tidak ada |
ForceNonceCheck | Boolean | Tidak | Ya | Apakah pemeriksaan X-Ca-Nonce dilakukan secara paksa. | Nilai valid:
|
OpenIdConnectConfig | Map | Tidak | Ya | Konfigurasi otentikasi OpenID Connect. | |
RequestParameters | List | Tidak | Ya | Parameter untuk permintaan API yang dikirim oleh konsumen ke API Gateway. | |
ResultBodyModel | String | Tidak | Ya | Hasil pengembalian API. | Tidak ada |
ResultDescriptions | String | Tidak | Ya | Deskripsi hasil. | Tidak ada |
ServiceParameters | List | Tidak | Ya | Parameter untuk permintaan API yang dikirim oleh API Gateway ke layanan backend. | |
ServiceParametersMap | List | Tidak | Ya | Pemetaan antara parameter permintaan dari konsumen ke gateway dan dari gateway ke backend. | |
SystemParameters | List | Tidak | Ya | Parameter sistem API. | |
Tags | List | Tidak | Ya | Tag. | Anda dapat menambahkan hingga 20 tag. |
WebSocketApiType | String | Tidak | Ya | Jenis API komunikasi dua arah. | Nilai valid:
|
Sintaksis Tags
"Tags": [
{
"Key": String,
"Value": String
}
] Properti Tags
Nama properti | Tipe | Wajib | Pembaruan diizinkan | Deskripsi | Batasan |
Key | String | Ya | Tidak | Kunci tag. | Kunci tag dapat terdiri dari 1 hingga 128 karakter. Tidak boleh diawali dengan |
Value | String | Tidak | Tidak | Nilai tag. | Nilai tag dapat terdiri dari 0 hingga 128 karakter. Tidak boleh diawali dengan |
Sintaksis ErrorCodeSamples
"ErrorCodeSamples": [
{
"Message": String,
"Code": String,
"Description": String
}
]Properti ErrorCodeSamples
Nama properti | Type | Wajib | Pembaruan diizinkan | Deskripsi | Batasan |
Code | String | Ya | Ya | Kode kesalahan. | Tidak ada |
Message | String | Ya | Ya | Pesan kesalahan. | Tidak ada |
Description | String | Tidak | Ya | Deskripsi kesalahan. | Tidak ada |
Sintaksis ServiceConfig
"ServiceConfig": {
"ServiceTimeOut": Integer,
"FunctionComputeConfig": Map,
"VpcConfig": Map,
"MockResult": String,
"MockStatusCode": Integer,
"ServiceHttpMethod": String,
"ServiceProtocol": String,
"ServiceVpcEnable": String,
"ServiceAddress": String,
"ContentTypeValue": String,
"MockHeaders": List,
"ContentTypeCatagory": String,
"ServicePath": String,
"Mock": String
}Properti ServiceConfig
Nama properti | Tipe | Wajib | Pembaruan diizinkan | Deskripsi | Batasan |
ContentTypeCatagory | String | Tidak | Ya | Kebijakan untuk menetapkan nilai header Content-Type saat memanggil layanan HTTP backend. | Nilai valid:
|
ContentTypeValue | String | Tidak | Ya | Nilai header Content-Type ketika layanan backend adalah layanan HTTP dan ContentTypeCatagory diatur ke DEFAULT atau CUSTOM. | Tidak ada |
FunctionComputeConfig | Map | Tidak | Ya | Layanan backend adalah Function Compute. | Tidak ada |
Mock | String | Tidak | Ya | Apakah mode mock diaktifkan. | Nilai valid:
|
MockHeaders | List | Tidak | Ya | Header respons mock kustom. Parameter ini hanya berlaku ketika mode mock diaktifkan. | Tidak ada |
MockResult | String | Tidak | Ya | Hasil yang dikembalikan dalam mode mock. | Tidak ada |
MockStatusCode | Integer | Tidak | Ya | Kode status. | Kode status harus kompatibel dengan kode status respons HTTP 1.1. |
ServiceAddress | String | Tidak | Ya | Titik akhir layanan backend. | Misalnya, jika alamat lengkap layanan backend adalah |
ServiceHttpMethod | String | Tidak | Ya | Metode HTTP yang digunakan untuk memanggil layanan backend. | Nilai valid:
|
ServicePath | String | Tidak | Ya | Jalur layanan backend. | Misalnya, jika alamat lengkap layanan backend adalah |
ServiceProtocol | String | Tidak | Ya | Protokol layanan backend. | Nilai valid:
|
ServiceTimeOut | Integer | Tidak | Ya | Periode timeout layanan backend. | Unit: milidetik. |
ServiceVpcEnable | String | Tidak | Ya | Apakah menggunakan VPC. | Nilai valid:
|
VpcConfig | Map | Tidak | Ya | Konfigurasi saluran VPC. |
Sintaksis VpcConfig
"VpcConfig": {
"InstanceId": String,
"VpcId": String,
"Port": Integer
}Properti VpcConfig
Nama properti | Tipe | Wajib | Pembaruan diizinkan | Deskripsi | Batasan |
InstanceId | String | Ya | Ya | ID instans di VPC. | Hanya instans ECS dan SLB yang didukung. |
Port | Integer | Ya | Ya | Nomor port instans. | Tidak ada |
VpcId | String | Ya | Ya | ID VPC. | Tidak ada |
Sintaksis SystemParameters
"SystemParameters": [
{
"DemoValue": String,
"ParameterName": String,
"ServiceParameterName": String,
"Location": String,
"Description": String
}
]Properti SystemParameters
Nama properti | Tipe | Wajib | Pembaruan diizinkan | Deskripsi | Batasan |
Location | String | Ya | Ya | Lokasi parameter. | Tidak ada |
ParameterName | String | Ya | Ya | Nama parameter sistem. | Nilai valid:
|
ServiceParameterName | String | Ya | Ya | Nama parameter backend. | Tidak ada |
DemoValue | String | Tidak | Ya | Contoh. | Tidak ada |
Description | String | Tidak | Ya | Deskripsi parameter. | Tidak ada |
Sintaksis ServiceParameters
"ServiceParameters": [
{
"ParameterType": String,
"Location": String,
"ServiceParameterName": String
}
]Properti ServiceParameters
Nama properti | Tipe | Wajib | Pembaruan diizinkan | Deskripsi | Batasan |
Location | String | Ya | Ya | Lokasi parameter. | Nilai valid:
|
ParameterType | String | Ya | Ya | Tipe data parameter backend. | Nilai valid:
|
ServiceParameterName | String | Ya | Ya | Nama parameter backend. | Tidak ada |
Sintaksis OpenIdConnectConfig
"OpenIdConnectConfig": {
"OpenIdApiType": String,
"PublicKey": String,
"PublicKeyId": String,
"IdTokenParamName": String
}Properti OpenIdConnectConfig
Nama properti | Tipe | Wajib | Pembaruan diizinkan | Deskripsi | Batasan |
OpenIdApiType | String | Ya | Ya | Mode OpenID Connect. | Nilai valid:
|
IdTokenParamName | String | Tidak | Ya | Nama parameter yang sesuai dengan token. | Tidak ada |
PublicKey | String | Tidak | Ya | Kunci publik. | Tidak ada |
PublicKeyId | String | Tidak | Ya | ID kunci publik. | Tidak ada |
Sintaksis RequestConfig
"RequestConfig": {
"RequestMode": String,
"RequestPath": String,
"PostBodyDescription": String,
"RequestProtocol": String,
"RequestHttpMethod": String,
"BodyFormat": String
}Properti RequestConfig
Nama properti | Tipe | Wajib | Pembaruan diizinkan | Deskripsi | Batasan |
RequestHttpMethod | String | Ya | Ya | Metode permintaan. | Nilai valid:
|
RequestMode | String | Ya | Ya | Mode permintaan. | Nilai valid:
|
RequestPath | String | Ya | Ya | URI permintaan. | Misalnya, jika URI lengkap API adalah |
RequestProtocol | String | Ya | Ya | Jenis protokol yang didukung oleh API. | Nilai valid:
Pisahkan beberapa protokol dengan koma (,), misalnya, |
BodyFormat | String | Tidak | Ya | Untuk permintaan POST, PUT, atau PATCH, menentukan cara data dikirim ke server. | Nilai valid:
Hanya berlaku jika RequestMode diatur ke MAPPING. |
PostBodyDescription | String | Tidak | Ya | Deskripsi isi permintaan. | Tidak ada |
Sintaksis ServiceParametersMap
"ServiceParametersMap": [
{
"RequestParameterName": String,
"ServiceParameterName": String
}
]Properti ServiceParametersMap
Nama properti | Type | Wajib | Pembaruan diizinkan | Deskripsi | Batasan |
RequestParameterName | String | Ya | Ya | Nama parameter antarmuka depan. | Nilai parameter ini harus ada di RequestParameters. Harus sesuai dengan ApiParameterName di RequestParameters. |
ServiceParameterName | String | Ya | Ya | Nama parameter backend. | Tidak ada |
Sintaksis RequestParameters
"RequestParameters": [
{
"ParameterType": String,
"Required": String,
"Description": String,
"DemoValue": String,
"MinLength": Integer,
"DefaultValue": String,
"RegularExpression": String,
"MaxValue": Integer,
"MinValue": Integer,
"JsonScheme": String,
"ApiParameterName": String,
"Location": String,
"DocShow": String,
"MaxLength": Integer,
"EnumValue": String,
"DocOrder": Integer
}
]Properti RequestParameters
Nama properti | Tipe | Wajib | Pembaruan diizinkan | Deskripsi | Batasan |
ApiParameterName | String | Ya | Ya | Nama parameter. | Tidak ada |
Location | String | Ya | Ya | Lokasi parameter. | Nilai valid:
|
ParameterType | String | Ya | Tidak | Jenis parameter. | Nilai valid:
|
Required | String | Ya | Ya | Apakah parameter wajib. | Nilai valid:
|
DefaultValue | String | Tidak | Ya | Nilai default. | Tidak ada |
DemoValue | String | Tidak | Ya | Nilai contoh. | Tidak ada |
Description | String | Tidak | Ya | Deskripsi parameter. | Tidak ada |
DocOrder | Integer | Tidak | Ya | Urutan dalam dokumen. | Tidak ada |
DocShow | String | Tidak | Ya | Apakah SDK atau dokumen yang dihasilkan oleh API Gateway terlihat. | Nilai valid:
|
EnumValue | String | Tidak | Ya | Nilai valid parameter ketika ParameterType diatur ke Int, Long, Float, Double, atau String. | Pisahkan beberapa nilai dengan koma (,), misalnya, |
JsonScheme | String | Tidak | Ya | Jika ParameterType diatur ke String, parameter diverifikasi berdasarkan skema JSON. | Tidak ada |
MaxLength | Integer | Tidak | Ya | Panjang maksimum parameter. Hanya berlaku jika ParameterType diatur ke String. | Tidak ada |
MaxValue | Integer | Tidak | Ya | Nilai maksimum parameter. Hanya berlaku jika ParameterType diatur ke Int, Long, Float, atau Double. | Tidak ada |
MinLength | Integer | Tidak | Ya | Panjang minimum parameter. Hanya berlaku jika ParameterType diatur ke String. | Tidak ada |
MinValue | Integer | Tidak | Ya | Nilai minimum parameter. Hanya berlaku jika ParameterType diatur ke Int, Long, Float, atau Double. | Tidak ada |
RegularExpression | String | Tidak | Ya | Jika ParameterType diatur ke String, parameter diverifikasi berdasarkan ekspresi reguler. | Tidak ada |
Sintaksis ConstParameters
"ConstParameters": [
{
"ConstValue": String,
"ServiceParameterName": String,
"Description": String,
"Location": String
}
]Properti ConstParameters
Nama properti | Tipe | Wajib | Pembaruan diizinkan | Deskripsi | Batasan |
ConstValue | String | Ya | Ya | Nilai parameter. | Tidak ada |
Location | String | Ya | Ya | Lokasi parameter. | Nilai valid:
|
ServiceParameterName | String | Ya | Ya | Nama parameter backend. | Tidak ada |
Description | String | Tidak | Ya | Deskripsi parameter. | Tidak ada |
Sintaksis FunctionComputeConfig
"FunctionComputeConfig": {
"FcRegionId": String,
"RoleArn": String,
"ServiceName": String,
"FunctionName": String,
"Qualifier": String,
"ContentTypeValue": String,
"ContentTypeCatagory": String,
"FcBaseUrl": String,
"FcType": String,
"Method": String,
"OnlyBusinessPath": Boolean,
"Path": String,
"FcVersion": String
}Properti FunctionComputeConfig
Nama properti | Type | Wajib | Pembaruan diizinkan | Deskripsi | Batasan |
ContentTypeCatagory | String | Tidak | Ya | Kebijakan untuk menetapkan nilai header Content-Type saat memanggil layanan HTTP backend. | Nilai valid:
|
FcVersion | String | Tidak | Tidak | Versi Function Compute. | Nilai valid:
|
ContentTypeValue | String | Tidak | Ya | Nilai header Content-Type saat memanggil layanan HTTP backend dan ContentTypeCatagory diatur ke DEFAULT atau CUSTOM. | Tidak ada |
FcBaseUrl | String | Tidak | Ya | Titik akhir pemicu. | Titik akhir harus diawali dengan |
FcRegionId | String | Tidak | Ya | ID wilayah tempat Function Compute ditempatkan. | Tidak ada |
FcType | String | Tidak | Ya | Jenis fungsi. | Nilai valid:
|
FunctionName | String | Tidak | Ya | Nama fungsi di Function Compute. | Tidak ada |
Method | String | Tidak | Ya | Metode permintaan HTTP. | Nilai valid:
|
OnlyBusinessPath | Boolean | Tidak | Ya | Apakah hanya melewatkan jalur permintaan backend kustom ke layanan backend. | Nilai valid:
|
Path | String | Tidak | Ya | Jalur permintaan backend. | Parameter harus diapit tanda kurung siku ([]), misalnya, |
Qualifier | String | Tidak | Ya | Alias fungsi di Function Compute. | Tidak ada |
RoleArn | String | Tidak | Ya | ARN peran RAM yang diasumsikan oleh API Gateway untuk mengakses Function Compute. | Tidak ada |
ServiceName | String | Tidak | Ya | Nama layanan di Function Compute. | Tidak ada |
Sintaksis MockHeaders
"MockHeaders": [
{
"HeaderValue": String,
"HeaderName": String
}
] Properti MockHeaders
Nama properti | Tipe | Wajib | Pembaruan diizinkan | Deskripsi | Batasan |
HeaderName | String | Ya | Ya | Nama header respons. | Tidak ada |
HeaderValue | String | Ya | Ya | Nilai header respons. | Tidak ada |
Nilai kembalian
Fn::GetAtt
ApiId: ID API.
ARN adalah singkatan dari Nama Sumber Daya Alibaba Cloud.
Contoh
Ubah nilai parameter pada contoh berikut sesuai kebutuhan Anda. Misalnya, Anda harus mengubah nilai InstanceId.
YAML format
ROSTemplateFormatVersion: '2015-09-01'
Description: Test ApiGateway Api
Parameters: {}
Resources:
RamRole:
Type: ALIYUN::RAM::Role
Properties:
RoleName: TestRole
Policies:
- PolicyName: TestPolicy
PolicyDocument:
Version: '1'
Statement:
- Action:
- fc:InvokeFunction
Resource:
- '*'
Effect: Allow
AssumeRolePolicyDocument:
Version: '1'
Statement:
- Action: sts:AssumeRole
Effect: Allow
Principal:
Service:
- apigateway.aliyuncs.com
FCService:
Type: ALIYUN::FC::Service
Properties:
ServiceName: TestService
InternetAccess: true
Function:
Type: ALIYUN::FC::Function
DependsOn: FCService
Properties:
Handler: index.handler
Runtime: python3
Code:
SourceCode: "def handler(event, context):\n\treturn {'isBase64Encode': False, 'statusCode': 200, 'body': 'Hello World!', 'headers': {'Content-type': 'aplication/json'}}\n"
FunctionName: mytest
ServiceName:
Fn::GetAtt:
- FCService
- ServiceName
MemorySize: 128
Group:
Type: ALIYUN::ApiGateway::Group
Properties:
InstanceId: api-shared-vpc-***
GroupName: TestGroup
Api:
DependsOn:
- RamRole
- Group
Type: ALIYUN::ApiGateway::Api
Properties:
AppCodeAuthType: HEADER_QUERY
AuthType: APP
ServiceConfig:
FunctionComputeConfig:
fcRegionId:
Ref: ALIYUN::Region
qualifier: LATEST
roleArn:
Fn::GetAtt:
- RamRole
- Arn
serviceName:
Fn::GetAtt:
- FCService
- ServiceName
functionName:
Fn::GetAtt:
- Function
- FunctionName
ServiceProtocol: FunctionCompute
ContentTypeCatagory: CLIENT
RequestConfig:
RequestMode: MAPPING
RequestHttpMethod: POST
RequestProtocol: HTTP,HTTPS
RequestPath: /test
BodyFormat: FORM
ResultSample: ''
Visibility: PRIVATE
ResultType: JSON
ApiName: TestApi
GroupId:
Fn::GetAtt:
- Group
- GroupId
App:
Type: ALIYUN::ApiGateway::App
Properties:
Description: Test Create App
AppName: TestApp
Outputs: {}JSON format
{
"ROSTemplateFormatVersion": "2015-09-01",
"Description": "Test ApiGateway Api",
"Parameters": {
},
"Resources": {
"RamRole": {
"Type": "ALIYUN::RAM::Role",
"Properties": {
"RoleName": "TestRole",
"Policies": [
{
"PolicyName": "TestPolicy",
"PolicyDocument": {
"Version": "1",
"Statement": [
{
"Action": [
"fc:InvokeFunction"
],
"Resource": [
"*"
],
"Effect": "Allow"
}
]
}
}
],
"AssumeRolePolicyDocument": {
"Version": "1",
"Statement": [
{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": {
"Service": [
"apigateway.aliyuncs.com"
]
}
}
]
}
}
},
"FCService": {
"Type": "ALIYUN::FC::Service",
"Properties": {
"ServiceName": "TestService",
"InternetAccess": true
}
},
"Function": {
"Type": "ALIYUN::FC::Function",
"DependsOn": "FCService",
"Properties": {
"Handler": "index.handler",
"Runtime": "python3",
"Code": {
"SourceCode": "def handler(event, context):\n\treturn {'isBase64Encode': False, 'statusCode': 200, 'body': 'Hello World!', 'headers': {'Content-type': 'aplication/json'}}\n"
},
"FunctionName": "mytest",
"ServiceName": {
"Fn::GetAtt": [
"FCService",
"ServiceName"
]
},
"MemorySize": 128
}
},
"Group": {
"Type": "ALIYUN::ApiGateway::Group",
"Properties": {
"InstanceId": "api-shared-vpc-***",
"GroupName": "TestGroup"
}
},
"Api": {
"DependsOn": [
"RamRole",
"Group"
],
"Type": "ALIYUN::ApiGateway::Api",
"Properties": {
"AppCodeAuthType": "HEADER_QUERY",
"AuthType": "APP",
"ServiceConfig": {
"FunctionComputeConfig": {
"fcRegionId": {
"Ref": "ALIYUN::Region"
},
"qualifier": "LATEST",
"roleArn": {
"Fn::GetAtt": [
"RamRole",
"Arn"
]
},
"serviceName": {
"Fn::GetAtt": [
"FCService",
"ServiceName"
]
},
"functionName": {
"Fn::GetAtt": [
"Function",
"FunctionName"
]
}
},
"ServiceProtocol": "FunctionCompute",
"ContentTypeCatagory": "CLIENT"
},
"RequestConfig": {
"RequestMode": "MAPPING",
"RequestHttpMethod": "POST",
"RequestProtocol": "HTTP,HTTPS",
"RequestPath": "/test",
"BodyFormat": "FORM"
},
"ResultSample": "",
"Visibility": "PRIVATE",
"ResultType": "JSON",
"ApiName": "TestApi",
"GroupId": {
"Fn::GetAtt": [
"Group",
"GroupId"
]
}
}
},
"App": {
"Type": "ALIYUN::ApiGateway::App",
"Properties": {
"Description": "Test Create App",
"AppName": "TestApp"
}
}
},
"Outputs": {
}
}