ALIYUN::ApiGateway::Api は、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 グループ内で一意である必要があります。 |
GroupId | String | はい | いいえ | API グループの ID。 | なし。 |
RequestConfig | Map | はい | はい | コンシューマーから API Gateway に送信される API リクエストの構成。 | 詳細については、「RequestConfig プロパティ」をご参照ください。 |
ResultSample | String | いいえ | はい | バックエンド サービスからのサンプルレスポンス。 | なし。 |
ResultType | String | いいえ | はい | バックエンド サービスからのレスポンスの形式。 | 有効な値:
|
ServiceConfig | Map | はい | はい | API Gateway からバックエンド サービスに送信される API リクエストの構成。 | 詳細については、「ServiceConfig プロパティ」をご参照ください。 |
Visibility | String | はい | はい | API が公開されているかどうかを指定します。 | 有効な値:
|
AllowSignatureMethod | String | いいえ | はい | AuthType が APP に設定されている場合に使用される署名アルゴリズム。 | 有効な値:
|
AppCodeAuthType | String | いいえ | はい | AppCode 認証方式。 | このプロパティは、AuthType を APP に設定した場合にのみ有効になります。有効な値:
|
AuthType | String | いいえ | はい | API のセキュリティ認証方式。 | 有効な値:
|
ConstParameters | List | いいえ | はい | API の定数パラメータ。 | 詳細については、「ConstParameters プロパティ」をご参照ください。 |
Description | String | いいえ | はい | API の説明。 | 説明は 180 文字以内にすることができます。 |
DisableInternet | Boolean | いいえ | はい | API でインターネット ベースの呼び出しをブロックするかどうかを指定します。 | 有効な値:
|
ErrorCodeSamples | List | いいえ | はい | バックエンド サービスから返されるサンプル エラーコード。 | 詳細については、「ErrorCodeSamples プロパティ」をご参照ください。 |
FailResultSample | String | いいえ | はい | バックエンド サービスからのサンプル エラーレスポンス。 | なし。 |
ForceNonceCheck | Boolean | いいえ | はい | リクエストの送信時に X-Ca-Nonce を強制的にチェックするかどうかを指定します。 | 有効な値:
|
OpenIdConnectConfig | Map | いいえ | はい | サードパーティの OpenID Connect 認証方式の構成。 | 詳細については、「OpenIdConnectConfig プロパティ」をご参照ください。 |
RequestParameters | List | いいえ | はい | コンシューマーから API Gateway に送信される API リクエストのパラメータ。 | 詳細については、「RequestParameters プロパティ」をご参照ください。 |
ResultBodyModel | String | いいえ | はい | API のレスポンス。 | なし。 |
ResultDescriptions | String | いいえ | はい | レスポンスの説明。 | なし。 |
ServiceParameters | List | いいえ | はい | API Gateway からバックエンド サービスに送信される API リクエストのパラメータ。 | 詳細については、「ServiceParameters プロパティ」をご参照ください。 |
ServiceParametersMap | List | いいえ | はい | コンシューマーから API Gateway に送信されるリクエストのパラメータと、API Gateway からバックエンド サービスに送信されるリクエストのパラメータ間のマッピング。 | 詳細については、「ServiceParametersMap プロパティ」をご参照ください。 |
SystemParameters | List | いいえ | はい | API のシステム パラメータ。 | 詳細については、「SystemParameters プロパティ」をご参照ください。 |
Tags | List | いいえ | はい | API のタグ。 | API には最大 20 個のタグを追加できます。 詳細については、「Tags プロパティ」をご参照ください。 |
WebSocketApiType | String | いいえ | はい | 双方向通信 API のタイプ。 | 有効な値:
|
タグの構文
"Tags": [
{
"Key": String,
"Value": String
}
] タグのプロパティ
プロパティ | タイプ | 必須 | 編集可能 | 説明 | 制約 |
Key | String | はい | いいえ | タグキー。 | タグキーは 1 ~ 128 文字で、 |
Value | String | いいえ | いいえ | タグ値。 | タグ値は 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 経由でバックエンド サービスを呼び出すときに使用される ContentType ヘッダーのタイプ。 | 有効な値:
|
ContentTypeValue | String | いいえ | はい | ServiceProtocol が HTTP に設定され、ContentTypeCatagory が DEFAULT または CUSTOM に設定されている場合の ContentType ヘッダーの値。 | なし。 |
FunctionComputeConfig | Map | いいえ | はい | バックエンド サービスとして使用される Function Compute の構成。 | なし。 詳細については、「FunctionComputeConfig プロパティ」をご参照ください。 |
Mock | String | いいえ | はい | モックモードを使用するかどうかを指定します。 | 有効な値:
|
MockHeaders | List | いいえ | はい | モックモードが有効になっているときに定義されるモック レスポンス ヘッダー。 | なし。 詳細については、「MockHeaders プロパティ」をご参照ください。 |
MockResult | String | いいえ | はい | モックモードが使用されているときに返される結果。 | なし。 |
MockStatusCode | Integer | いいえ | はい | 状態コード。 | 状態コードは、HTTP/1.1 と互換性のある形式で返されます。 |
ServiceAddress | String | いいえ | はい | バックエンド サービスの URL。 | バックエンド サービスの完全な URL が |
ServiceHttpMethod | String | いいえ | はい | バックエンド サービスの呼び出しに使用される HTTP メソッド。 | 有効な値:
|
ServicePath | String | いいえ | はい | バックエンド サービスのパス。 | バックエンド サービスの完全な URL が |
ServiceProtocol | String | いいえ | はい | バックエンド サービスのプロトコル。 | 有効な値:
|
ServiceTimeOut | Integer | いいえ | はい | バックエンド サービスのタイムアウト期間。 | 単位: ミリ秒。 |
ServiceVpcEnable | String | いいえ | はい | Virtual Private Cloud (VPC) サービスを有効にするかどうかを指定します。 | 有効な値:
|
VpcConfig | Map | いいえ | はい | VPC チャネルが有効になっている場合の構成。 | 詳細については、「VpcConfig プロパティ」をご参照ください。 |
VpcConfig 構文
"VpcConfig": {
"InstanceId": String,
"VpcId": String,
"Port": Integer
}VpcConfig プロパティ
プロパティ | タイプ | 必須 | 編集可能 | 説明 | 制約 |
InstanceId | String | はい | はい | VPC 内のインスタンスの ID。 | Elastic Compute Service (ECS) インスタンスと Server Load Balancer (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 API の認証タイプ。 | 有効な値:
|
IdTokenParamName | String | いいえ | はい | トークンに対応するパラメータの名前。 | なし。 |
PublicKey | String | いいえ | はい | 公開鍵。 | なし。 |
PublicKeyId | String | いいえ | はい | 公開鍵の ID。 | なし。 |
RequestConfig 構文
"RequestConfig": {
"RequestMode": String,
"RequestPath": String,
"PostBodyDescription": String,
"RequestProtocol": String,
"RequestHttpMethod": String,
"BodyFormat": String
}RequestConfig プロパティ
プロパティ | タイプ | 必須 | 編集可能 | 説明 | 制約 |
RequestHttpMethod | String | はい | はい | API リクエスト メソッド。 | 有効な値:
|
RequestMode | String | はい | はい | リクエスト モード。 | 有効な値:
|
RequestPath | String | はい | はい | リクエスト パス。 | API の完全な URL が |
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 経由でバックエンド サービスを呼び出すときに使用される ContentType ヘッダー タイプ。 | 有効な値:
|
FcVersion | String | いいえ | いいえ | サポートされている Function Compute バージョン。 | 有効な値:
|
ContentTypeValue | String | いいえ | はい | ServiceProtocol が HTTP に設定され、ContentTypeCatagory が DEFAULT または CUSTOM に設定されている場合の ContentType ヘッダーの値。 | なし。 |
FcBaseUrl | String | いいえ | はい | トリガーの URL。 | URL は |
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 にアクセスするために割り当てられている Resource Access Management (RAM) ロールの ARN (Alibaba Cloud Resource Name)。 | なし。 |
ServiceName | String | いいえ | はい | Function Compute で定義されているサービスの名前。 | なし。 |
MockHeaders 構文
"MockHeaders": [
{
"HeaderValue": String,
"HeaderName": String
}
] MockHeaders プロパティ
プロパティ | タイプ | 必須 | 編集可能 | 説明 | 制約 |
HeaderName | String | はい | はい | レスポンス ヘッダーの名前。 | なし。 |
HeaderValue | String | はい | はい | レスポンス ヘッダーの値。 | なし。 |
戻り値
Fn::GetAtt
ApiId: API ID。
Arn: ARN。
例
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": {
}
}