Cria uma aplicação em um cluster Kubernetes ou em um cluster Serverless Kubernetes.
Experimente agora
Experimente esta API no OpenAPI Explorer, sem necessidade de assinatura manual. Chamadas bem-sucedidas geram automaticamente código SDK correspondente aos seus parâmetros. Faça o download com segurança de credenciais integrada para uso local.Experimente esta API no OpenAPI Explorer, sem necessidade de assinatura manual. Chamadas bem-sucedidas geram automaticamente código SDK correspondente aos seus parâmetros. Faça o download com segurança de credenciais integrada para uso local.
Testar
Autorização RAM
|
Ação |
Nível de acesso |
Tipo de recurso |
Chave de condição |
Ação dependente |
|
edas:CreateApplication |
create |
*All Resource
|
Nenhuma | Nenhuma |
Sintaxe da solicitação
POST /pop/v5/k8s/acs/create_k8s_app HTTP/1.1
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
Exemplo |
| IntranetTargetPort |
integer |
Não |
A porta de backend da instância SLB voltada para a rede interna. Esta também é a porta de serviço da aplicação. O valor deve estar no intervalo de 1 a 65535. |
80 |
| IntranetSlbPort |
integer |
Não |
A porta de frontend da instância SLB voltada para a rede interna. O valor deve estar no intervalo de 1 a 65535. |
80 |
| ImageUrl |
string |
Não |
O endereço da imagem. Este parâmetro é obrigatório quando você define PackageType como Image. |
registry.cn-beijing.aliyuncs.com/****_test/****-cons****:1.0 |
| ApplicationDescription |
string |
Não |
A descrição da aplicação. |
Production Environment |
| RepoId |
string |
Não |
O ID do repositório de imagens. |
ced******** |
| Replicas |
integer |
Não |
O número de instâncias da aplicação. |
4 |
| LimitCpu |
integer |
Não |
O número máximo de núcleos de CPU que podem ser usados por uma instância da aplicação. Se você especificar LimitmCpu, este parâmetro será ignorado. |
4 |
| LimitMem |
integer |
Não |
A quantidade máxima de memória que pode ser usada por uma instância da aplicação. Unidade: MB. O valor de LimitMem deve ser maior ou igual ao valor de RequestsMem. |
2 |
| RequestsCpu |
integer |
Não |
O número de núcleos de CPU solicitados para uma instância da aplicação na criação. Unidade: núcleos. Um valor de 0 significa sem limite. Se você especificar RequestsmCpu, este parâmetro será ignorado. |
0 |
| RequestsMem |
integer |
Não |
A quantidade de memória solicitada para uma instância da aplicação na criação. Unidade: MB. Um valor de 0 significa sem limite. O valor de RequestsMem não pode ser maior que o valor de LimitMem. |
0 |
| Command |
string |
Não |
O comando de inicialização da aplicação. Se você definir este parâmetro, o comando de inicialização original da imagem será substituído. |
ls |
| CommandArgs |
string |
Não |
Os argumentos para o comando de inicialização. Os argumentos são uma matriz JSON de strings. Exemplo: |
[{"argument":"-lh"}] |
| AppName |
string |
Sim |
O nome da aplicação. O nome deve começar com uma letra e pode conter dígitos, letras e hifens (-). O nome pode ter até 36 caracteres. |
doc-test |
| IntranetSlbProtocol |
string |
Não |
O protocolo usado pela instância SLB voltada para a rede interna. Valores válidos: TCP, HTTP e HTTPS. |
TCP |
| IntranetSlbId |
string |
Não |
O ID da instância SLB voltada para a rede interna. Se você não especificar este parâmetro, o EDAS adquirirá automaticamente uma nova instância SLB para você. |
ae93******** |
| ClusterId |
string |
Sim |
O ID do cluster. Você pode chamar a operação ListCluster para consultar o ID do cluster. Para mais informações, consulte ListCluster. |
c9cd**** |
| InternetSlbId |
string |
Não |
O ID da instância SLB voltada para a internet. Se você não especificar este parâmetro, o EDAS adquirirá automaticamente uma nova instância SLB para você. |
a3d4******** |
| InternetSlbProtocol |
string |
Não |
O protocolo usado pela instância SLB voltada para a internet. Valores válidos: TCP, HTTP e HTTPS. |
TCP |
| InternetSlbPort |
integer |
Não |
A porta de frontend da instância SLB voltada para a internet. O valor deve estar no intervalo de 1 a 65535. |
80 |
| InternetTargetPort |
integer |
Não |
A porta de backend da instância SLB interna, que também serve como porta de serviço para a aplicação. O número da porta deve ser um número inteiro de 1 a 65535. |
8080 |
| Envs |
string |
Não |
As variáveis de ambiente para a implantação. O valor deve ser uma matriz JSON de objetos. Três tipos de variáveis de ambiente são suportados: variáveis de ambiente regulares, variáveis de ambiente ConfigMap do Kubernetes e variáveis de ambiente Secret do Kubernetes. O formato de uma variável de ambiente regular é o seguinte:
Você pode usar um ConfigMap para injetar o valor de uma chave específica em uma variável de ambiente do contêiner. O formato é o seguinte:
Você pode usar um Secret para injetar o valor de uma chave específica em uma variável de ambiente do contêiner. O formato é o seguinte:
Nota
Para limpar esta configuração, defina o valor como uma matriz JSON vazia ([]). |
[{"name":"x1","value":"y1"},{"name":"x2","valueFrom":{"configMapKeyRef":{"name":"my-config","key":"y2"}}},{"name":"x3","valueFrom":{"secretKeyRef":{"name":"my-secret","key":"y3"}}}] |
| PreStop |
string |
Não |
O script que é executado antes que o contêiner seja interrompido. Exemplo: Para limpar esta configuração, defina o valor como |
{\"exec\":{\"command\":[\"ls\",\"/\"]}}" |
| PostStart |
string |
Não |
O script que é executado após o contêiner ser iniciado. Exemplo: Para limpar esta configuração, defina o valor como |
{\"exec\":{\"command\":[\"ls\",\"/\"]}}" |
| Liveness |
string |
Não |
A sonda de liveness do contêiner. Exemplo: Para limpar esta configuração, defina o valor como |
{"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"tcpSocket":{"host":"", "port":8080}} |
| Readiness |
string |
Não |
A sonda de readiness do contêiner. Se a verificação falhar, o tráfego não será roteado para o contêiner através do Kubernetes Service. Exemplo: Para limpar esta configuração, defina o valor como |
{"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"httpGet": {"path": "/consumer","port": 8080,"scheme": "HTTP","httpHeaders": [{"name": "test","value": "testvalue"}]}} |
| NasId |
string |
Não |
O ID do sistema de arquivos NAS que você deseja montar. Se você não especificar este parâmetro, mas mountDescs for especificado, um novo sistema de arquivos NAS será adquirido automaticamente e montado em um vSwitch na VPC. |
dfs23**** |
| MountDescs |
string |
Não |
A descrição da configuração de montagem. O valor é uma string JSON serializada. Exemplo: |
[{"nasPath": "/k8s","mountPath": "/mnt"},{"nasPath": "/files","mountPath": "/app/files"}] |
| StorageType |
string |
Não |
O tipo de armazenamento do sistema de arquivos NAS. Valores válidos:
Atualmente, apenas o tipo Performance é suportado. |
Performance |
| LocalVolume |
string |
Não |
A configuração para montar um arquivo do host em um contêiner. Exemplo:
|
[{"type":"","nodePath":"/localfiles","mountPath":"/app/files"},{"type":"Directory","nodePath":"/mnt","mountPath":"/app/storage"}] |
| Namespace |
string |
Não |
O namespace do cluster Kubernetes. Este parâmetro determina o namespace do Kubernetes no qual sua aplicação será implantada. O valor padrão é default. |
default |
| LogicalRegionId |
string |
Não |
O ID do namespace do EDAS. Este parâmetro é obrigatório se você deseja usar um namespace não padrão. |
cn-shenzhen:beta**** |
| PackageType |
string |
Não |
O tipo do pacote da aplicação. Valores válidos: FatJar, WAR e Image. |
WAR |
| PackageUrl |
string |
Não |
A URL do pacote de implantação. Este parâmetro é obrigatório para aplicações implantadas usando um pacote FatJar ou WAR. Nota
A versão do SDK da API POP do EDAS para Java ou Python deve ser 2.44.0 ou posterior. |
https://e***.oss-cn-beijing.aliyuncs.com/s***-1.0-SNAPSHOT-spring-boot.jar |
| PackageVersion |
string |
Não |
O número da versão do pacote de implantação. Este parâmetro é obrigatório para pacotes WAR e FatJar. Você pode definir o significado do número da versão. Nota
A versão do SDK da API POP do EDAS para Java ou Python deve ser 2.44.0 ou posterior. |
20200720 |
| JDK |
string |
Não |
A versão do Java Development Kit (JDK) da qual o pacote de implantação depende. Valores válidos: Open JDK 7, Open JDK 8 e Custom OpenJDK. Este parâmetro não é suportado para implantações baseadas em imagem. Se você selecionar Custom OpenJDK, também deverá especificar o parâmetro UserBaseImageUrl. |
Open JDK 8 |
| WebContainer |
string |
Não |
A versão do contêiner Tomcat da qual o pacote de implantação depende. Este parâmetro é aplicável a aplicações Spring Cloud e Dubbo implantadas usando um pacote WAR. Este parâmetro não é suportado para implantações baseadas em imagem. |
apache-tomcat-7.0.91 |
| EdasContainerVersion |
string |
Não |
A versão do EDAS-Container da qual o pacote de implantação depende. Nota
Este parâmetro não é suportado para implantações baseadas em imagem. |
3.5.9 |
| UriEncoding |
string |
Não |
O esquema de codificação URI. Valores válidos: ISO-8859-1, GBK, GB2312 e UTF-8. Nota
Se você não definir este parâmetro para a aplicação, o valor padrão do Tomcat será usado. |
GBK |
| UseBodyEncoding |
boolean |
Não |
Especifica se deve ativar useBodyEncodingForURI. Nota
Se você não definir este parâmetro para a aplicação, o valor padrão false será usado. |
false |
| RequestsmCpu |
integer |
Não |
O número de núcleos de CPU solicitados para uma instância da aplicação na criação. Unidade: milicores. |
500 |
| LimitmCpu |
integer |
Não |
O número máximo de núcleos de CPU que podem ser usados por uma instância da aplicação. Unidade: milicores. Um valor de 0 significa sem limite. |
1000 |
| RuntimeClassName |
string |
Não |
O tipo de runtime do contêiner. Este parâmetro é aplicável apenas a clusters que usam contêineres em sandbox. |
runc |
| DeployAcrossZones |
string |
Não |
Especifica se deve distribuir instâncias da aplicação para múltiplas zonas. Um valor de true significa sim. Outros valores significam não. |
true |
| Timeout |
integer |
Não |
O período de tempo limite para o processo de alteração. Unidade: segundos. O valor deve estar no intervalo de 1 a 1800. Se você não especificar este parâmetro, o valor padrão 1800 será usado. |
60 |
| EnableAhas |
boolean |
Não |
Especifica se deve ativar o Application High Availability Service (AHAS):
|
true |
| WebContainerConfig |
string |
Não |
A configuração do contêiner Tomcat. Para limpar a configuração, defina o valor como "" ou "{}":
|
{"useDefaultConfig":false,"contextInputType":"custom","contextPath":"hello","httpPort":8088,"maxThreads":400,"uriEncoding":"UTF-8","useBodyEncoding":true,"useAdvancedServerXml":false} |
| JavaStartUpConfig |
string |
Não |
Os parâmetros de inicialização do Java. Você pode configurar parâmetros de inicialização para uma aplicação Java. Você pode configurar memória, aplicação, política de coleta de lixo (GC), ferramentas, registro e descoberta de serviços, e parâmetros personalizados. A configuração adequada de parâmetros ajuda a reduzir a sobrecarga de GC, encurtar o tempo de resposta do servidor e melhorar a taxa de transferência. O valor é uma string JSON. original especifica o valor da configuração, e startup especifica o parâmetro de inicialização. O sistema concatena automaticamente todos os valores de startup como os parâmetros de inicialização do Java para a aplicação. Para limpar a configuração, defina o valor como
|
{"InitialHeapSize":{"original":512,"startup":"-Xms512m"},"MaxHeapSize":{"original":1024,"startup":"-Xmx1024m"},"CustomParams":{"original":"-Dcustom.property.sample=false","startup":"-Dcustom.property.sample=false"}} |
| SlsConfigs |
string |
Não |
A configuração do Logstore. Para limpar a configuração, defina o valor como
|
[{"logstore":"thisisanotherfilelog","type":"file","logDir":"/var/log/*"},{"logstore":"","type":"stdout","logDir":"stdout.log"},{"logstore":"thisisafilelog","type":"file","logDir":"/tmp/log/*"}] |
| IsMultilingualApp |
boolean |
Não |
Especifica se a aplicação é uma aplicação multilíngue. |
true |
| DeployAcrossNodes |
string |
Não |
Especifica se deve distribuir instâncias da aplicação para múltiplos nós. Um valor de true significa sim. Outros valores significam não. |
true |
| PvcMountDescs |
string |
Não |
A configuração para montar um Kubernetes PersistentVolumeClaim (PVC). Você pode montar um volume PVC do Kubernetes em um diretório especificado em um contêiner. Os seguintes parâmetros estão incluídos em PvcMountDescs:
|
[{"pvcName":"nas-pvc-1","mountPaths":[{"mountPath":"/usr/share/nginx/data"},{"mountPath":"/usr/share/nginx/html","readOnly":true}]}] |
| ConfigMountDescs |
string |
Não |
A configuração para montar ConfigMaps e Secrets do Kubernetes. Você pode montar ConfigMaps e Secrets em diretórios especificados em um contêiner. Os seguintes parâmetros estão incluídos em ConfigMountDescs:
|
[{"name":"nginx-config","type":"ConfigMap","mountPath":"/etc/nginx"},{"name":"tls-secret","type":"secret","mountPath":"/etc/ssh"}] |
| CsClusterId |
string |
Não |
Você deve especificar CsClusterId apenas quando criar uma aplicação em um cluster que nunca foi importado. |
abcdefg |
| EnableAsm |
boolean |
Não |
Você deve definir este parâmetro como true apenas quando criar uma aplicação em um cluster que nunca foi importado e ativar o Service Mesh (ASM). |
false |
| EnvFroms |
string |
Não |
A configuração para variáveis de ambiente do tipo Kubernetes EnvFrom. Você pode montar um ConfigMap ou Secret especificado em um diretório especificado. Cada chave corresponde a um arquivo no diretório. O conteúdo do arquivo é o valor da chave. Os seguintes parâmetros estão incluídos em EnvFroms:
|
[{"name":"appname","valueFrom":{"configMapKeyRef":{"name":"appconf","key":"name"}}}] |
| EmptyDirs |
string |
Não |
A configuração para montar um volume emptyDir do Kubernetes. Você pode montar um volume emptyDir em um diretório especificado em um contêiner. Os seguintes parâmetros estão incluídos em EmptyDirs:
|
[{"mountPath":"/app-log","subPathExpr":"$(POD_IP)"},{"readOnly":true,"mountPath":"/etc/nginx"}] |
| BuildPackId |
string |
Não |
A versão do EDAS Container. Este parâmetro entra em conflito com EdasContainerVersion. Use o parâmetro EdasContainerVersion em seu lugar. |
-1 |
| CustomAffinity |
string |
Não |
A afinidade personalizada. |
demo |
| CustomTolerations |
string |
Não |
As tolerâncias personalizadas. |
demo |
| ResourceGroupId |
string |
Não |
O ID do grupo de recursos. |
461 |
| Annotations |
string |
Não |
As anotações do pod da aplicação. |
{"annotation-name-1":"annotation-value-1","annotation-name-2":"annotation-value-2"} |
| Labels |
string |
Não |
Os labels do pod da aplicação. |
{"label-name-1":"label-value-1","label-name-2":"label-value-2"} |
| EnableEmptyPushReject |
boolean |
Não |
Especifica se deve ativar a proteção contra pushes vazios:
|
false |
| EnableLosslessRule |
boolean |
Não |
Especifica se deve ativar a regra de inicialização graceful:
|
true |
| LosslessRuleWarmupTime |
integer |
Não |
A duração do warm-up do serviço. Unidade: segundos. O valor deve estar no intervalo de 0 a 86400. |
120 |
| LosslessRuleDelayTime |
integer |
Não |
O atraso do registro de serviço. Unidade: segundos. O valor deve estar no intervalo de 0 a 86400. |
0 |
| LosslessRuleFuncType |
integer |
Não |
A curva de warm-up do serviço. O valor deve estar no intervalo de 0 a 20. Valor padrão: 2. Este valor é adequado para cenários normais de warm-up e indica que o tráfego que o provedor de serviço recebe segue uma curva quadrática durante o período de warm-up. |
2 |
| LosslessRuleAligned |
boolean |
Não |
Especifica se deve ativar o modo de implantação rolling graceful no qual o registro de serviço é concluído antes que a sonda de readiness seja aprovada:
|
false |
| LosslessRuleRelated |
boolean |
Não |
Especifica se deve ativar o modo de implantação rolling graceful no qual o warm-up do serviço é concluído antes que a sonda de readiness seja aprovada:
|
false |
| ServiceConfigs |
string |
Não |
A configuração do Kubernetes Service. |
[{"name": "test-svc-create","serviceType":"ClusterIP","portMappings":[{"servicePort": {"targetPort":8080,"port":80,"protocol":"TCP"}}]}] |
| AppTemplateName |
string |
Não |
O nome do modelo de aplicação usado para criar a aplicação. Se você especificar um modelo de aplicação ao criar a aplicação, o modelo de aplicação e o parâmetro AppConfig serão usados preferencialmente para determinar a configuração da aplicação. Outras configurações são ignoradas. |
app-template001 |
| AppConfig |
string |
Não |
A configuração da aplicação quando um modelo de aplicação é usado. O valor é uma string JSON. |
{} |
| LimitEphemeralStorage |
integer |
Não |
O armazenamento efêmero máximo. Unidade: GB. Um valor de 0 significa sem limite. |
4 |
| RequestsEphemeralStorage |
integer |
Não |
O armazenamento efêmero mínimo. Unidade: GB. Um valor de 0 significa sem limite. |
2 |
| SecretName |
string |
Não |
O nome do secret de pull de imagem. Você deve criar o secret. |
edas-app-01-image-secret |
| ContainerRegistryId |
string |
Não |
O ID do repositório usado para construir o repositório de imagens. Se você deixar este parâmetro vazio, o repositório padrão fornecido pelo EDAS será usado. Atualmente, apenas o repositório padrão fornecido pelo EDAS é suportado. |
leave empty |
| WorkloadType |
string |
Não |
O tipo de workload. Atualmente, apenas deployments são suportados. |
Deployment |
| Sidecars |
string |
Não |
Os contêineres sidecar para o pod da aplicação. Você pode definir a configuração do contêiner no formato YAML. O valor é a configuração YAML do contêiner sidecar codificada em Base64. |
[{"yamlEncoded":"Y29tbWFuZDoKICAtIHRhaWwKICAtICctZicKICAtIC9kZXYvbnVsbAppbWFnZTogJ2J1c3lib3g6bGF0ZXN0JwpuYW1lOiBidXN5Ym94Cg=="}] |
| InitContainers |
string |
Não |
Os contêineres de inicialização para o pod da aplicação. Você pode definir a configuração do contêiner no formato YAML. O valor é a configuração YAML do contêiner de inicialização codificada em Base64. |
[ { "yamlEncoded": "Y29tbWFuZDoKICAtIHNsZWVwCiAgLSAnNjAnCmltYWdlOiAnYnVzeWJveDpsYXRlc3QnCm5hbWU6IGluaXQtYnVzeWJveAo=" } ] |
| UserBaseImageUrl |
string |
Não |
Se você usar um runtime JDK personalizado, deverá configurar o endereço da imagem base. O endereço deve ser acessível pela internet. O servidor EDAS faz o pull da imagem para construir uma imagem de aplicação. |
openjdk:8u302 |
| TerminateGracePeriod |
integer |
Não |
O período de tempo limite para uma parada graceful. Unidade: segundos. |
120 |
| ImagePlatforms |
string |
Não |
A arquitetura da plataforma de imagem. Este parâmetro é válido quando você usa um pacote WAR ou JAR para implantação. Exemplos:
|
linux/arm64,linux/amd64 |
| Startup |
string |
Não |
A sonda de inicialização. Você pode usar uma sonda de inicialização para verificar a integridade de um contêiner de inicialização lenta e evitar que o contêiner seja encerrado antes de ser iniciado. Exemplo: {"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"httpGet": {"path": "/consumer","port": 8080,"scheme": "HTTP","httpHeaders": [{"name": "test","value": "testvalue"}]}}. Para limpar esta configuração, defina o valor como "" ou {}. Se você não definir este parâmetro, ele será ignorado. |
{"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"tcpSocket":{"host":"", "port":8080}} |
| FeatureConfig |
string |
Não |
A configuração da solução personalizada de monitoramento e administração. |
{"features":[{"name":"base.combination.arms","enable":true},{"name":"base.combination.mse","enable":true}]} |
| CustomAgentVersion |
string |
Não |
A versão do agente. |
2.8.3,3.2.10,4.3.1 |
| SecurityContext |
string |
Não |
O atributo SecurityContext para o contêiner do pod da aplicação. O valor é a configuração YAML do SecurityContext codificada em Base64. |
{"yamlEncoded":"cnVuQXNVc2VyOiAwCnJ1bkFzR3JvdXA6IDA="} |
Elementos de resposta
|
Elemento |
Tipo |
Descrição |
Exemplo |
|
object |
A resposta à solicitação. |
||
| Code |
integer |
O código de status da interface ou o código de erro POP. |
200 |
| Message |
string |
As informações adicionais. |
success |
| RequestId |
string |
O ID da solicitação. |
b197-40ab-9155-**** |
| ApplicationInfo |
object |
Os detalhes da aplicação. |
|
| ChangeOrderId |
string |
O ID do processo de alteração. Você pode chamar a operação GetChangeOrderInfo para consultar o ID. Para mais informações, consulte GetChangeOrderInfo. |
cd65b247-****-475b-ad4b-7039040d625c |
| AppName |
string |
O nome da aplicação. |
test |
| Dockerize |
boolean |
Indica se a aplicação é uma aplicação Docker.
|
true |
| Owner |
string |
O proprietário da aplicação. |
zp |
| EdasId |
string |
O ID da conta de usuário. |
1172****6608**** |
| ClusterType |
integer |
O tipo de cluster no qual a aplicação está implantada.
|
5 |
| AppId |
string |
O ID da aplicação. Você pode chamar a operação ListApplication para consultar o ID da aplicação. Para mais informações, consulte ListApplication. |
e83acea6-****-47e1-96ae-c0e95377**** |
| UserId |
string |
A conta Alibaba Cloud usada para criar a aplicação. |
edas_test****@aliyun****.com |
| RegionId |
string |
O ID da região. |
cn-beijing |
Exemplos
Resposta de sucesso
JSON formato
{
"Code": 200,
"Message": "success",
"RequestId": "b197-40ab-9155-****",
"ApplicationInfo": {
"ChangeOrderId": "cd65b247-****-475b-ad4b-7039040d625c",
"AppName": "test",
"Dockerize": true,
"Owner": "zp",
"EdasId": "1172****6608****",
"ClusterType": 5,
"AppId": "e83acea6-****-47e1-96ae-c0e95377****",
"UserId": "edas_test****@aliyun****.com",
"RegionId": "cn-beijing"
}
}
Códigos de erro
Consulte Códigos de ErroCódigos de Erro para uma lista completa.
Notas de versão
Consulte Notas de VersãoNotas de Versão para uma lista completa.