Todos os produtos
Search
Central de documentação

Resource Orchestration Service:ALIYUN::EDAS::K8sApplication

Última atualização: Jul 03, 2026

Cria uma aplicação em um cluster Kubernetes gerenciado pelo Enterprise Distributed Application Service (EDAS).

Sintaxe

{
  "Type": "ALIYUN::EDAS::K8sApplication",
  "Properties": {
    "LogicalRegionId": String,
    "NasId": String,
    "Liveness": Map,
    "IntranetSlbId": String,
    "WebContainer": String,
    "LimitCpu": Integer,
    "SlsConfigs": List,
    "IntranetSlbProtocol": String,
    "PackageVersion": String,
    "WebContainerConfig": Map,
    "AppName": String,
    "JDK": String,
    "InternetSlbId": String,
    "PreStop": Map,
    "Readiness": Map,
    "InternetSlbPort": Integer,
    "DeployAcrossNodes": Boolean,
    "RequestsMem": Integer,
    "PackageType": String,
    "UseBodyEncoding": Boolean,
    "JavaStartUpConfig": Map,
    "IsMultilingualApp": Boolean,
    "RequestsCpu": Integer,
    "CommandArgs": List,
    "StorageType": String,
    "ClusterId": String,
    "Timeout": Integer,
    "Envs": List,
    "ImageUrl": String,
    "DeployAcrossZones": Boolean,
    "PostStart": Map,
    "InternetTargetPort": Integer,
    "Replicas": Integer,
    "Namespace": String,
    "ApplicationDescription": String,
    "UriEncoding": String,
    "IntranetTargetPort": Integer,
    "MountDescs": List,
    "LocalVolume": List,
    "RuntimeClassName": String,
    "Command": String,
    "InternetSlbProtocol": String,
    "EdasContainerVersion": String,
    "PackageUrl": String,
    "IntranetSlbPort": Integer,
    "RepoId": String,
    "EnableAhas": Boolean,
    "LimitMem": Integer
  }
}

Propriedades

Propriedade

Tipo

Obrigatória

Editável

Descrição

Restrição

LogicalRegionId

String

Não

Não

ID do namespace do Enterprise Distributed Application Service (EDAS).

Especifique esta propriedade quando o namespace padrão não for utilizado.

NasId

String

Não

Não

ID do sistema de arquivos Apsara File Storage NAS a ser montado na aplicação. O sistema de arquivos deve residir na mesma região do cluster.

O sistema de arquivos NAS precisa ter cota disponível para criação de pontos de montagem ou possuir um destino de montagem no vSwitch da Virtual Private Cloud (VPC) onde a aplicação reside.

Se você não especificar esta propriedade, mas definir MountDescs, um sistema de arquivos NAS será adquirido e montado no vSwitch da VPC.

Liveness

Map

Não

Não

Configurações de verificação de atividade do contêiner.

Exemplo: {"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"tcpSocket":{"host":"", "port":8080}}.

Se esta propriedade for definida como "" ou {}, as configurações serão canceladas. Se deixada vazia, as configurações serão ignoradas.

Para mais informações, consulte Propriedades de Liveness.

IntranetSlbId

String

Não

Não

ID da instância do Server Load Balancer (SLB) voltada para a rede interna.

Caso esta propriedade não seja especificada, o EDAS adquire uma nova instância SLB.

WebContainer

String

Não

Não

Versão do contêiner Tomcat da qual o pacote de implantação depende.

Suportado para aplicações Spring Cloud ou Dubbo implantadas com pacotes WAR. Não suportado para implantações baseadas em imagem.

LimitCpu

Integer

Não

Não

Número máximo de vCPUs permitidas para cada instância da aplicação durante sua execução.

SlsConfigs

List

Não

Não

Configurações do Logstore.

Se esta propriedade for definida como "" ou "{}", as configurações serão canceladas.

Para mais informações, consulte Propriedades de SlsConfigs.

IntranetSlbProtocol

String

Não

Não

Protocolo da instância SLB voltada para a rede interna.

Valores válidos:

  • TCP

  • HTTP

  • HTTPS

PackageVersion

String

Não

Não

Versão do pacote de implantação da aplicação.

Esta propriedade é obrigatória quando PackageType estiver definido como WAR ou FatJar.

A versão do SDK da API POP do EDAS para Java ou Python deve ser 2.44.0 ou superior.

WebContainerConfig

Map

Não

Não

Configurações do contêiner Tomcat.

Se esta propriedade for definida como "" ou "{}", as configurações serão canceladas.

Para mais informações, consulte Propriedades de WebContainerConfig.

AppName

String

Sim

Não

Nome da aplicação.

O nome pode ter até 36 caracteres e conter dígitos, letras e hífens (-). Deve começar com uma letra.

JDK

String

Não

Não

Versão do Java Development Kit (JDK) da qual o pacote de implantação depende.

Valores válidos:

  • Open JDK 7

  • Open JDK 8

Não suportado para implantações baseadas em imagem.

InternetSlbId

String

Não

Não

ID da instância SLB voltada para a Internet.

Caso esta propriedade não seja especificada, o EDAS adquire uma nova instância SLB.

PreStop

Map

Não

Não

Configurações do script de pré-parada.

Exemplo: {"tcpSocket":{"host":"", "port":8080}}.

Se esta propriedade for definida como "" ou {}, as configurações serão canceladas. Se deixada vazia, as configurações serão ignoradas.

Para mais informações, consulte Propriedades de PreStop.

Readiness

Map

Não

Não

Configurações de verificação de prontidão do contêiner.

Para mais informações, consulte Propriedades de Readiness.

InternetSlbPort

Integer

Não

Não

Número da porta frontend da instância SLB voltada para a Internet.

Valores válidos: 1 a 65535.

DeployAcrossNodes

Boolean

Não

Não

Define se as instâncias da aplicação devem ser distribuídas entre nós.

Valores válidos:

  • true

  • false

RequestsMem

Integer

Não

Não

Quantidade máxima de memória permitida para cada instância da aplicação no momento da criação.

Unidade: MB.

O valor 0 indica que não há limite para o tamanho máximo de memória.

PackageType

String

Não

Não

Tipo do pacote de implantação da aplicação.

Valores válidos:

  • FatJar

  • WAR

  • Image

UseBodyEncoding

Boolean

Não

Não

Define se o esquema de codificação especificado no corpo da requisição deve ser usado para parâmetros de consulta do Uniform Resource Identifier (URI).

Valores válidos:

  • true

  • false (padrão)

JavaStartUpConfig

Map

Não

Não

Parâmetros de inicialização do Java.

Se esta propriedade for definida como "" ou "{}", as configurações serão canceladas.

Para mais informações, consulte Propriedades de JavaStartUpConfig.

IsMultilingualApp

Boolean

Não

Não

Indica se a aplicação é multilíngue.

Valores válidos:

  • true

  • false (padrão)

RequestsCpu

Integer

Não

Não

Número máximo de vCPUs permitidas para cada instância da aplicação no momento da criação.

O valor 0 indica que não há limite para o número máximo de vCPUs.

CommandArgs

List

Não

Não

Argumentos do comando.

Exemplo: [{" argument":"-c"},{" argument":" test"}]]. -c e test são argumentos que podem ser especificados.

Para mais informações, consulte Propriedade CommandArgs.

StorageType

String

Não

Não

Categoria de armazenamento.

Defina o valor como SSD.

ClusterId

String

Sim

Não

ID do cluster Kubernetes.

Chame a operação ListCluster para consultar o ID do cluster.

Timeout

Integer

Não

Não

Tempo limite do processo de alteração.

Unidade: segundos.

Envs

List

Não

Não

Variáveis de ambiente usadas para implantar a aplicação.

Formato do valor: [{"Name":"x","Value":"y"},{"Name":"x2","Value":"y2"}].

Para mais informações, consulte Propriedades de Envs.

ImageUrl

String

Não

Não

Endereço da imagem.

Esta propriedade é obrigatória quando PackageType estiver definido como Image.

