ALIYUN::ApiGateway::Api は、API Gateway に API を作成します。
構文
{
"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
}
}プロパティ
プロパティ名 | データ型 | 必須 | 更新可 | 説明 | 制約事項 |
ApiName | String | はい | はい | API の名前です。 | 値は 4~50 文字で、英字または漢字で始まり、英字、漢字、数字、アンダースコア (_) のみを含めることができます。 説明 API 名は API グループ内で一意である必要があります。 |
GroupId | String | はい | いいえ | API グループの ID です。 | なし |
RequestConfig | Map | はい | はい | コンシューマーから API Gateway への API リクエストの構成です。 | |
ResultSample | String | いいえ | はい | バックエンドサービスからの応答のサンプルです。 | なし |
ResultType | String | いいえ | はい | バックエンドサービスの応答形式です。 | 有効な値:
|
ServiceConfig | Map | はい | はい | API Gateway からバックエンドサービスへの API リクエストの構成です。 | |
Visibility | String | はい | はい | API が公開されているかどうかを示します。 | 有効な値:
|
AllowSignatureMethod | String | いいえ | はい | AuthType が APP の場合に必要です。署名アルゴリズムを設定します。 | 有効な値:
|
AppCodeAuthType | String | いいえ | はい | AppCode 認証タイプです。 | AuthType を APP に設定した場合のみ有効です。有効な値:
|
AuthType | String | いいえ | はい | API のセキュリティ認証タイプです。 | 有効な値:
|
ConstParameters | List | いいえ | はい | API の定数パラメーターです。 | |
Description | String | いいえ | はい | API の説明です。 | 説明は最大 180 文字までです。 |
DisableInternet | Boolean | いいえ | はい | パブリックネットワーク経由での呼び出しを無効にするかどうかを示します。 | 有効な値:
|
ErrorCodeSamples | List | いいえ | はい | バックエンドサービスから返されるエラーコードのサンプルです。 | |
FailResultSample | String | いいえ | はい | バックエンドサービスからの失敗したリクエストの応答サンプルです。 | なし |
ForceNonceCheck | Boolean | いいえ | はい | X-Ca-Nonce を強制的にチェックするかどうかを示します。 | 有効な値:
|
OpenIdConnectConfig | Map | いいえ | はい | OpenID Connect 認証の構成です。 | |
RequestParameters | List | いいえ | はい | コンシューマーから API Gateway への API リクエストのパラメーターです。 | |
ResultBodyModel | String | いいえ | はい | API の戻り値です。 | なし |
ResultDescriptions | String | いいえ | はい | 結果の説明です。 | なし |
ServiceParameters | List | いいえ | はい | API Gateway からバックエンドサービスへの API リクエストのパラメーターです。 | |
ServiceParametersMap | List | いいえ | はい | コンシューマーからゲートウェイ、およびゲートウェイからバックエンドへのリクエストパラメーター間のマッピングです。 | |
SystemParameters | List | いいえ | はい | API のシステムパラメーターです。 | |
Tags | List | いいえ | はい | タグです。 | 最大 20 個のタグを追加できます。 |
WebSocketApiType | String | いいえ | はい | 双方向通信 API のタイプです。 | 有効な値:
|
Tags 構文
"Tags": [
{
"Key": String,
"Value": String
}
] Tags プロパティ
プロパティ名 | データ型 | 必須 | 更新可 | 説明 | 制約事項 |
Key | String | はい | いいえ | タグキーです。 | タグキーは 1~128 文字で、 |
Value | String | いいえ | いいえ | タグ値です。 | タグ値は 0~128 文字で、 |
ErrorCodeSamples 構文
"ErrorCodeSamples": [
{
"Message": String,
"Code": String,
"Description": String
}
]ErrorCodeSamples プロパティ
プロパティ名 | データ型 | 必須 | 更新可 | 説明 | 制約事項 |
Code | String | はい | はい | エラーコードです。 | なし |
Message | String | はい | はい | エラーメッセージです。 | なし |
Description | String | いいえ | はい | エラーの説明です。 | なし |
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
}ServiceConfig プロパティ
プロパティ名 | データ型 | 必須 | 更新可 | 説明 | 制約事項 |
ContentTypeCatagory | String | いいえ | はい | バックエンド HTTP サービスを呼び出す際の Content-Type ヘッダーの値を設定するポリシーです。 | 有効な値:
|
ContentTypeValue | String | いいえ | はい | バックエンドサービスが HTTP サービスで、ContentTypeCatagory が DEFAULT または CUSTOM に設定されている場合の Content-Type ヘッダーの値です。 | なし |
FunctionComputeConfig | Map | いいえ | はい | バックエンドサービスが Function Compute です。 | なし |
Mock | String | いいえ | はい | モックモードを有効にするかどうかを示します。 | 有効な値:
|
MockHeaders | List | いいえ | はい | カスタムモック応答ヘッダーです。このパラメーターは、モックモードが有効な場合にのみ有効です。 | なし |
MockResult | String | いいえ | はい | モックモードで返される結果です。 | なし |
MockStatusCode | Integer | いいえ | はい | 状態コードです。 | 状態コードは HTTP 1.1 応答状態コードと互換性がある必要があります。 |
ServiceAddress | String | いいえ | はい | バックエンドサービスのエンドポイントです。 | たとえば、バックエンドサービスの完全なアドレスが |
ServiceHttpMethod | String | いいえ | はい | バックエンドサービスを呼び出すために使用される HTTP メソッドです。 | 有効な値:
|
ServicePath | String | いいえ | はい | バックエンドサービスのパスです。 | たとえば、バックエンドサービスの完全なアドレスが |
ServiceProtocol | String | いいえ | はい | バックエンドサービスのプロトコルです。 | 有効な値:
|
ServiceTimeOut | Integer | いいえ | はい | バックエンドサービスのタイムアウト期間です。 | 単位:ミリ秒。 |
ServiceVpcEnable | String | いいえ | はい | VPC を使用するかどうかを示します。 | 有効な値:
|
VpcConfig | Map | いいえ | はい | VPC チャンネルの構成です。 |
VpcConfig 構文
"VpcConfig": {
"InstanceId": String,
"VpcId": String,
"Port": Integer
}VpcConfig プロパティ
プロパティ名 | データ型 | 必須 | 更新可 | 説明 | 制約事項 |
InstanceId | String | はい | はい | VPC 内のインスタンス ID です。 | ECS および SLB インスタンスのみサポートされています。 |
Port | Integer | はい | はい | インスタンスのポート番号です。 | なし |
VpcId | String | はい | はい | VPC の ID です。 | なし |
SystemParameters 構文
"SystemParameters": [
{
"DemoValue": String,
"ParameterName": String,
"ServiceParameterName": String,
"Location": String,
"Description": String
}
]SystemParameters プロパティ
プロパティ名 | データ型 | 必須 | 更新可 | 説明 | 制約事項 |
Location | String | はい | はい | パラメーターの位置です。 | なし |
ParameterName | String | はい | はい | システムパラメーターの名前です。 | 有効な値:
|
ServiceParameterName | String | はい | はい | バックエンドパラメーターの名前です。 | なし |
DemoValue | String | いいえ | はい | 例です。 | なし |
Description | String | いいえ | はい | パラメーターの説明です。 | なし |
ServiceParameters 構文
"ServiceParameters": [
{
"ParameterType": String,
"Location": String,
"ServiceParameterName": String
}
]ServiceParameters プロパティ
プロパティ名 | データ型 | 必須 | 更新可 | 説明 | 制約事項 |
Location | String | はい | はい | パラメーターの位置です。 | 有効な値:
|
ParameterType | String | はい | はい | バックエンドパラメーターのデータ型です。 | 有効な値:
|
ServiceParameterName | String | はい | はい | バックエンドパラメーターの名前です。 | なし |
OpenIdConnectConfig 構文
"OpenIdConnectConfig": {
"OpenIdApiType": String,
"PublicKey": String,
"PublicKeyId": String,
"IdTokenParamName": String
}OpenIdConnectConfig プロパティ
プロパティ名 | データ型 | 必須 | 更新可 | 説明 | 制約事項 |
OpenIdApiType | String | はい | はい | OpenID Connect モードです。 | 有効な値:
|
IdTokenParamName | String | いいえ | はい | トークンに対応するパラメーターの名前です。 | なし |
PublicKey | String | いいえ | はい | 公開鍵です。 | なし |
PublicKeyId | String | いいえ | はい | 公開鍵の ID です。 | なし |
RequestConfig 構文
"RequestConfig": {
"RequestMode": String,
"RequestPath": String,
"PostBodyDescription": String,
"RequestProtocol": String,
"RequestHttpMethod": String,
"BodyFormat": String
}RequestConfig プロパティ
プロパティ名 | タイプ | 必須 | 更新可 | 説明 | 制約事項 |
RequestHttpMethod | String | はい | はい | リクエストメソッドです。 | 有効な値:
|
RequestMode | String | はい | はい | リクエストモードです。 | 有効な値:
|
RequestPath | String | はい | はい | リクエスト URI です。 | たとえば、API の完全な URI が |
RequestProtocol | String | はい | はい | API がサポートするプロトコルタイプです。 | 有効な値:
複数のプロトコルをカンマ (,) で区切ります。例: |
BodyFormat | String | いいえ | はい | POST、PUT、PATCH リクエストの場合、サーバーにデータを渡す方法を指定します。 | 有効な値:
RequestMode が MAPPING に設定されている場合にのみ有効です。 |
PostBodyDescription | String | いいえ | はい | リクエスト本文の説明です。 | なし |
ServiceParametersMap 構文
"ServiceParametersMap": [
{
"RequestParameterName": String,
"ServiceParameterName": String
}
]ServiceParametersMap プロパティ
プロパティ名 | データ型 | 必須 | 更新可 | 説明 | 制約事項 |
RequestParameterName | String | はい | はい | フロントエンドパラメーターの名前です。 | このパラメーターの値は RequestParameters に存在し、RequestParameters の ApiParameterName と一致する必要があります。 |
ServiceParameterName | String | はい | はい | バックエンドパラメーターの名前です。 | なし |
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
}
]RequestParameters プロパティ
プロパティ名 | データ型 | 必須 | 更新可 | 説明 | 制約事項 |
ApiParameterName | String | はい | はい | パラメーターの名前です。 | なし |
Location | String | はい | はい | パラメーターの位置です。 | 有効な値:
|
ParameterType | String | はい | いいえ | パラメーターのタイプです。 | 有効な値:
|
Required | String | はい | はい | パラメーターが必須かどうかを示します。 | 有効な値:
|
DefaultValue | String | いいえ | はい | デフォルト値です。 | なし |
DemoValue | String | いいえ | はい | サンプル値です。 | なし |
Description | String | いいえ | はい | パラメーターの説明です。 | なし |
DocOrder | Integer | いいえ | はい | ドキュメント内の順序です。 | なし |
DocShow | String | いいえ | はい | API Gateway によって生成された SDK またはドキュメントで表示されるかどうかを示します。 | 有効な値:
|
EnumValue | String | いいえ | はい | ParameterType が Int、Long、Float、Double、または String に設定されている場合のパラメーターの有効な値です。 | 複数の値はカンマ (,) で区切ります。例: |
JsonScheme | String | いいえ | はい | ParameterType が String に設定されている場合、パラメーターは JSON スキーマに基づいて検証されます。 | なし |
MaxLength | Integer | いいえ | はい | パラメーターの最大長です。ParameterType が String に設定されている場合にのみ有効です。 | なし |
MaxValue | Integer | いいえ | はい | パラメーターの最大値です。ParameterType が Int、Long、Float、または Double に設定されている場合にのみ有効です。 | なし |
MinLength | Integer | いいえ | はい | パラメーターの最小長です。ParameterType が String に設定されている場合にのみ有効です。 | なし |
MinValue | Integer | いいえ | はい | パラメーターの最小値です。ParameterType が Int、Long、Float、または Double に設定されている場合にのみ有効です。 | なし |
RegularExpression | String | いいえ | はい | ParameterType が String に設定されている場合、パラメーターは正規表現に基づいて検証されます。 | なし |
ConstParameters 構文
"ConstParameters": [
{
"ConstValue": String,
"ServiceParameterName": String,
"Description": String,
"Location": String
}
]ConstParameters プロパティ
プロパティ名 | データ型 | 必須 | 更新可 | 説明 | 制約事項 |
ConstValue | String | はい | はい | パラメーターの値です。 | なし |
Location | String | はい | はい | パラメーターの位置です。 | 有効な値:
|
ServiceParameterName | String | はい | はい | バックエンドパラメーターの名前です。 | なし |
Description | String | いいえ | はい | パラメーターの説明です。 | なし |
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
}FunctionComputeConfig プロパティ
プロパティ名 | データ型 | 必須 | 更新可 | 説明 | 制約事項 |
ContentTypeCatagory | String | いいえ | はい | バックエンド HTTP サービスを呼び出す際の Content-Type ヘッダーの値を設定するポリシーです。 | 有効な値:
|
FcVersion | String | いいえ | いいえ | Function Compute のバージョンです。 | 有効な値:
|
ContentTypeValue | String | いいえ | はい | バックエンド HTTP サービスを呼び出し、ContentTypeCatagory が DEFAULT または CUSTOM に設定されている場合の Content-Type ヘッダーの値です。 | なし |
FcBaseUrl | String | いいえ | はい | トリガーのエンドポイントです。 | エンドポイントは |
FcRegionId | String | いいえ | はい | Function Compute がデプロイされているリージョンの ID です。 | なし |
FcType | String | いいえ | はい | 関数のタイプです。 | 有効な値:
|
FunctionName | String | いいえ | はい | Function Compute の関数名です。 | なし |
Method | String | いいえ | はい | HTTP リクエストメソッドです。 | 有効な値:
|
OnlyBusinessPath | Boolean | いいえ | はい | カスタムバックエンドリクエストパスのみをバックエンドサービスに渡すかどうかを示します。 | 有効な値:
|
Path | String | いいえ | はい | バックエンドリクエストのパスです。 | パラメーターは角括弧 ([ ]) で囲む必要があります。例: |
Qualifier | String | いいえ | はい | Function Compute の関数のエイリアスです。 | なし |
RoleArn | String | いいえ | はい | API Gateway が Function Compute にアクセスするために偽装する RAM ロールの ARN です。 | なし |
ServiceName | String | いいえ | はい | Function Compute のサービス名です。 | なし |
MockHeaders 構文
"MockHeaders": [
{
"HeaderValue": String,
"HeaderName": String
}
] MockHeaders プロパティ
プロパティ名 | データ型 | 必須 | 更新可 | 説明 | 制約事項 |
HeaderName | String | はい | はい | レスポンスヘッダーの名前です。 | なし |
HeaderValue | String | はい | はい | レスポンスヘッダーの値です。 | なし |
戻り値
Fn::GetAtt
ApiId:API の ID です。
ARN は Alibaba Cloud Resource Name を表します。
例
以下の例のパラメーター値は、ご利用の要件に基づいて変更してください。たとえば、InstanceId の値を変更する必要があります。
YAML 形式
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 形式
{
"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": {
}
}