Todos os produtos
Search
Central de documentação

Resource Orchestration Service:ALIYUN::ApiGateway::Api

Última atualização: Sep 07, 2026

O recurso ALIYUN::ApiGateway::Api cria uma API no API Gateway.

Sintaxe

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

Propriedades

Nome da propriedade

Tipo

Obrigatório

Atualização permitida

Descrição

Restrições

ApiName

String

Sim

Sim

Nome da API.

O valor deve ter de 4 a 50 caracteres. Deve começar com uma letra ou caractere chinês e pode conter apenas letras, caracteres chineses, dígitos e sublinhados (_).

Nota

Os nomes de API devem ser exclusivos dentro de um grupo de APIs.

GroupId

String

Sim

Não

ID do grupo de APIs.

Nenhuma

RequestConfig

Map

Sim

Sim

Configuração das requisições de API enviadas pelos consumidores ao API Gateway.

Propriedades de RequestConfig.

ResultSample

String

Não

Sim

Exemplo de resposta do service de backend.

Nenhuma

ResultType

String

Não

Sim

Formato da resposta do service de backend.

Valores válidos:

  • JSON (padrão)

  • TEXT

  • BINARY

  • XML

  • PASSTHROUGH

ServiceConfig

Map

Sim

Sim

Configuração das requisições de API enviadas pelo API Gateway ao service de backend.

Propriedades de ServiceConfig.

Visibility

String

Sim

Sim

Indica se a API é pública.

Valores válidos:

  • Public

  • PRIVATE: O recurso não é público.

AllowSignatureMethod

String

Não

Sim

Obrigatório quando AuthType é APP. Define o algoritmo de assinatura.

Valores válidos:

  • HmacSHA256 (padrão)

  • HmacSHA1

AppCodeAuthType

String

Não

Sim

Tipo de autenticação AppCode.

Válido apenas se AuthType estiver definido como APP. Valores válidos:

  • DEFAULT (padrão): Usa a configuração do grupo de APIs.

  • DISABLE: Operação não permitida.

  • HEADER: Autenticação AppCode permitida apenas para requisições que incluem o cabeçalho AppCode.

  • HEADER_QUERY: Autenticação AppCode permitida para requisições que incluem o cabeçalho AppCode ou o parâmetro de consulta AppCode.

AuthType

String

Não

Sim

Tipo de autenticação de segurança da API.

Valores válidos:

  • APP: Apenas aplicativos autorizados podem chamar a API.

  • ANONYMOUS: Chamadas anônimas são permitidas. O API Gateway não realiza autenticação de identidade no chamador e não pode definir políticas de limitação para ele. Se o grupo de APIs ao qual a API pertence for listado no Alibaba Cloud Marketplace, mova a API para outro grupo, defina-a como privada ou use a autenticação de aplicativo do Alibaba Cloud.

  • APPOPENID: OpenID Connect é usado para autenticação de identidade de terceiros, e apenas aplicativos autorizados podem chamar a API. Se você definir AuthType com este valor, especifique OpenIdConnectConfig.

ConstParameters

List

Não

Sim

Parâmetros constantes da API.

Propriedades de ConstParameters.

Description

String

Não

Sim

Descrição da API.

A descrição pode ter até 180 caracteres.

DisableInternet

Boolean

Não

Sim

Indica se as chamadas pela rede pública devem ser desativadas.

Valores válidos:

  • true: Proibido.

  • false: Operação permitida.

ErrorCodeSamples

List

Não

Sim

Exemplos de códigos de erro retornados pelo service de backend.

Propriedades de ErrorCodeSamples.

FailResultSample

String

Não

Sim

Exemplo de resposta de falha na requisição do service de backend.

Nenhuma

ForceNonceCheck

Boolean

Não

Sim

Indica se a verificação de X-Ca-Nonce deve ser forçada.

Valores válidos:

  • true: A verificação é forçada.

  • false: A verificação obrigatória não é realizada.

OpenIdConnectConfig

Map

Não