DeployAcrossZones

Boolean

Não

Não

Define se as instâncias da aplicação devem ser distribuídas entre zonas.

Valores válidos:

  • true

  • false

PostStart

Map

Não

Não

Configurações do script pós-inicialização.

Exemplo: {"Exec": {"Command": ["ls", "/"]}}.

Se esta propriedade for definida como "" ou {}, as configurações serão canceladas. Se deixada vazia, as configurações serão ignoradas.

Para mais informações, consulte Propriedades de PostStart.

InternetTargetPort

Integer

Não

Não

Número da porta backend da instância SLB voltada para a Internet, que também corresponde à porta de serviço da aplicação.

Valores válidos: 1 a 65535.

Replicas

Integer

Não

Não

Número de instâncias da aplicação.

Valor padrão: 1.

Namespace

String

Não

Não

Namespace do cluster Kubernetes onde a aplicação será implantada.

Valor padrão: default.

ApplicationDescription

String

Não

Sim

Descrição da aplicação.

Nenhuma.

UriEncoding

String

Não

Não

Esquema de codificação do URI.

Valores válidos:

  • ISO-8859-1

  • GBK

  • GB2312

  • UTF-8

Nota

Se esta propriedade não for especificada nas configurações da aplicação, o esquema de codificação de URI padrão do contêiner Tomcat será utilizado.

IntranetTargetPort

Integer

Não

Não

Número da porta backend da instância SLB voltada para a rede interna, que também corresponde à porta de serviço da aplicação.

Valores válidos: 1 a 65535.

MountDescs

List

Não

Não

Configurações de montagem.

Exemplo: [{"NasPath": "/k8s","MountPath": "/mnt"}, {"NasPath": "/files", "MountPath": "/app/files"}]. NasPath especifica o caminho de armazenamento do sistema de arquivos. MountPath define o local onde o sistema de arquivos será montado no contêiner.

Para mais informações, consulte Propriedades de MountDescs.

LocalVolume

List

Não

Não

Configurações para montar arquivos do host no contêiner.

Exemplo: [{"type":"", "nodePath":"/localfiles", "mountPath":"/app/files"}, {"type":"Directory", "nodePath":"/mnt", "mountPath":"/app/storage"}]. nodePath indica o caminho no host. mountPath indica o caminho dentro do contêiner. type define o tipo de montagem.

Para mais informações, consulte Propriedades de LocalVolume.

RuntimeClassName

String

Não

Não

Tipo de runtime do contêiner.

Esta propriedade aplica-se apenas a clusters que executam contêineres em sandbox.

Command

String

Não

Não

Comando.

Ao especificar um valor para esta propriedade, ele substituirá o comando de inicialização da imagem durante a partida.

InternetSlbProtocol

String

Não

Não

Protocolo da instância SLB voltada para a Internet.

Valores válidos:

  • TCP

  • HTTP

  • HTTPS

EdasContainerVersion

String

Não

Não

Versão do EDAS Container da qual o pacote de implantação depende.

Não suportado para implantações baseadas em imagem.

PackageUrl

String

Não

Não

Endereço do pacote de implantação.

Esta propriedade é obrigatória ao usar um pacote FatJar ou WAR para implantar a aplicação.

Nota

A versão do SDK do EDAS para Java ou Python deve ser 2.44.0 ou superior.

IntranetSlbPort

Integer

Não

Não

Número da porta frontend da instância SLB voltada para a rede interna.

Valores válidos: 1 a 65535.

RepoId

String

Não

Não

ID do repositório de imagens.

Nenhuma.

EnableAhas

Boolean

Não

Não

Define se o acesso ao Application High Availability Service deve ser ativado.

Valores válidos:

  • true

  • false (padrão)

LimitMem

Integer

Não

Não

Quantidade máxima de memória permitida para cada instância da aplicação durante sua execução.

Unidade: MB.

Sintaxe de Liveness

"Liveness": {
  "TimeoutSeconds": Integer,
  "Exec": Map,
  "InitialDelaySeconds": Integer,
  "HttpGet": Map,
  "PeriodSeconds": Integer,
  "TcpSocket": Map,
  "FailureThreshold": Integer,
  "SuccessThreshold": Integer
}

Propriedades de Liveness

Propriedade

Tipo

Obrigatória

Editável

Descrição

Restrição

TimeoutSeconds

Integer

Não

Não

Tempo limite da verificação.

Valor mínimo: 1.

Unidade: segundos.

Exec

Map

Não

Não

Comandos a serem executados.

Para mais informações, consulte Propriedade Exec.

InitialDelaySeconds

Integer

Não

Não

Tempo de espera após a inicialização do contêiner antes que o sistema realize a primeira verificação.

Valor mínimo: 1.

Unidade: segundos.

HttpGet

Map

Não

Não

Métodos HTTP GET.

Para mais informações, consulte Propriedades de HttpGet.

PeriodSeconds

Integer

Não

Não

Intervalo de tempo entre duas verificações consecutivas.

Valor mínimo: 1.

Unidade: segundos.

TcpSocket

Map

Não

Não

Números de porta para os quais o sistema envia requisições de socket TCP.

Para mais informações, consulte Propriedades de TcpSocket.

FailureThreshold

Integer

Não

Não

Número de falhas consecutivas nas verificações necessárias para que um contêiner saudável seja considerado não saudável.

Valor mínimo: 1.

SuccessThreshold

Integer

Não

Não

Número de sucessos consecutivos nas verificações necessários para que um contêiner não saudável seja considerado saudável.

Valor mínimo: 1.

Sintaxe de Exec

"Exec": {
  "Command": List
}

Propriedade Exec

Propriedade

Tipo

Obrigatória

Editável

Descrição

Restrição

Command

List

Não

Não

Comandos a serem executados.

Nenhuma.

Sintaxe de HttpGet

"HttpGet": {
  "Path": String,
  "HttpHeaders": List,
  "Scheme": String,
  "Port": String,
  "Host": String
}

Propriedades de HttpGet

Propriedade

Tipo

Obrigatória

Editável

Descrição

Restrição

Path

String

Não

Não

Caminho.

Nenhuma.

HttpHeaders

List

Não

Não

Cabeçalhos da requisição HTTP.

Exemplo: [{"name": "test","value": "testvalue"}].

Para mais informações, consulte Propriedades de HttpHeaders.

Scheme

String

Não

Não

Esquema.

Exemplo: {'AllowedValues': ['HTTP', 'HTTPS']}.

Port

String

Não

Não

Número da porta.

Nenhuma.

Host

String

Não

Não

Host.

Nenhuma.

Sintaxe de HttpHeaders

"HttpHeaders": [
  {
    "Value": String,
    "Name": String
  }
]

Propriedades de HttpHeaders

Propriedade

Tipo

Obrigatória

Editável

Descrição

Restrição

Value

String

Não

Não

Valor.

Nenhuma.

Name

String

Não

Não

Nome.

Nenhuma.

Sintaxe de TcpSocket

"TcpSocket": {
  "Port": String,
  "Host": String
}

Propriedades de TcpSocket

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Port

String

Não

Não

Número da porta.

Nenhuma.

Host

String

Não

Não

Host.

Nenhuma.

Sintaxe de SlsConfigs

"SlsConfigs": [
  {
    "Type": String,
    "LogDir": String,
    "Logstore": String
  }
]

Propriedades de SlsConfigs

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Type

String

Não

Não

Tipo de coleta.

Valores válidos:

  • file: arquivo.

  • stdout: saída padrão.

LogDir

String

Não

Não

Caminho de coleta.

O caminho de coleta deve corresponder à seguinte expressão regular: ^/(.+)/(.*)^/$. Se Type estiver definido como stdout, o caminho de coleta será stdout.log. Se Type estiver definido como file, o caminho de coleta será o caminho do arquivo coletado.

Logstore

String

Não

Não

Nome do Logstore.

Certifique-se de que o nome do Logstore seja exclusivo no cluster.

