Todos los productos
Search
Centro de documentos

Resource Orchestration Service:ALIYUN::ApiGateway::Api

Última actualización: Sep 07, 2026

ALIYUN::ApiGateway::Api crea una API en API Gateway.

Sintaxis

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

Propiedades

Nombre de la propiedad

Tipo

Obligatorio

Actualización permitida

Descripción

Restricciones

ApiName

String

Sí

Sí

El nombre de la API.

El valor debe tener entre 4 y 50 caracteres. Debe comenzar con una letra o un carácter chino y solo puede contener letras, caracteres chinos, dígitos y guiones bajos (_).

Nota

Los nombres de las API deben ser únicos dentro de un grupo de API.

GroupId

String

Sí

No

El ID del grupo de API.

Ninguna

RequestConfig

Map

Sí

Sí

La configuración de las solicitudes de API que los consumidores envían a API Gateway.

RequestConfig properties.

ResultSample

String

No

Sí

Ejemplo de respuesta del servicio de backend.

Ninguna

ResultType

String

No

Sí

El formato de la respuesta del servicio de backend.

Valores válidos:

  • JSON (predeterminado)

  • TEXT

  • BINARY

  • XML

  • PASSTHROUGH

ServiceConfig

Map

Sí

Sí

La configuración de las solicitudes de API que API Gateway envía al servicio de backend.

ServiceConfig properties.

Visibility

String

Sí

Sí

Indica si la API es pública.

Valores válidos:

  • Public

  • PRIVATE: el recurso no es público.

AllowSignatureMethod

String

No

Sí

Obligatorio cuando AuthType es APP. Establezca el algoritmo de firma.

Valores válidos:

  • HmacSHA256 (predeterminado)

  • HmacSHA1

AppCodeAuthType

String

No

Sí

El tipo de autenticación AppCode.

Válido únicamente si establece AuthType como APP. Valores válidos:

  • DEFAULT (predeterminado): se utiliza la configuración del grupo de API.

  • DISABLE: no se permite la operación.

  • HEADER: la autenticación AppCode solo se permite para las solicitudes que incluyen el encabezado AppCode.

  • HEADER_QUERY: la autenticación AppCode se permite para las solicitudes que incluyen el encabezado AppCode o el parámetro de consulta AppCode.

AuthType

String

No

Sí

El tipo de autenticación de seguridad de la API.

Valores válidos:

  • APP: solo las aplicaciones autorizadas pueden invocar la API.

  • ANONYMOUS: se permiten llamadas anónimas. API Gateway no realiza la autenticación de identidad del emisor ni puede establecer directivas de limitación para este. Si el grupo de API al que pertenece la API se publicará en Alibaba Cloud Marketplace, mueva la API a otro grupo, configúrela como privada o utilice la autenticación de aplicaciones de Alibaba Cloud.

  • APPOPENID: se utiliza OpenID Connect para la autenticación de identidad de terceros y solo las aplicaciones autorizadas pueden invocar la API. Si establece AuthType con este valor, especifique OpenIdConnectConfig.

ConstParameters

List

No

Sí

Los parámetros constantes de la API.

ConstParameters properties.

Description

String

No

Sí

La descripción de la API.

La descripción puede tener hasta 180 caracteres de longitud.

DisableInternet

Boolean

No

Sí

Indica si se deshabilitan las llamadas a través de la red pública.

Valores válidos:

  • true: prohibido.

  • false: se permite la operación.

ErrorCodeSamples

List

No

Sí

Ejemplos de códigos de error que devuelve el servicio de backend.

ErrorCodeSamples properties.

FailResultSample

String

No

Sí

Ejemplo de respuesta del servicio de backend para una solicitud con errores.

Ninguna

ForceNonceCheck

Boolean

No

Sí

Indica si se comprueba X-Ca-Nonce de forma obligatoria.

Valores válidos:

  • true: se fuerza la comprobación.

  • false: no se aplica la comprobación obligatoria.

OpenIdConnectConfig

Map

No

Sí

La configuración de autenticación de OpenID Connect.

OpenIdConnectConfig properties.

RequestParameters

List

No

Sí