Sim

Configuração de autenticação OpenID Connect.

Propriedades de OpenIdConnectConfig.

RequestParameters

List

Não

Sim

Parâmetros das requisições de API enviadas pelos consumidores ao API Gateway.

Propriedades de RequestParameters.

ResultBodyModel

String

Não

Sim

Resultado retornado pela API.

Nenhuma

ResultDescriptions

String

Não

Sim

Descrição do resultado.

Nenhuma

ServiceParameters

List

Não

Sim

Parâmetros das requisições de API enviadas pelo API Gateway ao service de backend.

Propriedades de ServiceParameters.

ServiceParametersMap

List

Não

Sim

Mapeamentos entre os parâmetros de requisição consumidor-gateway e gateway-backend.

Propriedades de ServiceParametersMap.

SystemParameters

List

Não

Sim

Parâmetros de sistema da API.

Propriedades de SystemParameters.

Tags

List

Não

Sim

As tags.

É possível adicionar até 20 tags.

Propriedades de Tags.

WebSocketApiType

String

Não

Sim

Tipo da API de comunicação bidirecional.

Valores válidos:

  • COMMON: uma API comum.

  • REGISTER: uma API de registro.

  • UNREGISTER: uma API de cancelamento de registro.

  • NOTIFY: uma notificação downstream.

Sintaxe de Tags

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

Propriedades de Tags

Nome da propriedade

Tipo

Obrigatório

Atualização permitida

Descrição

Restrições

Key

String

Sim

Não

Chave da tag.

A chave da tag pode ter de 1 a 128 caracteres. Não pode começar com aliyun ou acs: e não pode conter http:// ou https://.

Value

String

Não

Não

Valor da tag.

O valor da tag pode ter de 0 a 128 caracteres. Não pode começar com aliyun ou acs: e não pode conter http:// ou https://.

Sintaxe de ErrorCodeSamples

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

Propriedades de ErrorCodeSamples

Nome da propriedade

Tipo

Obrigatório

Atualização permitida

Descrição

Restrições

Code

String

Sim

Sim

Código de erro.

Nenhuma

Message

String

Sim

Sim

Mensagem de erro.

Nenhuma

Description

String

Não

Sim

Descrição do erro.

Nenhuma

Sintaxe 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
}

Propriedades de ServiceConfig

Nome da propriedade

Tipo

Obrigatório

Atualização permitida

Descrição

Restrições

ContentTypeCatagory

String

Não

Sim

Política para definir o valor do cabeçalho Content-Type ao chamar o service HTTP de backend.

Valores válidos:

  • DEFAULT: Usa o valor padrão do API Gateway.

  • CUSTOM: Usa um valor personalizado.

  • CLIENT (padrão): Usa o cabeçalho Content-Type da requisição do cliente.

ContentTypeValue

String

Não

Sim

Valor do cabeçalho Content-Type quando o service de backend é um service HTTP e ContentTypeCatagory está definido como DEFAULT ou CUSTOM.

Nenhuma

FunctionComputeConfig

Map

Não

Sim

O service de backend é o Function Compute.

Nenhuma

Propriedades de FunctionComputeConfig.

Mock

String

Não

Sim

Indica se o modo mock deve ser ativado.

Valores válidos:

  • TRUE: ativa o modo mock.

  • FALSE (padrão): não ativa o modo mock.

MockHeaders

List

Não

Sim

Cabeçalhos de resposta mock personalizados. Este parâmetro é válido apenas quando o modo mock está ativado.

Nenhuma

Propriedades de MockHeaders.

MockResult

String

Não

Sim

Resultado retornado no modo mock.

Nenhuma

MockStatusCode

Integer

Não

Sim

Código de status.

O código de status deve ser compatível com os códigos de status de resposta HTTP 1.1.

ServiceAddress

String

Não

Sim

Endpoint do service de backend.

Por exemplo, se o endereço completo do service de backend for http://example.com:8080/object/add?key1=value1&key2=value2, o endpoint do service de backend será http://example.com:8080.