O nome deve ter entre 3 e 63 caracteres. Deve começar e terminar com uma letra minúscula ou dígito. Pode conter letras minúsculas, dígitos, hifens (-) e sublinhados (_).

Nota

Se você não especificar esta propriedade, o sistema gerará um nome para o Logstore.

Sintaxe de WebContainerConfig

"WebContainerConfig": {
  "HttpPort": Integer,
  "UriEncoding": String,
  "ContextPath": String,
  "ContextInputType": String,
  "UseBodyEncoding": Boolean,
  "ServerXml": String,
  "MaxThreads": Integer,
  "UseAdvancedServerXml": Boolean,
  "UseDefaultConfig": Boolean
}

Propriedades de WebContainerConfig

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

HttpPort

Integer

Não

Não

Número da porta HTTP.

Valores válidos: 1024 a 65535.

Valor padrão: 8080.

Nota

Permissões de root são necessárias para executar operações em números de porta menores que 1024.

UriEncoding

String

Não

Não

Formato de codificação para o contêiner Tomcat.

Valores válidos:

  • UTF-8

  • ISO-8859-1 (padrão)

  • GBK

  • GB2312

ContextPath

String

Não

Não

Caminho personalizado.

Esta propriedade deve ser especificada quando ContextInputType estiver definido como custom.

ContextInputType

String

Não

Não

Caminho de acesso da aplicação.

Valores válidos:

  • war: O caminho de acesso da aplicação é o nome do pacote WAR. Não é necessário especificar um caminho personalizado.

  • root: O caminho de acesso da aplicação é /. Não é necessário especificar um caminho personalizado.

  • custom: O caminho de acesso da aplicação é um caminho personalizado definido por meio de ContextPath.

UseBodyEncoding

Boolean

Não

Não

Define se o esquema de codificação especificado no corpo da requisição deve ser usado para parâmetros de consulta URI.

Valores válidos:

  • true

  • false (padrão)

ServerXml

String

Não

Não

Conteúdo do arquivo server.xml personalizado nas configurações avançadas.

Esta propriedade entra em vigor quando UseAdvancedServerXml está definido como true.

MaxThreads

Integer

Não

Não

Número de conexões no pool de conexões.

Valor padrão: 400.

Nota

Esta propriedade afeta significativamente o desempenho da aplicação. Recomendamos consultar o suporte técnico antes de definir este valor.

UseAdvancedServerXml

Boolean

Não

Não

Define se configurações avançadas devem ser usadas para personalizar o arquivo server.xml.

Valores válidos:

  • true

  • false (padrão)

Quando UseAdvancedServerXml está definido como true, é possível modificar o arquivo server.xml do contêiner Tomcat.

UseDefaultConfig

Boolean

Não

Não

Define se as configurações personalizadas devem ser utilizadas.

Valores válidos:

  • true (padrão): utiliza as configurações padrão em vez das personalizadas.

  • false: utiliza as configurações personalizadas.

Sintaxe de PreStop

"PreStop": {
  "Exec": Map,
  "HttpGet": Map
}

Propriedades de PreStop

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Exec

Map

Não

Não

Comandos a serem executados.

Nenhuma.

HttpGet

Map

Não

Não

Métodos HTTP GET.

Nenhuma.

Sintaxe de Readiness

"Readiness": {
  "TimeoutSeconds": Integer,
  "Exec": Map,
  "InitialDelaySeconds": Integer,
  "HttpGet": Map,
  "PeriodSeconds": Integer,
  "TcpSocket": Map,
  "FailureThreshold": Integer,
  "SuccessThreshold": Integer
}

Propriedades de Readiness

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

TimeoutSeconds

Integer

Não

Não

Tempo limite.

Unidade: segundos.

Valor mínimo: 1.

Exec

Map

Não

Não

Comandos a serem executados.

Nenhuma.

InitialDelaySeconds

Integer

Não

Não

Tempo de espera após a inicialização do contêiner e antes da primeira verificação pelo sistema.

Unidade: segundos.

Valor mínimo: 1.

HttpGet

Map

Não

Não

Requisições HTTP GET.

Nenhuma.

PeriodSeconds

Integer

Não

Não

Intervalo de tempo entre duas verificações consecutivas.

Unidade: segundos.

Valor mínimo: 1.

TcpSocket

Map

Não

Não

Números de porta para os quais o sistema envia requisições de socket TCP.

Nenhuma.

FailureThreshold

Integer

Não

Não

Número de falhas consecutivas nas verificações necessárias para que um contêiner saudável seja declarado não saudável.

Valor mínimo: 1.

SuccessThreshold

Integer

Não

Não

Número de sucessos consecutivos nas verificações necessários para que um contêiner não saudável seja declarado saudável.

Valor mínimo: 1.

Sintaxe de JavaStartUpConfig

"JavaStartUpConfig": {
  "MaxHeapSize": Map,
  "UseGCLogFileRotation": Map,
  "CustomParams": Map,
  "ParallelGCThreads": Map,
  "InitialHeapSize": Map,
  "NacosUseEndpointParsingRule": Map,
  "ThreadStackSize": Map,
  "SurvivorRatio": Map,
  "PermSize": Map,
  "NewSize": Map,
  "ConcGCThreads": Map,
  "NewRatio": Map,
  "GCLogFileSize": Map,
  "MaxNewSize": Map,
  "G1HeapRegionSize": Map,
  "PrintGC": Map,
  "MaxDirectMemorySize": Map,
  "MaxPermSize": Map,
  "HeapDumpOnOutOfMemoryError": Map,
  "NacosUseCloudNamespaceParsing": Map,
  "HeapDumpPath": Map,
  "GCLogFilePath": Map,
  "PrintGCDateStamps": Map,
  "YoungGarbageCollector": Map,
  "OldGarbageCollector": Map
}

Propriedades de JavaStartUpConfig

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

MaxHeapSize

Map

Não

Não

Tamanho máximo da memória heap.

Unidade: MB.

Valores válidos: 0 a X. X é calculado pela fórmula: X = 0,85 × Memória disponível das instâncias do Elastic Compute Service (ECS) para a aplicação.

Para mais informações, consulte Propriedades de MaxHeapSize.

UseGCLogFileRotation

Map

Não

Não

Define se a rotação de arquivos de log de coleta de lixo (GC) deve ser ativada.

Para mais informações, consulte Propriedades de UseGCLogFileRotation.

CustomParams

Map

Não

Não

Parâmetros personalizados.

Separe múltiplos parâmetros com espaços.

Para mais informações, consulte Propriedades de CustomParams.

ParallelGCThreads

Map

Não

Não

Número de threads usadas para GC paralelo.

Para mais informações, consulte Propriedades de ParallelGCThreads.

InitialHeapSize

Map

Não

Não

Tamanho inicial da memória heap.

Unidade: MB.

Um valor 0 indica que não há limite para o tamanho inicial.

Para mais informações, consulte Propriedades de InitialHeapSize.

NacosUseEndpointParsingRule

Map

Não

Não

Define se as regras de análise de endpoint devem ser ativadas.

Para mais informações, consulte Propriedades de NacosUseEndpointParsingRule.

ThreadStackSize

Map

Não

Não

Tamanho de memória da pilha de threads.

Unidade: KB.

Para mais informações, consulte Propriedades de ThreadStackSize.

SurvivorRatio

Map

Não

Não

Proporção de memória Eden/Survivor.

Para mais informações, consulte Propriedades de SurvivorRatio.

PermSize

Map

Não

Não

Tamanho inicial da memória de geração permanente.

Unidade: MB.

Para mais informações, consulte Propriedades de PermSize.

NewSize

Map

Não

Não

Tamanho inicial da memória heap da nova geração.

Unidade: MB.

Para mais informações, consulte Propriedades de NewSize.

ConcGCThreads

Map

Não

Não

Número de threads usadas para GC concorrente.

Para mais informações, consulte Propriedades de ConcGCThreads.

NewRatio

Map

Não

Não

Proporção entre as gerações antiga e nova.

