すべてのプロダクト
Search
ドキュメントセンター

Resource Orchestration Service:ALIYUN::ApiGateway::Api

最終更新日:Jun 04, 2026

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 リクエストの構成です。

RequestConfig プロパティ

ResultSample

String

いいえ

はい

バックエンドサービスからの応答のサンプルです。

なし

ResultType

String

いいえ

はい

バックエンドサービスの応答形式です。

有効な値:

  • JSON (デフォルト)

  • TEXT

  • BINARY

  • XML

  • PASSTHROUGH

ServiceConfig

Map

はい

はい

API Gateway からバックエンドサービスへの API リクエストの構成です。

ServiceConfig プロパティ

Visibility

String

はい

はい

API が公開されているかどうかを示します。

有効な値:

  • Public

  • PRIVATE:リソースは公開されません。

AllowSignatureMethod

String

いいえ

はい

AuthType が APP の場合に必要です。署名アルゴリズムを設定します。

有効な値:

  • HmacSHA256 (デフォルト)

  • HmacSHA1

AppCodeAuthType

String

いいえ

はい

AppCode 認証タイプです。

AuthType を APP に設定した場合のみ有効です。有効な値:

  • DEFAULT (デフォルト):API グループの設定を使用します。

  • DISABLE:操作は許可されません。

  • HEADER:AppCode ヘッダーを含むリクエストに対してのみ AppCode 認証を許可します。

  • HEADER_QUERY:AppCode ヘッダーまたは AppCode クエリパラメーターを含むリクエストに対して AppCode 認証を許可します。

AuthType

String

いいえ

はい

API のセキュリティ認証タイプです。

有効な値:

  • APP:承認されたアプリのみが API を呼び出せます。

  • ANONYMOUS:匿名呼び出しが許可されます。API Gateway は呼び出し元の身分認証を行わず、呼び出し元に対する速度制限ポリシーを設定できません。この API が属する API グループを Alibaba Cloud Marketplace に掲載する場合は、API を別のグループに移動するか、API を非公開にするか、Alibaba Cloud アプリ認証を使用してください。

  • APPOPENID:サードパーティの身分認証に OpenID Connect を使用し、承認されたアプリのみが API を呼び出せます。AuthType をこの値に設定する場合は、OpenIdConnectConfig を指定する必要があります。

ConstParameters

List

いいえ

はい

API の定数パラメーターです。

ConstParameters プロパティ

Description

String

いいえ

はい

API の説明です。

説明は最大 180 文字までです。

DisableInternet

Boolean

いいえ

はい

パブリックネットワーク経由での呼び出しを無効にするかどうかを示します。

有効な値:

  • true:禁止されます。

  • false:操作が許可されます。

ErrorCodeSamples

List

いいえ

はい

バックエンドサービスから返されるエラーコードのサンプルです。

ErrorCodeSamples プロパティ

FailResultSample

String

いいえ

はい

バックエンドサービスからの失敗したリクエストの応答サンプルです。

なし

ForceNonceCheck

Boolean

いいえ

はい

X-Ca-Nonce を強制的にチェックするかどうかを示します。

有効な値:

  • true:チェックが強制されます。

  • false:強制的なチェックは行われません。

OpenIdConnectConfig

Map

いいえ

はい

OpenID Connect 認証の構成です。

OpenIdConnectConfig プロパティ

RequestParameters

List

いいえ

はい

コンシューマーから API Gateway への API リクエストのパラメーターです。

RequestParameters プロパティ

ResultBodyModel

String

いいえ

はい

API の戻り値です。

なし

ResultDescriptions

String

いいえ

はい

結果の説明です。

なし

ServiceParameters

List

いいえ

はい

API Gateway からバックエンドサービスへの API リクエストのパラメーターです。

ServiceParameters プロパティ

ServiceParametersMap

List

いいえ

はい

コンシューマーからゲートウェイ、およびゲートウェイからバックエンドへのリクエストパラメーター間のマッピングです。

ServiceParametersMap プロパティ

SystemParameters

List

いいえ

はい

API のシステムパラメーターです。

SystemParameters プロパティ

Tags

List

いいえ

はい

タグです。

最大 20 個のタグを追加できます。

Tags プロパティ

WebSocketApiType

String

いいえ

はい

双方向通信 API のタイプです。

有効な値:

  • COMMON:通常の API です。

  • REGISTER:登録 API です。

  • UNREGISTER:登録解除 API です。

  • NOTIFY:ダウンリンク通知です。

Tags 構文

"Tags": [
  {
    "Key": String,
    "Value": String
  }
]  

Tags プロパティ

プロパティ名

データ型

必須

更新可

説明

制約事項

Key

String

はい

いいえ

タグキーです。

タグキーは 1~128 文字で、aliyun または acs: で始まってはならず、http:// または https:// を含んではなりません。

Value

String