Los parámetros de las solicitudes de API que los consumidores envían a API Gateway.

RequestParameters properties.

ResultBodyModel

String

No

Sí

El resultado que devuelve la API.

Ninguna

ResultDescriptions

String

No

Sí

La descripción del resultado.

Ninguna

ServiceParameters

List

No

Sí

Los parámetros de las solicitudes de API que API Gateway envía al servicio de backend.

ServiceParameters properties.

ServiceParametersMap

List

No

Sí

Las asignaciones entre los parámetros de solicitud de consumidor a puerta de enlace y de puerta de enlace a backend.

ServiceParametersMap properties.

SystemParameters

List

No

Sí

Los parámetros del sistema de la API.

SystemParameters properties.

Tags

List

No

Sí

Las etiquetas.

Puede agregar hasta 20 etiquetas.

Tags properties.

WebSocketApiType

String

No

Sí

El tipo de la API de comunicación bidireccional.

Valores válidos:

  • COMMON: una API común.

  • REGISTER: una API de registro.

  • UNREGISTER: una API de cancelación de registro.

  • NOTIFY: una notificación de enlace descendente.

Sintaxis de Tags

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

Propiedades de Tags

Nombre de la propiedad

Tipo

Obligatorio

Actualización permitida

Descripción

Restricciones

Key

String

Sí

No

La clave de la etiqueta.

La clave de la etiqueta puede tener entre 1 y 128 caracteres de longitud. No puede comenzar con aliyun ni con acs:, y no puede contener http:// ni https://.

Value

String

No

No

El valor de la etiqueta.

El valor de la etiqueta puede tener entre 0 y 128 caracteres de longitud. No puede comenzar con aliyun ni con acs:, y no puede contener http:// ni https://.

Sintaxis de ErrorCodeSamples

"ErrorCodeSamples": [
  {
    "Message": String,
    "Code": String,
    "Description": String
  }
]

Propiedades de ErrorCodeSamples

Nombre de la propiedad

Tipo

Obligatorio

Actualización permitida

Descripción

Restricciones

Code

String

Sí

Sí

El código de error.

Ninguna

Message

String

Sí

Sí

El mensaje de error.

Ninguna

Description

String

No

Sí

La descripción del error.

Ninguna

Sintaxis de 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
}

Propiedades de ServiceConfig

Nombre de la propiedad

Tipo

Obligatorio

Actualización permitida

Descripción

Restricciones

ContentTypeCatagory

String

No

Sí

La directiva para establecer el valor del encabezado Content-Type al invocar el servicio HTTP de backend.

Valores válidos:

  • DEFAULT: se utiliza el valor predeterminado de API Gateway.

  • CUSTOM: se utiliza un valor personalizado.

  • CLIENT (predeterminado): se utiliza el encabezado Content-Type de la solicitud del cliente.

ContentTypeValue

String

No

Sí

El valor del encabezado Content-Type cuando el servicio de backend es un servicio HTTP y ContentTypeCatagory se establece como DEFAULT o CUSTOM.

Ninguna

FunctionComputeConfig

Map

No

Sí

El servicio de backend es Function Compute.

Ninguna

FunctionComputeConfig properties.

Mock

String

No

Sí

Indica si se habilita el modo mock.

Valores válidos:

  • TRUE: habilita el modo mock.

  • FALSE (predeterminado): no habilita el modo mock.

MockHeaders

List

No

Sí

Los encabezados personalizados de la respuesta mock. Este parámetro solo es válido cuando el modo mock está habilitado.

Ninguna

MockHeaders properties.

MockResult

String

No

Sí

El resultado que se devuelve en el modo mock.

Ninguna

MockStatusCode

Integer

No

Sí

El código de estado.

El código de estado debe ser compatible con los códigos de estado de respuesta de HTTP 1.1.

ServiceAddress

String

No

Sí

El endpoint del servicio de backend.

Por ejemplo, si la dirección completa del servicio de backend es http://example.com:8080/object/add?key1=value1&key2=value2, el endpoint del servicio de backend es http://example.com:8080.

ServiceHttpMethod

String

No

Sí

El método HTTP utilizado para invocar el servicio de backend.