Para mais informações, consulte Propriedades de NewRatio.

GCLogFileSize

Map

Não

Não

Tamanho do arquivo de log de GC.

Para mais informações, consulte Propriedades de GCLogFileSize.

MaxNewSize

Map

Não

Não

Tamanho máximo da memória heap da nova geração.

Unidade: MB.

Um valor max_uintx indica que não há limite para o tamanho máximo.

Para mais informações, consulte Propriedades de MaxNewSize.

G1HeapRegionSize

Map

Não

Não

Tamanho da região G1.

Para mais informações, consulte Propriedades de G1HeapRegionSize.

PrintGC

Map

Não

Não

Define se informações resumidas de GC devem ser impressas após cada coleta.

Para mais informações, consulte Propriedades de PrintGC.

MaxDirectMemorySize

Map

Não

Não

Tamanho máximo da memória direta de I/O não bloqueante (NIO).

Unidade: MB.

Para mais informações, consulte Propriedades de MaxDirectMemorySize.

MaxPermSize

Map

Não

Não

Tamanho máximo da memória de geração permanente.

Unidade: MB.

Para mais informações, consulte Propriedades de MaxPermSize.

HeapDumpOnOutOfMemoryError

Map

Não

Não

Define se a memória heap deve ser despejada quando ocorrer um erro de falta de memória.

Para mais informações, consulte Propriedades de HeapDumpOnOutOfMemoryError.

NacosUseCloudNamespaceParsing

Map

Não

Não

Define se a análise automática de namespace deve ser ativada.

Para mais informações, consulte Propriedades de NacosUseCloudNamespaceParsing.

HeapDumpPath

Map

Não

Não

Caminho do arquivo de dump de heap.

Para mais informações, consulte Propriedades de HeapDumpPath.

GCLogFilePath

Map

Não

Não

Caminho do arquivo de log de GC.

Para mais informações, consulte Propriedades de GCLogFilePath.

PrintGCDateStamps

Map

Não

Não

Define se um carimbo de data/hora deve ser impresso em cada entrada de log de GC.

Para mais informações, consulte Propriedades de PrintGCDateStamps.

YoungGarbageCollector

Map

Não

Não

Coletor de lixo da geração nova.

Para mais informações, consulte Propriedades de YoungGarbageCollector.

OldGarbageCollector

Map

Não

Não

Coletor de lixo da geração antiga.

Configure o coletor de lixo da geração nova antes de definir esta propriedade.

Para mais informações, consulte Propriedades de OldGarbageCollector.

Sintaxe de MaxHeapSize

"MaxHeapSize": {
  "Original": Integer,
  "Startup": String
}

Propriedades de MaxHeapSize

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Original

Integer

Não

Não

Valor de configuração.

Nenhuma.

Startup

String

Não

Não

Parâmetro de inicialização.

Nenhuma.

Sintaxe de UseGCLogFileRotation

"UseGCLogFileRotation": {
  "Original": Boolean,
  "Startup": String
}

Propriedades de UseGCLogFileRotation

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Original

Boolean

Não

Não

Valor de configuração.

Nenhuma.

Startup

String

Não

Não

Parâmetro de inicialização.

Nenhuma.

Sintaxe de CustomParams

"CustomParams": {
  "Original": String,
  "Startup": String
}

Propriedades de CustomParams

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Original

String

Não

Não

Valor de configuração.

Nenhuma.

Startup

String

Não

Não

Parâmetro de inicialização.

Nenhuma.

Sintaxe de ParallelGCThreads

"ParallelGCThreads": {
  "Original": Integer,
  "Startup": String
}

Propriedades de ParallelGCThreads

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Original

Integer

Não

Não

Valor de configuração.

Nenhuma.

Startup

String

Não

Não

Parâmetro de inicialização.

Nenhuma.

Sintaxe de InitialHeapSize

"InitialHeapSize": {
  "Original": Integer,
  "Startup": String
}

Propriedades de InitialHeapSize

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Original

Integer

Não

Não

Valor de configuração.

Nenhuma.

Startup

String

Não

Não

Parâmetro de inicialização.

Nenhuma.

Sintaxe de NacosUseEndpointParsingRule

"NacosUseEndpointParsingRule": {
  "Original": Boolean,
  "Startup": String
}

Propriedades de NacosUseEndpointParsingRule

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Original

Boolean

Não

Não

Valor de configuração.

Nenhuma.

Startup

String

Não

Não

Parâmetro de inicialização.

Nenhuma.

Sintaxe de ThreadStackSize

"ThreadStackSize": {
  "Original": Integer,
  "Startup": String
}

Propriedades de ThreadStackSize

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Original

Integer

Não

Não

Valor de configuração.

Nenhuma.

Startup

String

Não

Não

Parâmetro de inicialização.

Nenhuma.

Sintaxe de SurvivorRatio

"SurvivorRatio": {
  "Original": Integer,
  "Startup": String
}

Propriedades de SurvivorRatio

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Original

Integer

Não

Não

Valor de configuração.

Nenhuma.

Startup

String

Não

Não

Parâmetro de inicialização.

Nenhuma.

Sintaxe de PermSize

"PermSize": {
  "Original": Integer,
  "Startup": String
}

Propriedades de PermSize

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Original

Integer

Não

Não

Valor de configuração.

Nenhuma.

Startup

String

Não

Não

Parâmetro de inicialização.

Nenhuma.

Sintaxe de NewSize

"NewSize": {
  "Original": Integer,
  "Startup": String
}

Propriedades de NewSize

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Original

Integer

Não

Não

Valor de configuração.

Nenhuma.

Startup

String

Não

Não

Parâmetro de inicialização.

Nenhuma.

Sintaxe de ConcGCThreads

"ConcGCThreads": {
  "Original": Integer,
  "Startup": String
}

Propriedades de ConcGCThreads

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Original

Integer

Não

Não

Valor de configuração.

Nenhuma.

Startup

String

Não

Não

Parâmetro de inicialização.

Nenhuma.

Sintaxe de NewRatio

"NewRatio": {
  "Original": Integer,
  "Startup": String
}

Propriedades de NewRatio

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Original

Integer

Não

Não

Valor de configuração.

Nenhuma.

Startup

String

Não

Não

Parâmetro de inicialização.

Nenhuma.

Sintaxe de GCLogFileSize

"GCLogFileSize": {
  "Original": Integer,
  "Startup": String
}

Propriedades de GCLogFileSize

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Original

Integer

Não

Não

Valor de configuração.

Nenhuma.

Startup

String

Não

Não

Parâmetro de inicialização.

Nenhuma.

Sintaxe de MaxNewSize

"MaxNewSize": {
  "Original": Integer,
  "Startup": String
}

Propriedades de MaxNewSize

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Original

Integer

Não

Não

Valor de configuração.

Nenhuma.

Startup

String

Não

Não

Parâmetro de inicialização.

Nenhuma.

Sintaxe de G1HeapRegionSize

"G1HeapRegionSize": {
  "Original": Integer,
  "Startup": String
}

Propriedades de G1HeapRegionSize

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Original

Integer

Não

Não

Valor de configuração.

Nenhuma.

Startup

String

Não

Não

Parâmetro de inicialização.

Nenhuma.

Sintaxe de PrintGC

"PrintGC": {
  "Original": Boolean,
  "Startup": String
}

Propriedades de PrintGC

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Original

Boolean

Não

Não

Valor de configuração.

Nenhuma.

Startup

String

Não

Não

Parâmetro de inicialização.

Nenhuma.

Sintaxe de MaxDirectMemorySize

"MaxDirectMemorySize": {
  "Original": Integer,
  "Startup": String
}

Propriedades de MaxDirectMemorySize

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Original

Integer

Não

Não

Valor de configuração.

Nenhuma.

Startup

String

Não

Não

Parâmetro de inicialização.

Nenhuma.

Sintaxe de MaxPermSize

"MaxPermSize": {
  "Original": Integer,
  "Startup": String
}

Propriedades de MaxPermSize

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Original

