ALIYUN::ApiGateway::Api digunakan untuk membuat API.
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
Properti | Tipe | Diperlukan | Dapat Diedit | Deskripsi | Kendala |
ApiName | String | Ya | Ya | Nama API. | Nama harus memiliki panjang 4 hingga 50 karakter dan dapat berisi huruf, angka, serta garis bawah (_). Nama harus dimulai dengan huruf. Catatan Nama harus unik dalam grup API. |
GroupId | String | Ya | Tidak | ID dari grup API. | Tidak ada. |
RequestConfig | Map | Ya | Ya | Konfigurasi permintaan API yang dikirimkan dari konsumen ke API Gateway. | Untuk informasi lebih lanjut, lihat Properti RequestConfig. |
ResultSample | String | Tidak | Ya | Contoh respons dari layanan backend. | Tidak ada. |
ResultType | String | Tidak | Ya | Format respons dari layanan backend. | Nilai valid:
|
ServiceConfig | Map | Ya | Ya | Konfigurasi permintaan API yang dikirimkan dari API Gateway ke layanan backend. | Untuk informasi lebih lanjut, lihat Properti ServiceConfig. |
Visibility | String | Ya | Ya | Menentukan apakah API bersifat publik. | Nilai valid:
|
AllowSignatureMethod | String | Tidak | Ya | Algoritma tanda tangan yang digunakan ketika AuthType diatur ke APP. | Nilai valid:
|
AppCodeAuthType | String | Tidak | Ya | Metode otentikasi AppCode. | Properti ini hanya berlaku jika Anda mengatur AuthType ke APP. Nilai valid:
|
AuthType | String | Tidak | Ya | Metode otentikasi keamanan API. | Nilai valid:
|
ConstParameters | List | Tidak | Ya | Parameter konstan dari API. | Untuk informasi lebih lanjut, lihat Properti ConstParameters. |
Description | String | Tidak | Ya | Deskripsi API. | Deskripsi dapat memiliki panjang hingga 180 karakter. |
DisableInternet | Boolean | Tidak | Ya | Menentukan apakah akan memblokir panggilan berbasis Internet pada API. | Nilai valid:
|
ErrorCodeSamples | List | Tidak | Ya | Contoh kode kesalahan yang dikembalikan dari layanan backend. | Untuk informasi lebih lanjut, lihat Properti ErrorCodeSamples. |
FailResultSample | String | Tidak | Ya | Contoh respons kesalahan dari layanan backend. | Tidak ada. |
ForceNonceCheck | Boolean | Tidak | Ya | Menentukan apakah akan memeriksa X-Ca-Nonce secara paksa saat permintaan dikirim. | Nilai valid:
|
OpenIdConnectConfig | Map | Tidak | Ya | Konfigurasi metode otentikasi OpenID Connect pihak ketiga. | Untuk informasi lebih lanjut, lihat Properti OpenIdConnectConfig. |
RequestParameters | List | Tidak | Ya | Parameter permintaan API yang dikirimkan dari konsumen ke API Gateway. | Untuk informasi lebih lanjut, lihat Properti RequestParameters. |
ResultBodyModel | String | Tidak | Ya | Respons API. | Tidak ada. |
ResultDescriptions | String | Tidak | Ya | Deskripsi respons. | Tidak ada. |
ServiceParameters | List | Tidak | Ya | Parameter permintaan API yang dikirimkan dari API Gateway ke layanan backend. | Untuk informasi lebih lanjut, lihat Properti ServiceParameters. |
ServiceParametersMap | List | Tidak | Ya | Pemetaan antara parameter permintaan yang dikirimkan dari konsumen ke API Gateway dan parameter permintaan yang dikirimkan dari API Gateway ke layanan backend. | Untuk informasi lebih lanjut, lihat Properti ServiceParametersMap. |
SystemParameters | List | Tidak | Ya | Parameter sistem API. | Untuk informasi lebih lanjut, lihat Properti SystemParameters. |
Tags | List | Tidak | Ya | Tag API. | Anda dapat menambahkan hingga 20 tag ke API. Untuk informasi lebih lanjut, lihat Properti Tags. |
WebSocketApiType | String | Tidak | Ya | Jenis API komunikasi dua arah. | Nilai valid:
|
Sintaksis Tags
"Tags": [
{
"Key": String,
"Value": String
}
] Properti Tags
Properti | Tipe | Diperlukan | Dapat Diedit | Deskripsi | Kendala |
Key | String | Ya | Tidak | Kunci tag. | Kunci tag harus memiliki panjang 1 hingga 128 karakter dan tidak boleh mengandung |
Value | String | Tidak | Tidak | Nilai tag. | Nilai tag dapat memiliki panjang hingga 128 karakter dan tidak boleh mengandung |
Sintaksis ErrorCodeSamples
"ErrorCodeSamples": [
{
"Message": String,
"Code": String,
"Description": String
}
]Properti ErrorCodeSamples
Properti | Tipe | Diperlukan | Dapat Diedit | Deskripsi | Kendala |
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
Properti | Tipe | Diperlukan | Dapat Diedit | Deskripsi | Kendala |
ContentTypeCatagory | String | Tidak | Ya | Jenis header ContentType yang digunakan saat memanggil layanan backend melalui HTTP. | Nilai valid:
|
ContentTypeValue | String | Tidak | Ya | Nilai header ContentType ketika ServiceProtocol diatur ke HTTP dan ContentTypeCatagory diatur ke DEFAULT atau CUSTOM. | Tidak ada. |
FunctionComputeConfig | Map | Tidak | Ya | Konfigurasi Function Compute yang digunakan sebagai layanan backend. | Tidak ada. Untuk informasi lebih lanjut, lihat Properti FunctionComputeConfig. |
Mock | String | Tidak | Ya | Menentukan apakah akan menggunakan mode mock. | Nilai valid:
|
MockHeaders | List | Tidak | Ya | Header respons mock yang didefinisikan saat mode mock diaktifkan. | Tidak ada. Untuk informasi lebih lanjut, lihat Properti MockHeaders. |
MockResult | String | Tidak | Ya | Hasil yang dikembalikan saat menggunakan mode mock. | Tidak ada. |
MockStatusCode | Integer | Tidak | Ya | Kode status. | Kode status dikembalikan dalam format yang kompatibel dengan HTTP/1.1. |
ServiceAddress | String | Tidak | Ya | URL layanan backend. | Jika URL lengkap layanan backend adalah |
ServiceHttpMethod | String | Tidak | Ya | Metode HTTP yang digunakan untuk memanggil layanan backend. | Nilai valid:
|
ServicePath | String | Tidak | Ya | Path layanan backend. | Jika URL lengkap layanan backend adalah |
ServiceProtocol | String | Tidak | Ya | Protokol layanan backend. | Nilai valid:
|
ServiceTimeOut | Integer | Tidak | Ya | Periode timeout layanan backend. | Satuan: milidetik. |
ServiceVpcEnable | String | Tidak | Ya | Menentukan apakah akan mengaktifkan layanan Virtual Private Cloud (VPC). | Nilai valid:
|
VpcConfig | Map | Tidak | Ya | Konfigurasi saat saluran VPC diaktifkan. | Untuk informasi lebih lanjut, lihat Properti VpcConfig. |
Sintaksis VpcConfig
"VpcConfig": {
"InstanceId": String,
"VpcId": String,
"Port": Integer
}Properti VpcConfig
Properti | Tipe | Diperlukan | Dapat Diedit | Deskripsi | Kendala |
InstanceId | String | Ya | Ya | ID instance dalam VPC. | Hanya instance Elastic Compute Service (ECS) dan Server Load Balancer(SLB) yang didukung. |
Port | Integer | Ya | Ya | Nomor port instance. | 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
Properti | Tipe | Diperlukan | Dapat Diedit | Deskripsi | Kendala |
Lokasi | String | Ya | Ya | Lokasi parameter sistem. | Tidak ada. |
Nama Parameter | String | Ya | Ya | Nama parameter sistem. | Nilai valid:
|
Nama Parameter Layanan | String | Ya | Ya | Nama parameter backend. | Tidak ada. |
Nilai Demo | String | Tidak | Ya | Contoh nilai parameter sistem. | Tidak ada. |
Deskripsi | String | Tidak | Ya | Deskripsi parameter sistem. | Tidak ada. |
Sintaksis ServiceParameters
"ServiceParameters": [
{
"ParameterType": String,
"Location": String,
"ServiceParameterName": String
}
]Properti ServiceParameters
Properti | Tipe | Diperlukan | Dapat Diedit | Deskripsi | Kendala |
Lokasi | String | Ya | Ya | Lokasi parameter backend. | Nilai valid:
|
Tipe Parameter | String | Ya | Ya | Tipe data parameter backend. | Nilai valid:
|
Nama Parameter Layanan | String | Ya | Ya | Nama parameter backend. | Tidak ada. |
Sintaksis OpenIdConnectConfig
"OpenIdConnectConfig": {
"OpenIdApiType": String,
"PublicKey": String,
"PublicKeyId": String,
"IdTokenParamName": String
}Properti OpenIdConnectConfig
Properti | Tipe | Diperlukan | Dapat Diedit | Deskripsi | Kendala |
OpenIdApiType | String | Ya | Ya | Jenis otorisasi API 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
Properti | Tipe | Diperlukan | Dapat Diedit | Deskripsi | Kendala |
RequestHttpMethod | String | Ya | Ya | Metode permintaan API. | Nilai valid:
|
RequestMode | String | Ya | Ya | Mode permintaan. | Nilai valid:
|
RequestPath | String | Ya | Ya | Path permintaan. | Jika URL lengkap API adalah |
RequestProtocol | String | Ya | Ya | Tipe protokol yang didukung oleh API. | Nilai valid:
Pisahkan beberapa tipe protokol dengan koma (,). Contoh: |
BodyFormat | String | Tidak | Ya | Format dalam mengirimkan data ke server untuk permintaan POST, PUT, atau PATCH. | Nilai valid:
Properti ini berlaku hanya jika parameter RequestMode diatur ke MAPPING. |
PostBodyDescription | String | Tidak | Ya | Deskripsi badan permintaan. | Tidak ada. |
Sintaksis ServiceParametersMap
"ServiceParametersMap": [
{
"RequestParameterName": String,
"ServiceParameterName": String
}
]Properti ServiceParametersMap
Properti | Tipe | Diperlukan | Dapat Diedit | Deskripsi | Kendala |
Nama Parameter Permintaan | String | Ya | Ya | Nama parameter frontend. | Nilai properti ini harus disertakan dalam RequestParameters dan harus cocok dengan nilai ApiParameterName dalam RequestParameters. |
Nama Parameter Layanan | 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
Properti | Tipe | Diperlukan | Dapat Diedit | Deskripsi | Kendala |
ApiParameterName | String | Ya | Ya | Nama parameter. | Tidak ada. |
Lokasi | String | Ya | Ya | Lokasi parameter. | Nilai valid:
|
Tipe Parameter | String | Ya | Tidak | Tipe parameter. | Nilai valid:
|
Diperlukan | String | Ya | Ya | Menentukan apakah parameter tersebut diperlukan. | Nilai valid:
|
Nilai Default | String | Tidak | Ya | Nilai default dari parameter. | Tidak ada. |
Nilai Demo | String | Tidak | Ya | Contoh nilai parameter. | Tidak ada. |
Deskripsi | String | Tidak | Ya | Deskripsi parameter. | Tidak ada. |
Urutan Dokumen | Integer | Tidak | Ya | Urutan parameter dalam dokumen. | Tidak ada. |
DocShow | String | Tidak | Ya | Menentukan apakah parameter bersifat publik di SDK atau dokumen API Gateway. | Nilai valid:
|
EnumValue | String | Tidak | Ya | Nilai hash yang dapat ditentukan ketika ParameterType diatur ke Int, Long, Float, Double, atau String. | Pisahkan beberapa nilai dengan koma (,). Contoh: |
JsonScheme | String | Tidak | Ya | Skema JSON yang digunakan untuk memvalidasi parameter ketika ParameterType diatur ke String. | Tidak ada. |
MaxLength | Integer | Tidak | Ya | Panjang maksimum parameter ketika ParameterType diatur ke String. | Tidak ada. |
MaxValue | Integer | Tidak | Ya | Nilai maksimum parameter ketika ParameterType diatur ke Int, Long, Float, atau Double. | Tidak ada. |
MinLength | Integer | Tidak | Ya | Panjang minimum parameter ketika ParameterType diatur ke String. | Tidak ada. |
MinValue | Integer | Tidak | Ya | Nilai minimum parameter ketika ParameterType diatur ke Int, Long, Float, atau Double. | Tidak ada. |
RegularExpression | String | Tidak | Ya | Ekspresi reguler yang digunakan untuk memvalidasi parameter ketika ParameterType diatur ke String. | Tidak ada. |
Sintaksis ConstParameters
"ConstParameters": [
{
"ConstValue": String,
"ServiceParameterName": String,
"Description": String,
"Location": String
}
]Properti ConstParameters
Properti | Tipe | Diperlukan | Dapat Diedit | Deskripsi | Kendala |
ConstValue | String | Ya | Ya | Nilai parameter konstan. | Tidak ada. |
Lokasi | String | Ya | Ya | Lokasi parameter konstan. | Nilai valid:
|
Nama Parameter Layanan | String | Ya | Ya | Nama parameter backend yang sesuai dengan parameter konstan. | Tidak ada. |
Deskripsi | String | Tidak | Ya | Deskripsi parameter konstan. | 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
Properti | Tipe | Diperlukan | Dapat Diedit | Deskripsi | Kendala |
ContentTypeCatagory | String | Tidak | Ya | Jenis header ContentType yang digunakan saat memanggil layanan backend melalui HTTP. | Nilai valid:
|
FcVersion | String | Tidak | Tidak | Versi Function Compute yang didukung. | Nilai valid:
|
ContentTypeValue | String | Tidak | Ya | Nilai header ContentType ketika ServiceProtocol diatur ke HTTP dan ContentTypeCatagory diatur ke DEFAULT atau CUSTOM. | Tidak ada. |
FcBaseUrl | String | Tidak | Ya | URL pemicu. | URL harus dimulai dengan |
FcRegionId | String | Tidak | Ya | ID wilayah tempat Function Compute berada. | Tidak ada. |
FcType | String | Tidak | Ya | Tipe fungsi. | Nilai valid:
|
FunctionName | String | Tidak | Ya | Nama fungsi yang didefinisikan dalam Function Compute. | Tidak ada. |
Method | String | Tidak | Ya | Metode permintaan HTTP. | Nilai valid:
|
OnlyBusinessPath | Boolean | Tidak | Ya | Menentukan apakah hanya path permintaan backend kustom yang akan diteruskan ke backend. | Nilai valid:
|
Path | String | Tidak | Ya | Path permintaan backend. | Parameter harus diapit tanda kurung [ ]. Contoh: |
Qualifier | String | Tidak | Ya | Alias fungsi Function Compute. | Tidak ada. |
RoleArn | String | Tidak | Ya | Alibaba Cloud Resource Name (ARN) dari peran Resource Access Management (RAM) yang ditetapkan ke API Gateway untuk mengakses Function Compute. | Tidak ada. |
ServiceName | String | Tidak | Ya | Nama layanan yang didefinisikan dalam Function Compute. | Tidak ada. |
Sintaksis MockHeaders
"MockHeaders": [
{
"HeaderValue": String,
"HeaderName": String
}
] Properti MockHeaders
Properti | Tipe | Diperlukan | Dapat Diedit | Deskripsi | Kendala |
Nama Header | String | Ya | Ya | Nama header respons. | Tidak ada. |
Nilai Header | String | Ya | Ya | Nilai header respons. | Tidak ada. |
Nilai Pengembalian
Fn::GetAtt
ApiId: ID API.
Arn: ARN.
Contoh
Ubah nilai parameter yang disembunyikan, seperti InstanceId, sesuai dengan kebutuhan bisnis Anda.
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": {
}
}