Valores válidos:

  • GET (predeterminado)

  • POST

  • DELETE

  • PUT

  • HEAD

  • TRACE

  • PATCH

  • CONNECT

  • OPTIONS

  • ANY

ServicePath

String

No

Sí

La ruta del servicio de backend.

Por ejemplo, si la dirección completa del servicio de backend es http://example.com:8080/object/add?key1=value1&key2=value2, la ruta del servicio de backend es /object/add.

ServiceProtocol

String

No

Sí

El protocolo del servicio de backend.

Valores válidos:

  • HTTP

  • HTTPS

  • FunctionCompute

ServiceTimeOut

Integer

No

Sí

El periodo de tiempo de espera del servicio de backend.

Unidad: milisegundos.

ServiceVpcEnable

String

No

Sí

Indica si se utiliza una VPC.

Valores válidos:

  • TRUE: habilitado.

  • FALSE (predeterminado): deshabilitado.

VpcConfig

Map

No

Sí

La configuración del canal de VPC.

VpcConfig properties.

Sintaxis de VpcConfig

"VpcConfig": {
  "InstanceId": String,
  "VpcId": String,
  "Port": Integer
}

Propiedades de VpcConfig

Nombre de la propiedad

Tipo

Obligatorio

Actualización permitida

Descripción

Restricciones

InstanceId

String

Sí

Sí

El ID de la instancia en la VPC.

Solo son compatibles las instancias de ECS y SLB.

Port

Integer

Sí

Sí

El número de puerto de la instancia.

Ninguna

VpcId

String

Sí

Sí

El ID de la VPC.

Ninguna

Sintaxis de SystemParameters

"SystemParameters": [
  {
    "DemoValue": String,
    "ParameterName": String,
    "ServiceParameterName": String,
    "Location": String,
    "Description": String
  }
]

Propiedades de SystemParameters

Nombre de la propiedad

Tipo

Obligatorio

Actualización permitida

Descripción

Restricciones

Location

String

Sí

Sí

La ubicación del parámetro.

Ninguna

ParameterName

String

Sí

Sí

El nombre del parámetro del sistema.

Valores válidos:

  • CaClientIp

  • CaDomain

  • CaRequestHandleTime

  • CaAppId

  • CaRequestId

  • CaHttpSchema

  • CaProxy

ServiceParameterName

String

Sí

Sí

El nombre del parámetro de backend.

Ninguna

DemoValue

String

No

Sí

Ejemplo.

Ninguna

Description

String

No

Sí

La descripción del parámetro.

Ninguna

Sintaxis de ServiceParameters

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

Propiedades de ServiceParameters

Nombre de la propiedad

Tipo

Obligatorio

Actualización permitida

Descripción

Restricciones

Location

String

Sí

Sí

La ubicación del parámetro.

Valores válidos:

  • BODY

  • HEAD

  • QUERY

  • PATH

ParameterType

String

Sí

Sí

El tipo de datos del parámetro de backend.

Valores válidos:

  • STRING: una cadena.

  • NUMBER: un número.

  • BOOLEAN: un valor booleano.

ServiceParameterName

String

Sí

Sí

El nombre del parámetro de backend.

Ninguna

Sintaxis de OpenIdConnectConfig

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

Propiedades de OpenIdConnectConfig

Nombre de la propiedad

Tipo

Obligatorio

Actualización permitida

Descripción

Restricciones

OpenIdApiType

String

Sí

Sí

Modo de OpenID Connect.

Valores válidos:

  • IDTOKEN: la API es una API de autorización que se utiliza para obtener un token. Si establece OpenIdApiType con este valor, debe especificar PublicKeyId y PublicKey.

  • BUSINESS: obtiene la API de negocio y ejecuta la autenticación del token. Esta opción requiere que especifique el parámetro IdTokenParamName.

IdTokenParamName

String

No

Sí

Nombre del parámetro que corresponde al token.

Ninguna

PublicKey

String

No

Sí

Clave pública.

Ninguna

PublicKeyId

String

No

Sí

Identificador de la clave pública.

Ninguna

Sintaxis de RequestConfig

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

Propiedades de RequestConfig

Nombre de la propiedad