Integer

Não

Não

Valor de configuração.

Nenhuma.

Startup

String

Não

Não

Parâmetro de inicialização.

Nenhuma.

Sintaxe de HeapDumpOnOutOfMemoryError

"HeapDumpOnOutOfMemoryError": {
  "Original": Boolean,
  "Startup": String
}

Propriedades de HeapDumpOnOutOfMemoryError

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Original

Boolean

Não

Não

Valor de configuração.

Nenhuma.

Startup

String

Não

Não

Parâmetro de inicialização.

Nenhuma.

Sintaxe de NacosUseCloudNamespaceParsing

"NacosUseCloudNamespaceParsing": {
  "Original": Boolean,
  "Startup": String
}

Propriedades de NacosUseCloudNamespaceParsing

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Original

Boolean

Não

Não

Valor de configuração.

Nenhuma.

Startup

String

Não

Não

Parâmetro de inicialização.

Nenhuma.

Sintaxe de HeapDumpPath

"HeapDumpPath": {
  "Original": String,
  "Startup": String
}

Propriedades de HeapDumpPath

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Original

String

Não

Não

Valor de configuração.

Nenhuma.

Startup

String

Não

Não

Parâmetro de inicialização.

Nenhuma.

Sintaxe de GCLogFilePath

"GCLogFilePath": {
  "Original": String,
  "Startup": String
}

Propriedades de GCLogFilePath

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Original

String

Não

Não

Valor de configuração.

Nenhuma.

Startup

String

Não

Não

Parâmetro de inicialização.

Nenhuma.

Sintaxe de PrintGCDateStamps

"PrintGCDateStamps": {
  "Original": Boolean,
  "Startup": String
}

Propriedades de PrintGCDateStamps

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Original

Boolean

Não

Não

Valor de configuração.

Nenhuma.

Startup

String

Não

Não

Parâmetro de inicialização.

Nenhuma.

Sintaxe de YoungGarbageCollector

"YoungGarbageCollector": {
  "Original": String,
  "Startup": String
}

Propriedades de YoungGarbageCollector

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Original

String

Não

Não

Valor de configuração.

Nenhuma.

Startup

String

Não

Não

Parâmetro de inicialização.

Nenhuma.

Sintaxe de OldGarbageCollector

"OldGarbageCollector": {
  "Original": String,
  "Startup": String
}

Propriedades de OldGarbageCollector

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Original

String

Não

Não

Valor de configuração.

Nenhuma.

Startup

String

Não

Não

Parâmetro de inicialização.

Nenhuma.

Sintaxe de CommandArgs

"CommandArgs": [
  {
    "Argument": String
  }
]

Propriedade de CommandArgs

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Argument

String

Não

Não

Argumento do comando.

Use esta propriedade em conjunto com o comando. Os argumentos de um comando formam uma matriz JSON. Exemplo de argumentos: [{"argument":"-c"},{"argument":"test"}]. -c e test são argumentos que você pode especificar.

Sintaxe de Envs

"Envs": [
  {
    "Value": String,
    "Name": String
  }
]

Propriedades de Envs

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Value

String

Não

Não

Valor.

Nenhuma.

Name

String

Não

Não

Nome.

Nenhuma.

Sintaxe de PostStart

"PostStart": {
  "Exec": Map,
  "HttpGet": Map
}

Propriedades de PostStart

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

Exec

Map

Não

Não

Comandos a serem executados.

Nenhuma.

HttpGet

Map

Não

Não

Requisições HTTP GET.

Nenhuma.

Sintaxe de MountDescs

"MountDescs": [
  {
    "MountPath": String,
    "NasPath": String
  }
]

Propriedades de MountDescs

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

MountPath

String

Não

Não

Caminho onde o sistema de arquivos será montado no contêiner.

Nenhuma.

NasPath

String

Não

Não

Caminho de armazenamento do sistema de arquivos.

Nenhuma.

Sintaxe de LocalVolume

"LocalVolume": [
  {
    "MountPath": String,
    "Type": String,
    "NodePath": String
  }
]

Propriedades de LocalVolume

Propriedade

Tipo

Obrigatório

Editável

Descrição

Restrição

MountPath

String

Não

Não

Caminho dentro do contêiner.

Nenhuma.

Type

String

Não

Não

Tipo de montagem.

Nenhuma.

NodePath

String

Não

Não

Caminho no host.

Nenhuma.

Valores de retorno

Fn::GetAtt

  • AppId: ID da aplicação.

  • ClusterId: ID do cluster Kubernetes onde a aplicação foi criada.

  • ChangeOrderId: ID do processo de alteração.

  • CsClusterId: ID do cluster Kubernetes onde a aplicação foi criada.

  • AppName: Nome da aplicação.