いいえ

いいえ

タグ値です。

タグ値は 0~128 文字で、aliyun または acs: で始まってはならず、http:// または https:// を含んではなりません。

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 ヘッダーの値を設定するポリシーです。

有効な値:

  • DEFAULT:API Gateway のデフォルト値を使用します。

  • CUSTOM:カスタム値を使用します。

  • CLIENT (デフォルト):クライアントリクエストの Content-Type ヘッダーを使用します。

ContentTypeValue

String

いいえ

はい

バックエンドサービスが HTTP サービスで、ContentTypeCatagory が DEFAULT または CUSTOM に設定されている場合の Content-Type ヘッダーの値です。

なし

FunctionComputeConfig

Map

いいえ

はい

バックエンドサービスが Function Compute です。

なし

FunctionComputeConfig プロパティ

Mock

String

いいえ

はい

モックモードを有効にするかどうかを示します。

有効な値:

  • TRUE:モックモードを有効にします。

  • FALSE (デフォルト):モックモードを有効にしません。

MockHeaders

List

いいえ

はい

カスタムモック応答ヘッダーです。このパラメーターは、モックモードが有効な場合にのみ有効です。

なし

MockHeaders プロパティ

MockResult

String

いいえ

はい

モックモードで返される結果です。

なし

MockStatusCode

Integer

いいえ

はい

状態コードです。

状態コードは HTTP 1.1 応答状態コードと互換性がある必要があります。

ServiceAddress

String

いいえ

はい

バックエンドサービスのエンドポイントです。

たとえば、バックエンドサービスの完全なアドレスが http://example.com:8080/object/add?key1=value1&key2=value2 の場合、バックエンドサービスのエンドポイントは http://example.com:8080 です。

ServiceHttpMethod

String

いいえ

はい

バックエンドサービスを呼び出すために使用される HTTP メソッドです。

有効な値:

  • GET (デフォルト)

  • POST

  • DELETE

  • PUT

  • HEAD

  • TRACE

  • PATCH

  • CONNECT

  • OPTIONS

  • ANY

ServicePath

String

いいえ

はい

バックエンドサービスのパスです。

たとえば、バックエンドサービスの完全なアドレスが http://example.com:8080/object/add?key1=value1&key2=value2 の場合、バックエンドサービスのパスは /object/add です。

ServiceProtocol

String

いいえ

はい

バックエンドサービスのプロトコルです。

有効な値:

  • HTTP

  • HTTPS

  • FunctionCompute

ServiceTimeOut

Integer

いいえ

はい

バックエンドサービスのタイムアウト期間です。

単位:ミリ秒。

ServiceVpcEnable

String

いいえ

はい

VPC を使用するかどうかを示します。

有効な値:

  • TRUE:有効です。

  • FALSE (デフォルト):無効です。

VpcConfig

Map

いいえ

はい

VPC チャンネルの構成です。

VpcConfig プロパティ

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

はい

はい

システムパラメーターの名前です。

有効な値:

  • CaClientIp

  • CaDomain

  • CaRequestHandleTime

  • CaAppId

  • CaRequestId

  • CaHttpSchema

  • CaProxy

ServiceParameterName

String

はい

はい

バックエンドパラメーターの名前です。

なし

DemoValue

String

いいえ

はい

例です。

なし

Description

String

いいえ

はい

パラメーターの説明です。

なし

ServiceParameters 構文

"ServiceParameters": [
  {
    "ParameterType": String,
    "Location": String,
    "ServiceParameterName": String
  }
]

ServiceParameters プロパティ

プロパティ名

データ型

必須

更新可

説明

制約事項

Location

String

はい

はい

パラメーターの位置です。

有効な値:

  • BODY

  • HEAD

  • QUERY

  • PATH

ParameterType

String

はい

はい

バックエンドパラメーターのデータ型です。

有効な値:

  • STRING:文字列です。

  • NUMBER:数値です。

  • BOOLEAN:ブール値です。

ServiceParameterName

String

はい

はい

バックエンドパラメーターの名前です。

なし

OpenIdConnectConfig 構文

"OpenIdConnectConfig": {
  "OpenIdApiType": String,
  "PublicKey": String,
  "PublicKeyId": String,
  "IdTokenParamName": String
}

OpenIdConnectConfig プロパティ

プロパティ名

データ型

必須

更新可

説明

制約事項

OpenIdApiType

String

はい

はい

OpenID Connect モードです。

有効な値:

  • IDTOKEN:トークンを取得するために使用される権限付与 API です。OpenIdApiType をこの値に設定する場合は、PublicKeyId および PublicKey を指定する必要があります。

  • BUSINESS:ビジネス API を取得し、トークン認証を実行します。このオプションでは、IdTokenParamName パラメーターを指定する必要があります。

IdTokenParamName

String

いいえ

はい

トークンに対応するパラメーターの名前です。