Tipo

Obligatorio

Actualización permitida

Descripción

Restricciones

RequestHttpMethod

String

Sí

Sí

Método de la solicitud.

Valores válidos:

  • GET (predeterminado)

  • POST

  • DELETE

  • PUT

  • HEADER

  • TRACE

  • PATCH

  • OPTIONS

RequestMode

String

Sí

Sí

Modo de la solicitud.

Valores válidos:

  • MAPPING (predeterminado): los parámetros se asignan mediante mapeo.

  • PASSTHROUGH: los parámetros se transmiten directamente.

RequestPath

String

Sí

Sí

URI de la solicitud.

Por ejemplo, si el URI completo de la API es http://example.com:8080/object/add?key1=value1&key2=value2, el URI de la solicitud es /object/add.

RequestProtocol

String

Sí

Sí

Tipos de protocolo compatibles con la API.

Valores válidos:

  • HTTP

  • HTTPS

Separe varios protocolos con comas (,). Por ejemplo, HTTP,HTTPS.

BodyFormat

String

No

Sí

Para solicitudes POST, PUT o PATCH, define cómo se transmiten los datos al servidor.

Valores válidos:

  • FORM: los datos se transmiten como un formulario.

  • STREAM: los datos se transmiten como un flujo de bytes.

Válido solo si RequestMode se establece en MAPPING.

PostBodyDescription

String

No

Sí

Descripción del cuerpo de la solicitud.

Ninguna

Sintaxis de ServiceParametersMap

"ServiceParametersMap": [
  {
    "RequestParameterName": String,
    "ServiceParameterName": String
  }
]

Propiedades de ServiceParametersMap

Nombre de la propiedad

Tipo

Obligatorio

Actualización permitida

Descripción

Restricciones

RequestParameterName

String

Sí

Sí

Nombre del parámetro del frontend.

El valor de este parámetro debe existir en RequestParameters. Debe coincidir con ApiParameterName en RequestParameters.

ServiceParameterName

String

Sí

Sí

Nombre del parámetro del backend.

Ninguna

Sintaxis de 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
  }
]

Propiedades de RequestParameters

Nombre de la propiedad

Tipo

Obligatorio

Actualización permitida

Descripción

Restricciones

ApiParameterName

String

Sí

Sí

Nombre del parámetro.

Ninguna

Location

String

Sí

Sí

Ubicación del parámetro.

Valores válidos:

  • BODY

  • HEAD

  • QUERY

  • PATH

ParameterType

String

Sí

No

Tipo del parámetro.

Valores válidos:

  • String: una secuencia de caracteres.

  • Int: un número entero.

  • Long: un entero largo.

  • Float: un número de punto flotante de precisión simple.

  • Double: un número de punto flotante de precisión doble.

  • Boolean: un valor booleano.

Required

String

Sí

Sí

Indica si el parámetro es obligatorio.

Valores válidos:

  • REQUIRED: el parámetro es obligatorio.

  • OPTIONAL: el parámetro es opcional.

DefaultValue

String

No

Sí

Valor predeterminado.

Ninguna

DemoValue

String

No

Sí

Valor de ejemplo.

Ninguna

Description

String

No

Sí

Descripción del parámetro.

Ninguna

DocOrder

Integer

No

Sí

Orden dentro del documento.

Ninguna

DocShow

String

No

Sí

Indica si el SDK o los documentos generados por API Gateway son visibles.

Valores válidos:

  • PUBLIC

  • PRIVATE

EnumValue

String

No

Sí

Valores válidos del parámetro cuando ParameterType se establece en Int, Long, Float, Double o String.

Separe varios valores con comas (,). Por ejemplo, 1,2,3,4,9 o A,B,C,E,F.

JsonScheme

String

No

Sí

Si ParameterType se establece en String, el parámetro se valida según el esquema JSON.

Ninguna

MaxLength

Integer

No

Sí

Longitud máxima del parámetro. Válido solo si ParameterType se establece en String.

Ninguna

MaxValue

Integer

No

Sí

Valor máximo del parámetro. Válido solo si ParameterType se establece en Int, Long, Float o Double.

Ninguna

MinLength

Integer