Exemplos

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "LogicalRegionId": {
      "Type": "String",
      "Description": "The ID of the EDAS namespace. This parameter is required for a non-default namespace."
    },
    "NasId": {
      "Type": "String",
      "Description": "The ID of the Network Attached Storage (NAS) file system mounted to the container where the application is running. The NAS file system must be in the same region as the cluster. The NAS file system must have an available mount target, or have a mount\ntarget on the vSwitch in the virtual private cloud (VPC) where the application is located. If this parameter is not specified and the mountDescs field exists, a NAS file system is automatically purchased and mounted to the vSwitch in the VPC by default."
    },
    "Liveness": {
      "Type": "Json",
      "Description": "The liveness check on the container."
    },
    "IntranetSlbId": {
      "Type": "String",
      "Description": "The ID of the internal-facing SLB instance. If this parameter is not specified, Enterprise Distributed Application Service (EDAS) automatically purchases a new SLB instance for you."
    },
    "WebContainer": {
      "Type": "String",
      "Description": "The version of the Tomcat container on which the deployment package of the application depends. This parameter is applicable to Spring Cloud and Apache Dubbo applications that are deployed by using WAR packages. This parameter is not supported when you deploy an application by using images."
    },
    "LimitCpu": {
      "Type": "Number",
      "Description": "The maximum number of CPUs allowed for each application instance when the application\nis running. Unit: cores."
    },
    "SlsConfigs": {
      "Type": "Json",
      "Description": "The Logstore configurations."
    },
    "IntranetSlbProtocol": {
      "Type": "String",
      "Description": "The protocol of the internal-facing SLB instance. Valid values: TCP, HTTP, and HTTPS.",
      "AllowedValues": [
        "TCP",
        "HTTP",
        "HTTPS"
      ]
    },
    "PackageVersion": {
      "Type": "String",
      "Description": "The version of the deployment package. This parameter is required when the PackageType parameter is set to WAR or FatJar. You must specify a version.\nNote The version of SDK for Java or Python must be 2.44.0 or later."
    },
    "WebContainerConfig": {
      "Type": "Json",
      "Description": "The Tomcat container configuration."
    },
    "AppName": {
      "Type": "String",
      "Description": "The name of the application. The name must start with a letter and can contain digits,\nletters, and hyphens (-). It can be up to 36 characters in length."
    },
    "JDK": {
      "Type": "String",
      "Description": "The version of Java Development Kit (JDK) on which the deployment package of the application depends. \nValid values: Open JDK 7 and Open JDK 8. This parameter is not supported when you deploy an application by using images."
    },
    "InternetSlbId": {
      "Type": "String",
      "Description": "The ID of the Internet-facing SLB instance. If this parameter is not specified, EDAS automatically purchases a new SLB instance for you."
    },
    "PreStop": {
      "Type": "Json",
      "Description": "The pre-stop script. For example, {\"Exec\": {\"Command\": [\"ls\", \"/\"]}}."
    },
    "InternetSlbPort": {
      "Type": "Number",
      "Description": "The frontend port of the Internet-facing SLB instance. Valid values: 1 to 65535.",
      "MinValue": 1,
      "MaxValue": 65535
    },
    "Readiness": {
      "Type": "Json",
      "Description": "The readiness check on the container."
    },
    "DeployAcrossNodes": {
      "Type": "Boolean",
      "Description": "Specifies whether to distribute application instances to multiple nodes. The value true indicates yes, whereas other values indicate no.",
      "AllowedValues": [
        "True",
        "true",
        "False",
        "false"
      ]
    },
    "RequestsMem": {
      "Type": "Number",
      "Description": "The maximum amount of memory allowed for each application instance when the application\nis created. Unit: MB. The value 0 indicates no limit.",
      "MinValue": 0
    },
    "PackageType": {
      "Type": "String",
      "Description": "The type of the deployment package. Valid values: FatJar, WAR, and Image."
    },
    "UseBodyEncoding": {
      "Type": "Boolean",
      "Description": "Specifies whether useBodyEncodingForURI is enabled.\nNote If this parameter is not specified in application configuration, the default value\nfalse is applied.",
      "AllowedValues": [
        "True",
        "true",
        "False",
        "false"
      ]
    },
    "JavaStartUpConfig": {
      "Type": "Json",
      "Description": "The configuration of Java startup parameters for a Java application. These startup parameters involve the memory, application, garbage collection (GC) policy, tools, service registration and discovery, and custom configurations. Proper parameter settings help reduce the GC overhead, shorten the server response time, and improve the throughput.\nThe system automatically concatenates all startup values as the configuration of Java startup parameters for the application."
    },
    "IsMultilingualApp": {
      "Type": "Boolean",
      "Description": "Specifies whether the application is a multi-language application.",
      "AllowedValues": [
        "True",
        "true",
        "False",
        "false"
      ]
    },
    "RequestsCpu": {
      "Type": "Number",
      "Description": "The maximum number of CPUs allowed for each application instance when the application is created. Unit: cores. The value 0 indicates no limit.",
      "MinValue": 0
    },
    "CommandArgs": {
      "Type": "Json",
      "Description": "The collection of commands. For example, [{\"argument\":\"-c\"},{\"argument\":\"test\"}], where -c and test are two parameters that can be set."
    },
    "StorageType": {
      "Type": "String",
      "Description": "Only SSD is supported."
    },
    "ClusterId": {
      "Type": "String",
      "Description": "The cluster ID. You can query the cluster ID by calling the ListCluster operation.\nFor more information, see ListCluster."
    },
    "Timeout": {
      "Type": "Number",
      "Description": "The timeout interval of the change process. Unit: seconds.",
      "MinValue": 1
    },
    "Envs": {
      "Type": "Json",
      "Description": "The collection of deployment environment variables. For example, [{\"Name\":\"x\",\"Value\":\"y\"},{\"Name\":\"x2\",\"Value\":\"y2\"}]."
    },
    "ImageUrl": {
      "Type": "String",
      "Description": "The image URL. When PackageType is set to Image, this parameter is required."
    },
    "DeployAcrossZones": {
      "Type": "Boolean",
      "Description": "Specifies whether to distribute application instances to multiple zones. The value true indicates yes, whereas other values indicate no.",
      "AllowedValues": [
        "True",
        "true",
        "False",
        "false"
      ]
    },
    "PostStart": {
      "Type": "Json",
      "Description": "The post-start script. For example, {\"Exec\": {\"Command\": [\"ls\", \"/\"]}}."
    },
    "InternetTargetPort": {
      "Type": "Number",
      "Description": "The backend port of the internal-facing SLB instance, which is also the service port of the application.\nValid values: 1 to 65535.",
      "MinValue": 1,
      "MaxValue": 65535
    },
    "Replicas": {
      "Type": "Number",
      "Description": "The number of instances for the application that you want to create. Default: 1",
      "MinValue": 1,
      "Default": 1
    },
    "Namespace": {
      "Type": "String",
      "Description": "The namespace of the Kubernetes cluster. This parameter determines the Kubernetes namespace where your application is deployed. By default, this parameter is set to default."
    },
    "ApplicationDescription": {
      "Type": "String",
      "Description": "The description of the application."
    },
    "UriEncoding": {
      "Type": "String",
      "Description": "The uniform resource identifier (URI) encoding scheme. Valid values: ISO-8859-1, GBK, GB2312, and UTF-8.\nNote If this parameter is not specified in application configuration, the default URI encoding\nscheme in the Tomcat container is applied."
    },
    "IntranetTargetPort": {
      "Type": "Number",
      "Description": "The backend port of the internal-facing Server Load Balancer (SLB) instance, which is also the service port of the application. Valid values: 1 to 65535."
    },
    "MountDescs": {
      "Type": "Json",
      "Description": "The description of the NAS mounting configuration. For example, the value can be [{\"NasPath\": \"/k8s\",\"MountPath\": \"/mnt\"}, {\"NasPath\": \"/files\", \"MountPath\": \"/app/files\"}]."
    },
    "LocalVolume": {
      "Type": "Json",
      "Description": "The configuration for mounting host files to the container where the application is running. For example, the value can be [{\"type\":\"\", \"nodePath\":\"/localfiles\", \"mountPath\":\"/app/files\"}, {\"type\":\"Directory\", \"nodePath\":\"/mnt\", \"mountPath\":\"/app/storage\"}]."
    },
    "RuntimeClassName": {
      "Type": "String",
      "Description": "The type of the container runtime. This parameter is applicable only to clusters that use sandboxed containers."
    },
    "Command": {
      "Type": "String",
      "Description": "The command that is specified. If it is specified, it replaces the startup command in the image when the image is started."
    },
    "InternetSlbProtocol": {
      "Type": "String",
      "Description": "The protocol of the Internet-facing SLB instance. Valid values: TCP, HTTP, and HTTPS.",
      "AllowedValues": [
        "TCP",
        "HTTP",
        "HTTPS"
      ]
    },
    "EdasContainerVersion": {
      "Type": "String",
      "Description": "The version of EDAS Container on which the deployment package of the application depends.\nNote This parameter is not supported when you deploy an application by using images."
    },
    "PackageUrl": {
      "Type": "String",
      "Description": "The URL of the deployment package. This parameter must be set for the applications\nthat are deployed by using FatJar or WAR packages.\nNote The version of SDK for Java or Python must be 2.44.0 or later."
    },
    "IntranetSlbPort": {
      "Type": "Number",
      "Description": "The frontend port of the internal-facing SLB instance. Valid values: 1 to 65535.",
      "MinValue": 1,
      "MaxValue": 65535
    },
    "RepoId": {
      "Type": "String",
      "Description": "The ID of the image repository."
    },
    "EnableAhas": {
      "Type": "Boolean",
      "Description": "Specifies whether to enable access to Application High Availability Service (AHAS).",
      "AllowedValues": [
        "True",
        "true",
        "False",
        "false"
      ]
    },
    "LimitMem": {
      "Type": "Number",
      "Description": "The maximum amount of memory allowed for each application instance when the application is running. Unit: MB.",
      "MinValue": 1
    }
  },
  "Resources": {
    "K8sApplication": {
      "Type": "ALIYUN::EDAS::K8sApplication",
      "Properties": {
        "LogicalRegionId": {
          "Ref": "LogicalRegionId"
        },
        "NasId": {
          "Ref": "NasId"
        },
        "Liveness": {
          "Ref": "Liveness"
        },
        "IntranetSlbId": {
          "Ref": "IntranetSlbId"
        },
        "WebContainer": {
          "Ref": "WebContainer"
        },
        "LimitCpu": {
          "Ref": "LimitCpu"
        },
        "SlsConfigs": {
          "Ref": "SlsConfigs"
        },
        "IntranetSlbProtocol": {
          "Ref": "IntranetSlbProtocol"
        },
        "PackageVersion": {
          "Ref": "PackageVersion"
        },
        "WebContainerConfig": {
          "Ref": "WebContainerConfig"
        },
        "AppName": {
          "Ref": "AppName"
        },
        "JDK": {
          "Ref": "JDK"
        },
        "InternetSlbId": {
          "Ref": "InternetSlbId"
        },
        "PreStop": {
          "Ref": "PreStop"
        },
        "InternetSlbPort": {
          "Ref": "InternetSlbPort"
        },
        "Readiness": {
          "Ref": "Readiness"
        },
        "DeployAcrossNodes": {
          "Ref": "DeployAcrossNodes"
        },
        "RequestsMem": {
          "Ref": "RequestsMem"
        },
        "PackageType": {
          "Ref": "PackageType"
        },
        "UseBodyEncoding": {
          "Ref": "UseBodyEncoding"
        },
        "JavaStartUpConfig": {
          "Ref": "JavaStartUpConfig"
        },
        "IsMultilingualApp": {
          "Ref": "IsMultilingualApp"
        },
        "RequestsCpu": {
          "Ref": "RequestsCpu"
        },
        "CommandArgs": {
          "Ref": "CommandArgs"
        },
        "StorageType": {
          "Ref": "StorageType"
        },
        "ClusterId": {
          "Ref": "ClusterId"
        },
        "Timeout": {
          "Ref": "Timeout"
        },
        "Envs": {
          "Ref": "Envs"
        },
        "ImageUrl": {
          "Ref": "ImageUrl"
        },
        "DeployAcrossZones": {
          "Ref": "DeployAcrossZones"
        },
        "PostStart": {
          "Ref": "PostStart"
        },
        "InternetTargetPort": {
          "Ref": "InternetTargetPort"
        },
        "Replicas": {
          "Ref": "Replicas"
        },
        "Namespace": {
          "Ref": "Namespace"
        },
        "ApplicationDescription": {
          "Ref": "ApplicationDescription"
        },
        "UriEncoding": {
          "Ref": "UriEncoding"
        },
        "IntranetTargetPort": {
          "Ref": "IntranetTargetPort"
        },
        "MountDescs": {
          "Ref": "MountDescs"
        },
        "LocalVolume": {
          "Ref": "LocalVolume"
        },
        "RuntimeClassName": {
          "Ref": "RuntimeClassName"
        },
        "Command": {
          "Ref": "Command"
        },
        "InternetSlbProtocol": {
          "Ref": "InternetSlbProtocol"
        },
        "EdasContainerVersion": {
          "Ref": "EdasContainerVersion"
        },
        "PackageUrl": {
          "Ref": "PackageUrl"
        },
        "IntranetSlbPort": {
          "Ref": "IntranetSlbPort"
        },
        "RepoId": {
          "Ref": "RepoId"
        },
        "EnableAhas": {
          "Ref": "EnableAhas"
        },
        "LimitMem": {
          "Ref": "LimitMem"
        }
      }
    }
  },
  "Outputs": {
    "AppId": {
      "Description": "The ID of the application.",
      "Value": {
        "Fn::GetAtt": [
          "K8sApplication",
          "AppId"
        ]
      }
    },
    "ClusterId": {
      "Description": "The cluster ID of the application.",
      "Value": {
        "Fn::GetAtt": [
          "K8sApplication",
          "ClusterId"
        ]
      }
    },
    "ChangeOrderId": {
      "Description": "The ID of the change process.",
      "Value": {
        "Fn::GetAtt": [
          "K8sApplication",
          "ChangeOrderId"
        ]
      }
    },
    "CsClusterId": {
      "Description": "The K8s cluster ID of the application.",
      "Value": {
        "Fn::GetAtt": [
          "K8sApplication",
          "CsClusterId"
        ]
      }
    },
    "AppName": {
      "Description": "The name of the application.",
      "Value": {
        "Fn::GetAtt": [
          "K8sApplication",
          "AppName"
        ]
      }
    }
  }
}
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  AppName:
    Description: 'The name of the application. The name must start with a letter and
      can contain digits,

      letters, and hyphens (-). It can be up to 36 characters in length.'
    Type: String
  ApplicationDescription:
    Description: The description of the application.
    Type: String
  ClusterId:
    Description: 'The cluster ID. You can query the cluster ID by calling the ListCluster
      operation.

      For more information, see ListCluster.'
    Type: String
  Command:
    Description: The command that is specified. If it is specified, it replaces the
      startup command in the image when the image is started.
    Type: String
  CommandArgs:
    Description: The collection of commands. For example, [{"argument":"-c"},{"argument":"test"}],
      where -c and test are two parameters that can be set.
    Type: Json
  DeployAcrossNodes:
    AllowedValues:
    - 'True'
    - 'true'
    - 'False'
    - 'false'
    Description: Specifies whether to distribute application instances to multiple
      nodes. The value true indicates yes, whereas other values indicate no.
    Type: Boolean
  DeployAcrossZones:
    AllowedValues:
    - 'True'
    - 'true'
    - 'False'
    - 'false'
    Description: Specifies whether to distribute application instances to multiple
      zones. The value true indicates yes, whereas other values indicate no.
    Type: Boolean
  EdasContainerVersion:
    Description: 'The version of EDAS Container on which the deployment package of
      the application depends.

      Note This parameter is not supported when you deploy an application by using
      images.'
    Type: String
  EnableAhas:
    AllowedValues:
    - 'True'
    - 'true'
    - 'False'
    - 'false'
    Description: Specifies whether to enable access to Application High Availability
      Service (AHAS).
    Type: Boolean
  Envs:
    Description: The collection of deployment environment variables. For example,
      [{"Name":"x","Value":"y"},{"Name":"x2","Value":"y2"}].
    Type: Json
  ImageUrl:
    Description: The image URL. When PackageType is set to Image, this parameter is
      required.
    Type: String
  InternetSlbId:
    Description: The ID of the Internet-facing SLB instance. If this parameter is
      not specified, EDAS automatically purchases a new SLB instance for you.
    Type: String
  InternetSlbPort:
    Description: 'The frontend port of the Internet-facing SLB instance. Valid values:
      1 to 65535.'
    MaxValue: 65535
    MinValue: 1
    Type: Number
  InternetSlbProtocol:
    AllowedValues:
    - TCP
    - HTTP
    - HTTPS
    Description: 'The protocol of the Internet-facing SLB instance. Valid values:
      TCP, HTTP, and HTTPS.'
    Type: String
  InternetTargetPort:
    Description: 'The backend port of the internal-facing SLB instance, which is also
      the service port of the application.

      Valid values: 1 to 65535.'
    MaxValue: 65535
    MinValue: 1
    Type: Number
  IntranetSlbId:
    Description: The ID of the internal-facing SLB instance. If this parameter is
      not specified, Enterprise Distributed Application Service (EDAS) automatically
      purchases a new SLB instance for you.
    Type: String
  IntranetSlbPort:
    Description: 'The frontend port of the internal-facing SLB instance. Valid values:
      1 to 65535.'
    MaxValue: 65535
    MinValue: 1
    Type: Number
  IntranetSlbProtocol:
    AllowedValues:
    - TCP
    - HTTP
    - HTTPS
    Description: 'The protocol of the internal-facing SLB instance. Valid values:
      TCP, HTTP, and HTTPS.'
    Type: String
  IntranetTargetPort:
    Description: 'The backend port of the internal-facing Server Load Balancer (SLB)
      instance, which is also the service port of the application. Valid values: 1
      to 65535.'
    Type: Number
  IsMultilingualApp:
    AllowedValues:
    - 'True'
    - 'true'
    - 'False'
    - 'false'
    Description: Specifies whether the application is a multi-language application.
    Type: Boolean
  JDK:
    Description: "The version of Java Development Kit (JDK) on which the deployment\
      \ package of the application depends. \nValid values: Open JDK 7 and Open JDK\
      \ 8. This parameter is not supported when you deploy an application by using\
      \ images."
    Type: String
  JavaStartUpConfig:
    Description: 'The configuration of Java startup parameters for a Java application.
      These startup parameters involve the memory, application, garbage collection
      (GC) policy, tools, service registration and discovery, and custom configurations.
      Proper parameter settings help reduce the GC overhead, shorten the server response
      time, and improve the throughput.

      The system automatically concatenates all startup values as the configuration
      of Java startup parameters for the application.'
    Type: Json
  LimitCpu:
    Description: 'The maximum number of CPUs allowed for each application instance
      when the application

      is running. Unit: cores.'
    Type: Number
  LimitMem:
    Description: 'The maximum amount of memory allowed for each application instance
      when the application is running. Unit: MB.'
    MinValue: 1
    Type: Number
  Liveness:
    Description: The liveness check on the container.
    Type: Json
  LocalVolume:
    Description: The configuration for mounting host files to the container where
      the application is running. For example, the value can be [{"type":"", "nodePath":"/localfiles",
      "mountPath":"/app/files"}, {"type":"Directory", "nodePath":"/mnt", "mountPath":"/app/storage"}].
    Type: Json
  LogicalRegionId:
    Description: The ID of the EDAS namespace. This parameter is required for a non-default
      namespace.
    Type: String
  MountDescs:
    Description: 'The description of the NAS mounting configuration. For example,
      the value can be [{"NasPath": "/k8s","MountPath": "/mnt"}, {"NasPath": "/files",
      "MountPath": "/app/files"}].'
    Type: Json
  Namespace:
    Description: The namespace of the Kubernetes cluster. This parameter determines
      the Kubernetes namespace where your application is deployed. By default, this
      parameter is set to default.
    Type: String
  NasId:
    Description: 'The ID of the Network Attached Storage (NAS) file system mounted
      to the container where the application is running. The NAS file system must
      be in the same region as the cluster. The NAS file system must have an available
      mount target, or have a mount

      target on the vSwitch in the virtual private cloud (VPC) where the application
      is located. If this parameter is not specified and the mountDescs field exists,
      a NAS file system is automatically purchased and mounted to the vSwitch in the
      VPC by default.'
    Type: String
  PackageType:
    Description: 'The type of the deployment package. Valid values: FatJar, WAR, and
      Image.'
    Type: String
  PackageUrl:
    Description: 'The URL of the deployment package. This parameter must be set for
      the applications

      that are deployed by using FatJar or WAR packages.

      Note The version of SDK for Java or Python must be 2.44.0 or later.'
    Type: String
  PackageVersion:
    Description: 'The version of the deployment package. This parameter is required
      when the PackageType parameter is set to WAR or FatJar. You must specify a version.

      Note The version of SDK for Java or Python must be 2.44.0 or later.'
    Type: String
  PostStart:
    Description: 'The post-start script. For example, {"Exec": {"Command": ["ls",
      "/"]}}.'
    Type: Json
  PreStop:
    Description: 'The pre-stop script. For example, {"Exec": {"Command": ["ls", "/"]}}.'
    Type: Json
  Readiness:
    Description: The readiness check on the container.
    Type: Json
  Replicas:
    Default: 1
    Description: 'The number of instances for the application that you want to create.
      Default: 1'
    MinValue: 1
    Type: Number
  RepoId:
    Description: The ID of the image repository.
    Type: String
  RequestsCpu:
    Description: 'The maximum number of CPUs allowed for each application instance
      when the application is created. Unit: cores. The value 0 indicates no limit.'
    MinValue: 0
    Type: Number
  RequestsMem:
    Description: 'The maximum amount of memory allowed for each application instance
      when the application

      is created. Unit: MB. The value 0 indicates no limit.'
    MinValue: 0
    Type: Number
  RuntimeClassName:
    Description: The type of the container runtime. This parameter is applicable only
      to clusters that use sandboxed containers.
    Type: String
  SlsConfigs:
    Description: The Logstore configurations.
    Type: Json
  StorageType:
    Description: Only SSD is supported.
    Type: String
  Timeout:
    Description: 'The timeout interval of the change process. Unit: seconds.'
    MinValue: 1
    Type: Number
  UriEncoding:
    Description: 'The uniform resource identifier (URI) encoding scheme. Valid values:
      ISO-8859-1, GBK, GB2312, and UTF-8.

      Note If this parameter is not specified in application configuration, the default
      URI encoding

      scheme in the Tomcat container is applied.'
    Type: String
  UseBodyEncoding:
    AllowedValues:
    - 'True'
    - 'true'
    - 'False'
    - 'false'
    Description: 'Specifies whether useBodyEncodingForURI is enabled.

      Note If this parameter is not specified in application configuration, the default
      value

      false is applied.'
    Type: Boolean
  WebContainer:
    Description: The version of the Tomcat container on which the deployment package
      of the application depends. This parameter is applicable to Spring Cloud and
      Apache Dubbo applications that are deployed by using WAR packages. This parameter
      is not supported when you deploy an application by using images.
    Type: String
  WebContainerConfig:
    Description: The Tomcat container configuration.
    Type: Json