なし

PublicKey

String

いいえ

はい

公開鍵です。

なし

PublicKeyId

String

いいえ

はい

公開鍵の ID です。

なし

RequestConfig 構文

"RequestConfig": {
  "RequestMode": String,
  "RequestPath": String,
  "PostBodyDescription": String,
  "RequestProtocol": String,
  "RequestHttpMethod": String,
  "BodyFormat": String
}

RequestConfig プロパティ

プロパティ名

タイプ

必須

更新可

説明

制約事項

RequestHttpMethod

String

はい

はい

リクエストメソッドです。

有効な値:

  • GET (デフォルト)

  • POST

  • DELETE

  • PUT

  • HEADER

  • TRACE

  • PATCH

  • OPTIONS

RequestMode

String

はい

はい

リクエストモードです。

有効な値:

  • MAPPING (デフォルト):パラメーターがマッピングされます。

  • PASSTHROUGH:パラメーターがそのまま渡されます。

RequestPath

String

はい

はい

リクエスト URI です。

たとえば、API の完全な URI が http://example.com:8080/object/add?key1=value1&key2=value2 の場合、リクエスト URI は /object/add です。

RequestProtocol

String

はい

はい

API がサポートするプロトコルタイプです。

有効な値:

  • HTTP

  • HTTPS

複数のプロトコルをカンマ (,) で区切ります。例:HTTP,HTTPS

BodyFormat

String

いいえ

はい

POST、PUT、PATCH リクエストの場合、サーバーにデータを渡す方法を指定します。

有効な値:

  • FORM:データがフォームとして渡されます。

  • STREAM:データがバイトストリームとして渡されます。

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

はい

はい

パラメーターの位置です。

有効な値:

  • BODY

  • HEAD

  • QUERY

  • PATH

ParameterType

String

はい

いいえ

パラメーターのタイプです。

有効な値:

  • String:文字のシーケンスです。

  • Int:整数です。

  • Long:長整数です。

  • Float:単精度浮動小数点数です。

  • Double:倍精度浮動小数点数です。

  • Boolean:ブール値です。

Required

String

はい

はい

パラメーターが必須かどうかを示します。

有効な値:

  • REQUIRED:パラメーターは必須です。

  • OPTIONAL:パラメーターは任意です。

DefaultValue

String

いいえ

はい

デフォルト値です。

なし

DemoValue

String

いいえ

はい

サンプル値です。

なし

Description

String

いいえ

はい

パラメーターの説明です。

なし

DocOrder

Integer

いいえ

はい

ドキュメント内の順序です。

なし

DocShow

String

いいえ

はい

API Gateway によって生成された SDK またはドキュメントで表示されるかどうかを示します。

有効な値:

  • PUBLIC

  • PRIVATE

EnumValue

String

いいえ

はい

ParameterType が Int、Long、Float、Double、または String に設定されている場合のパラメーターの有効な値です。

複数の値はカンマ (,) で区切ります。例:1,2,3,4,9 または A,B,C,E,F

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

はい

はい

パラメーターの位置です。

有効な値:

  • BODY

  • HEAD (デフォルト)

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 ヘッダーの値を設定するポリシーです。

有効な値:

  • DEFAULT:API Gateway のデフォルト値を使用します。

  • CUSTOM:カスタム値を使用します。

  • CLIENT (デフォルト):クライアントリクエストの Content-Type ヘッダーを使用します。

FcVersion

String

いいえ

いいえ

Function Compute のバージョンです。

有効な値:

  • 2.0

  • 3.0

ContentTypeValue

String

いいえ

はい

バックエンド HTTP サービスを呼び出し、ContentTypeCatagory が DEFAULT または CUSTOM に設定されている場合の Content-Type ヘッダーの値です。

なし

FcBaseUrl

String

いいえ

はい

トリガーのエンドポイントです。

エンドポイントは http:// または https:// で始まる必要があります。

FcRegionId

String

いいえ

はい

Function Compute がデプロイされているリージョンの ID です。

なし

FcType

String

いいえ

はい

関数のタイプです。

有効な値:

  • FCEvent (デフォルト)。

  • HttpTrigger。

FunctionName

String

いいえ

はい

Function Compute の関数名です。

なし

Method

String

いいえ

はい

HTTP リクエストメソッドです。

有効な値:

  • GET (デフォルト)

  • POST

  • DELETE

  • PUT

  • HEAD

  • PATCH

  • OPTIONS

  • ANY

OnlyBusinessPath

Boolean

いいえ

はい

カスタムバックエンドリクエストパスのみをバックエンドサービスに渡すかどうかを示します。

有効な値:

  • true

  • false

Path

String

いいえ

はい

バックエンドリクエストのパスです。

パラメーターは角括弧 ([ ]) で囲む必要があります。例:/getUserInfo/[userId]

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": {
  }
}