No

Sí

Longitud mínima del parámetro. Válido solo si ParameterType se establece en String.

Ninguna

MinValue

Integer

No

Sí

Valor mínimo del parámetro. Válido solo si ParameterType se establece en Int, Long, Float o Double.

Ninguna

RegularExpression

String

No

Sí

Si ParameterType se establece en String, el parámetro se valida según la expresión regular.

Ninguna

Sintaxis de ConstParameters

"ConstParameters": [
  {
    "ConstValue": String,
    "ServiceParameterName": String,
    "Description": String,
    "Location": String
  }
]

Propiedades de ConstParameters

Nombre de la propiedad

Tipo

Obligatorio

Actualización permitida

Descripción

Restricciones

ConstValue

String

Sí

Sí

Valor del parámetro.

Ninguna

Location

String

Sí

Sí

Ubicación del parámetro.

Valores válidos:

  • BODY

  • HEAD (predeterminado)

ServiceParameterName

String

Sí

Sí

Nombre del parámetro del backend.

Ninguna

Description

String

No

Sí

Descripción del parámetro.

Ninguna

Sintaxis de 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
}

Propiedades de FunctionComputeConfig

Nombre de la propiedad

Tipo

Obligatorio

Actualización permitida

Descripción

Restricciones

ContentTypeCatagory

String

No

Sí

Directiva para establecer el valor del encabezado Content-Type cuando se llama al servicio HTTP del backend.

Valores válidos:

  • DEFAULT: se utiliza el valor predeterminado de API Gateway.

  • CUSTOM: se utiliza un valor personalizado.

  • CLIENT (predeterminado): se utiliza el encabezado Content-Type de la solicitud del cliente.

FcVersion

String

No

No

Versión de Function Compute.

Valores válidos:

  • 2.0

  • 3.0

ContentTypeValue

String

No

Sí

Valor del encabezado Content-Type cuando se llama al servicio HTTP del backend y ContentTypeCatagory se establece en DEFAULT o CUSTOM.

Ninguna

FcBaseUrl

String

No

Sí

Endpoint del disparador.

El endpoint debe comenzar con http:// o https://.

FcRegionId

String

No

Sí

Identificador de la región donde se despliega Function Compute.

Ninguna

FcType

String

No

Sí

Tipo de la función.

Valores válidos:

  • FCEvent (predeterminado).

  • HttpTrigger.

FunctionName

String

No

Sí

Nombre de la función en Function Compute.

Ninguna

Method

String

No

Sí

Método de la solicitud HTTP.

Valores válidos:

  • GET (predeterminado)

  • POST

  • DELETE

  • PUT

  • HEAD

  • PATCH

  • OPTIONS

  • ANY

OnlyBusinessPath

Boolean

No

Sí

Indica si se transmite únicamente la ruta de solicitud personalizada del backend al servicio del backend.

Valores válidos:

  • true

  • false

Path

String

No

Sí

Ruta de la solicitud del backend.

El parámetro debe encerrarse entre corchetes ([]). Por ejemplo, /getUserInfo/[userId].

Qualifier

String

No

Sí

Alias de la función en Function Compute.

Ninguna

RoleArn

String

No

Sí

ARN del rol de RAM que asume API Gateway para acceder a Function Compute.

Ninguna

ServiceName

String

No

Sí

Nombre del servicio en Function Compute.

Ninguna

Sintaxis de MockHeaders

"MockHeaders": [
  {
    "HeaderValue": String,
    "HeaderName": String
  }
]    

Propiedades de MockHeaders

Nombre de la propiedad

Tipo

Obligatorio

Actualización permitida

Descripción

Restricciones

HeaderName

String

Sí

Sí

Nombre del encabezado de respuesta.

Ninguna

HeaderValue

String

Sí

Sí

Valor del encabezado de respuesta.

Ninguna

Valores de retorno

Fn::GetAtt

  • ApiId: identificador de la API.

  • ARN significa Alibaba Cloud Resource Name.

Ejemplos

Nota

Modifique los valores de los parámetros en los siguientes ejemplos según sus necesidades. Por ejemplo, debe cambiar el valor de InstanceId.

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

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