Resources:
  K8sApplication:
    Properties:
      AppName:
        Ref: AppName
      ApplicationDescription:
        Ref: ApplicationDescription
      ClusterId:
        Ref: ClusterId
      Command:
        Ref: Command
      CommandArgs:
        Ref: CommandArgs
      DeployAcrossNodes:
        Ref: DeployAcrossNodes
      DeployAcrossZones:
        Ref: DeployAcrossZones
      EdasContainerVersion:
        Ref: EdasContainerVersion
      EnableAhas:
        Ref: EnableAhas
      Envs:
        Ref: Envs
      ImageUrl:
        Ref: ImageUrl
      InternetSlbId:
        Ref: InternetSlbId
      InternetSlbPort:
        Ref: InternetSlbPort
      InternetSlbProtocol:
        Ref: InternetSlbProtocol
      InternetTargetPort:
        Ref: InternetTargetPort
      IntranetSlbId:
        Ref: IntranetSlbId
      IntranetSlbPort:
        Ref: IntranetSlbPort
      IntranetSlbProtocol:
        Ref: IntranetSlbProtocol
      IntranetTargetPort:
        Ref: IntranetTargetPort
      IsMultilingualApp:
        Ref: IsMultilingualApp
      JDK:
        Ref: JDK
      JavaStartUpConfig:
        Ref: JavaStartUpConfig
      LimitCpu:
        Ref: LimitCpu
      LimitMem:
        Ref: LimitMem
      Liveness:
        Ref: Liveness
      LocalVolume:
        Ref: LocalVolume
      LogicalRegionId:
        Ref: LogicalRegionId
      MountDescs:
        Ref: MountDescs
      Namespace:
        Ref: Namespace
      NasId:
        Ref: NasId
      PackageType:
        Ref: PackageType
      PackageUrl:
        Ref: PackageUrl
      PackageVersion:
        Ref: PackageVersion
      PostStart:
        Ref: PostStart
      PreStop:
        Ref: PreStop
      Readiness:
        Ref: Readiness
      Replicas:
        Ref: Replicas
      RepoId:
        Ref: RepoId
      RequestsCpu:
        Ref: RequestsCpu
      RequestsMem:
        Ref: RequestsMem
      RuntimeClassName:
        Ref: RuntimeClassName
      SlsConfigs:
        Ref: SlsConfigs
      StorageType:
        Ref: StorageType
      Timeout:
        Ref: Timeout
      UriEncoding:
        Ref: UriEncoding
      UseBodyEncoding:
        Ref: UseBodyEncoding
      WebContainer:
        Ref: WebContainer
      WebContainerConfig:
        Ref: WebContainerConfig
    Type: ALIYUN::EDAS::K8sApplication
Outputs:
  AppId:
    Description: The ID of the application.
    Value:
      Fn::GetAtt:
      - K8sApplication
      - AppId
  AppName:
    Description: The name of the application.
    Value:
      Fn::GetAtt:
      - K8sApplication
      - AppName
  ChangeOrderId:
    Description: The ID of the change process.
    Value:
      Fn::GetAtt:
      - K8sApplication
      - ChangeOrderId
  ClusterId:
    Description: The cluster ID of the application.
    Value:
      Fn::GetAtt:
      - K8sApplication
      - ClusterId
  CsClusterId:
    Description: The K8s cluster ID of the application.
    Value:
      Fn::GetAtt:
      - K8sApplication
      - CsClusterId