ServiceHttpMethod

String

Não

Sim

Método HTTP usado para chamar o service de backend.

Valores válidos:

  • GET (padrão)

  • POST

  • DELETE

  • PUT

  • HEAD

  • TRACE

  • PATCH

  • CONNECT

  • OPTIONS

  • ANY

ServicePath

String

Não

Sim

Caminho do service de backend.

Por exemplo, se o endereço completo do service de backend for http://example.com:8080/object/add?key1=value1&key2=value2, o caminho do service de backend será /object/add.

ServiceProtocol

String

Não

Sim

Protocolo do service de backend.

Valores válidos:

  • HTTP

  • HTTPS

  • FunctionCompute

ServiceTimeOut

Integer

Não

Sim

Tempo limite do service de backend.

Unidade: milissegundos.

ServiceVpcEnable

String

Não

Sim

Indica se uma VPC deve ser usada.

Valores válidos:

  • TRUE: Ativado.

  • FALSE (padrão): Desativado.

VpcConfig

Map

Não

Sim

Configurações do canal VPC.

Propriedades de VpcConfig.

Sintaxe de VpcConfig

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

Propriedades de VpcConfig

Nome da propriedade

Tipo

Obrigatório

Atualização permitida

Descrição

Restrições

InstanceId

String

Sim

Sim

ID da instância na VPC.

Apenas instâncias ECS e SLB são suportadas.

Port

Integer

Sim

Sim

Número da porta da instância.

Nenhuma

VpcId

String

Sim

Sim

ID da VPC.

Nenhuma

Sintaxe de SystemParameters

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

Propriedades de SystemParameters

Nome da propriedade

Tipo

Obrigatório

Atualização permitida

Descrição

Restrições

Location

String

Sim

Sim

Localização do parâmetro.

Nenhuma

ParameterName

String

Sim

Sim

Nome do parâmetro de sistema.

Valores válidos:

  • CaClientIp

  • CaDomain

  • CaRequestHandleTime

  • CaAppId

  • CaRequestId

  • CaHttpSchema

  • CaProxy

ServiceParameterName

String

Sim

Sim

Nome do parâmetro de backend.

Nenhuma

DemoValue

String

Não

Sim

Exemplo.

Nenhuma

Description

String

Não

Sim

Descrição do parâmetro.

Nenhuma

Sintaxe de ServiceParameters

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

Propriedades de ServiceParameters

Nome da propriedade

Tipo

Obrigatório

Atualização permitida

Descrição

Restrições

Location

String

Sim

Sim

Localização do parâmetro.

Valores válidos:

  • BODY

  • HEAD

  • QUERY

  • PATH

ParameterType

String

Sim

Sim

Tipo de dados do parâmetro de backend.

Valores válidos:

  • STRING: uma string.

  • NUMBER: um número.

  • BOOLEAN: um valor booleano.

ServiceParameterName

String

Sim

Sim

Nome do parâmetro de backend.

Nenhuma

Sintaxe de OpenIdConnectConfig

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

Propriedades de OpenIdConnectConfig

Nome da propriedade

Tipo

Obrigatório

Atualização permitida

Descrição

Restrições

OpenIdApiType

String

Sim

Sim

Modo OpenID Connect.

Valores válidos:

  • IDTOKEN: A API é uma API de autorização usada para obter um token. Se você definir OpenIdApiType com este valor, especifique PublicKeyId e PublicKey.

  • BUSINESS: Obtém a API de negócios e realiza autenticação de token. Esta opção exige que você especifique o parâmetro IdTokenParamName.

IdTokenParamName

String

Não

Sim

Nome do parâmetro correspondente ao token.

Nenhuma

PublicKey

String

Não

Sim

Chave pública.

Nenhuma

PublicKeyId

String

Não

Sim

ID da chave pública.

Nenhuma

Sintaxe de RequestConfig

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

Propriedades de RequestConfig

Nome da propriedade

Tipo

Obrigatório

Atualização permitida

Descrição

Restrições

RequestHttpMethod

String

Sim

Sim

Método de requisição.

Valores válidos:

  • GET (padrão)

  • POST

  • DELETE

  • PUT

  • HEADER

  • TRACE

  • PATCH

  • OPTIONS

RequestMode

String

Sim

Sim

Modo de requisição.

Valores válidos:

  • MAPPING (padrão): Os parâmetros são mapeados.

  • PASSTHROUGH: Os parâmetros são passados diretamente.

RequestPath

String

Sim

Sim

URI da requisição.

Por exemplo, se a URI completa da API for http://example.com:8080/object/add?key1=value1&key2=value2, a URI da requisição será /object/add.

RequestProtocol

String

Sim

Sim

Tipos de protocolo suportados pela API.

Valores válidos:

  • HTTP

  • HTTPS

Separe vários protocolos com vírgulas (,), por exemplo, HTTP,HTTPS.

BodyFormat

String

Não

Sim

Para requisições POST, PUT ou PATCH, especifica como os dados são passados ao servidor.

Valores válidos:

  • FORM: Os dados são passados como formulário.

  • STREAM: Os dados são passados como fluxo de bytes.

Válido apenas se RequestMode estiver definido como MAPPING.

PostBodyDescription

String

Não

Sim

Descrição do corpo da requisição.

Nenhuma

Sintaxe de ServiceParametersMap

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

Propriedades de ServiceParametersMap

Nome da propriedade

Tipo

Obrigatório

Atualização permitida

Descrição

Restrições

RequestParameterName

String

Sim

Sim

Nome do parâmetro frontend.

O valor deste parâmetro deve existir em RequestParameters. Deve corresponder a ApiParameterName em RequestParameters.

ServiceParameterName

String

Sim

Sim

Nome do parâmetro de backend.

Nenhuma

Sintaxe 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
  }
]

Propriedades de RequestParameters

Nome da propriedade

Tipo

Obrigatório

Atualização permitida

Descrição

Restrições

ApiParameterName

String

Sim

Sim

Nome do parâmetro.

Nenhuma

Location

String

Sim

Sim

Localização do parâmetro.

Valores válidos:

  • BODY

  • HEAD

  • QUERY

  • PATH

ParameterType

String

Sim

Não

Tipo do parâmetro.

Valores válidos:

  • String: Uma sequência de caracteres.

  • Int: um inteiro.

  • Long: um inteiro longo.

  • Float: um número de ponto flutuante de precisão simples.

  • Double: um número de ponto flutuante de precisão dupla.

  • Boolean: um valor booleano.

Required

String

Sim

Sim

Indica se o parâmetro é obrigatório.

Valores válidos:

  • REQUIRED: O parâmetro é obrigatório.

  • OPTIONAL: O parâmetro é opcional.

DefaultValue

String

Não

Sim

Valor padrão.

Nenhuma

DemoValue

String

Não

Sim

Valor de exemplo.

Nenhuma

Description

String

Não

Sim

Descrição do parâmetro.

Nenhuma

DocOrder

Integer

Não

Sim

Ordem dentro do documento.

Nenhuma

DocShow

String

Não

Sim

Indica se o SDK ou documentos gerados pelo API Gateway são visíveis.

Valores válidos:

  • PUBLIC

  • PRIVATE

EnumValue

String

Não

Sim

Valores válidos do parâmetro quando ParameterType está definido como Int, Long, Float, Double ou String.

Separe vários valores com vírgulas (,), por exemplo, 1,2,3,4,9 ou A,B,C,E,F.

JsonScheme

String

Não

Sim

Se ParameterType estiver definido como String, o parâmetro é verificado com base no esquema JSON.

Nenhuma

MaxLength

Integer

Não

Sim

Comprimento máximo do parâmetro. Válido apenas se ParameterType estiver definido como String.

Nenhuma

MaxValue

Integer

Não

Sim

Valor máximo do parâmetro. Válido apenas se ParameterType estiver definido como Int, Long, Float ou Double.

Nenhuma

MinLength

Integer

Não

Sim

Comprimento mínimo do parâmetro. Válido apenas se ParameterType estiver definido como String.

Nenhuma

MinValue

Integer

Não

Sim

Valor mínimo do parâmetro. Válido apenas se ParameterType estiver definido como Int, Long, Float ou Double.

Nenhuma

RegularExpression

String

Não

Sim

Se ParameterType estiver definido como String, o parâmetro é verificado com base na expressão regular.

Nenhuma

Sintaxe de ConstParameters

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

Propriedades de ConstParameters

Nome da propriedade

Tipo

Obrigatório

Atualização permitida

Descrição

Restrições

ConstValue

String

Sim

Sim

Valor do parâmetro.

Nenhuma

Location

String

Sim

Sim

Localização do parâmetro.

Valores válidos:

  • BODY

  • HEAD (padrão)

ServiceParameterName

String

Sim

Sim

Nome do parâmetro de backend.

Nenhuma

Description

String

Não

Sim

Descrição do parâmetro.

Nenhuma

Sintaxe 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
}

Propriedades de FunctionComputeConfig

Nome da propriedade

Tipo

Obrigatório

Atualização permitida

Descrição

Restrições

ContentTypeCatagory

String

Não

Sim

Política para definir o valor do cabeçalho Content-Type ao chamar o service HTTP de backend.

Valores válidos:

  • DEFAULT: Usa o valor padrão do API Gateway.

  • CUSTOM: Usa um valor personalizado.

  • CLIENT (padrão): Usa o cabeçalho Content-Type da requisição do cliente.

FcVersion

String

Não

Não

Versão do Function Compute.

Valores válidos:

  • 2.0

  • 3.0

ContentTypeValue

String

Não

Sim

Valor do cabeçalho Content-Type ao chamar o service HTTP de backend com ContentTypeCatagory definido como DEFAULT ou CUSTOM.

Nenhuma

FcBaseUrl

String

Não

Sim

Endpoint do gatilho.

O endpoint deve começar com http:// ou https://.

FcRegionId

String

Não

Sim

ID da região onde o Function Compute está implantado.

Nenhuma

FcType

String

Não

Sim

Tipo da função.

Valores válidos:

  • FCEvent (padrão).

  • HttpTrigger.

FunctionName

String

Não

Sim

Nome da função no Function Compute.

Nenhuma

Method

String

Não

Sim

Método de requisição HTTP.

Valores válidos:

  • GET (padrão)

  • POST

  • DELETE

  • PUT

  • HEAD

  • PATCH

  • OPTIONS

  • ANY

OnlyBusinessPath

Boolean

Não

Sim

Indica se apenas o caminho de requisição de backend personalizado deve ser passado ao service de backend.

Valores válidos:

  • true

  • false

Path

String

Não

Sim

Caminho da requisição de backend.

O parâmetro deve estar entre colchetes ([]), por exemplo, /getUserInfo/[userId].

Qualifier

String

Não

Sim

Alias da função no Function Compute.

Nenhuma

RoleArn

String

Não

Sim

ARN da função RAM assumida pelo API Gateway para acessar o Function Compute.

Nenhuma

ServiceName

String

Não

Sim

Nome do service no Function Compute.

Nenhuma

Sintaxe de MockHeaders

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

Propriedades de MockHeaders

Nome da propriedade

Tipo

Obrigatório

Atualização permitida

Descrição

Restrições

HeaderName

String

Sim

Sim

Nome do cabeçalho de resposta.

Nenhuma

HeaderValue

String

Sim

Sim

Valor do cabeçalho de resposta.

Nenhuma

Valores de retorno

Fn::GetAtt

  • ApiId: ID da API.

  • ARN significa Alibaba Cloud Resource Name.

Exemplos

Nota

Altere os valores dos parâmetros nos exemplos a seguir conforme suas necessidades. Por exemplo, altere o 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": {
  }
}