Para automatizar implantações de aplicativos no Enterprise Distributed Application Service (EDAS) — por exemplo, a partir de um pipeline de CI/CD ou script de provisionamento — use o Alibaba Cloud CLI. Essa ferramenta permite criar namespaces, clusters e aplicativos, além de implantar pacotes WAR ou JAR diretamente do terminal.
O EDAS oferece suporte a aplicativos Spring Cloud, Dubbo e High-speed Service Framework (HSF) por meio de seus SDKs e API.
Visão geral do fluxo de trabalho
A implantação de um aplicativo em um cluster Elastic Compute Service (ECS) envolve as seguintes operações principais de API:
|
Etapa |
API |
Finalidade |
|
1 |
|
Criar um namespace de microsserviços como limite de isolamento lógico para seus serviços |
|
2 |
|
Criar um cluster ECS como grupo de recursos para hospedar seus aplicativos |
|
3 |
|
Importar uma instância ECS existente para o cluster |
|
4 |
|
Registrar o aplicativo no EDAS |
|
5 |
|
Carregar um pacote WAR ou JAR no Object Storage Service (OSS) e acionar a implantação |
As seções a seguir detalham cada etapa.
Pré-requisitos
Antes de começar, verifique se você tem:
Uma instância ECS em execução. Para mais informações, consulte Criar uma instância ECS
-
O Alibaba Cloud CLI instalado para seu sistema operacional:
O ossutil instalado para carregar pacotes de implantação no OSS
Configurar o Alibaba Cloud CLI
Execute aliyun configure para definir seu par de AccessKey, a região padrão e o formato de saída.
Crie ou visualize seu par de AccessKey na página
do console User Management. Caso não tenha credenciais, entre em contato com o administrador.
aliyun configure
Configuring profile 'default' ...
Aliyun Access Key ID [None]: <your-access-key-id>
Aliyun Access Key Secret [None]: <your-access-key-secret>
Default Region Id [None]: cn-hangzhou
Default output format [json]: json
Default Language [zh]: zh
|
Marcador |
Descrição |
|
|
Seu AccessKey ID |
|
|
Seu AccessKey secret |
Após concluir a configuração, a CLI exibe a mensagem Configure Done!!!.
Criar um aplicativo em um cluster ECS
Os passos abaixo cobrem as quatro primeiras chamadas de API da visão geral do fluxo de trabalho: criação de namespace, criação de cluster, importação de instância ECS e registro de aplicativo.
Antes de executar os comandos, substitua as variáveis de marcador pelos valores reais:
|
Variável |
Descrição |
Exemplo |
|
|
Região onde o aplicativo será implantado |
|
|
|
ID da instância ECS a importar |
|
|
|
ID da Virtual Private Cloud (VPC) à qual a instância ECS pertence |
|
|
|
Nome do namespace de microsserviços (criado automaticamente se não existir) |
|
|
|
Nome do cluster ECS (criado automaticamente se não existir) |
|
|
|
Nome do aplicativo |
|
Definir as variáveis
REGION="cn-beijing"
ECS_ID="i-2z************b6"
VPC_ID="vpc-t**********c"
NAMESPACE="myNamespace"
CLUSTER_NAME="myCluster"
APP_NAME="myApp"
Etapa 1: Criar um namespace de microsserviços
Crie o namespace com a tag <region>:<namespace>:
aliyun edas InsertOrUpdateRegion \
--RegionTag "$REGION:$NAMESPACE" \
--RegionName "$NAMESPACE" \
--region "$REGION" \
--endpoint "edas.cn-beijing.aliyuncs.com" >> /dev/null
Etapa 2: Criar um cluster ECS
Crie um cluster ECS no modo VPC (ClusterType 2, NetworkMode 2) e capture o ID do cluster:
CLUSTER_ID=$(aliyun edas InsertCluster \
--ClusterName "$CLUSTER_NAME" \
--ClusterType 2 \
--NetworkMode 2 \
--VpcId "$VPC_ID" \
--logicalRegionId "$REGION:$NAMESPACE" \
--region "$REGION" \
--endpoint "edas.cn-beijing.aliyuncs.com" \
| sed -E 's/.*"ClusterId":"([a-z0-9-]*)".*/\1/g')
echo "Cluster ID: $CLUSTER_ID"
Etapa 3: Importar a instância ECS
Importe a instância ECS para o cluster. O script consulta ListClusterMembers por até 300 segundos até que a instância retorne seu ECU ID:
aliyun edas TransformClusterMember \
--InstanceIds "$ECS_ID" \
--TargetClusterId "$CLUSTER_ID" \
--Password Hello1234 >> /dev/null
for i in $(seq 300); do
OUT=$(aliyun edas ListClusterMembers --ClusterId "$CLUSTER_ID" | grep EcuId) && break
sleep 1
done
ECU_ID=$(echo "$OUT" | sed -E 's/.*"EcuId":"([a-z0-9-]*)".*/\1/g')
echo "ECU ID: $ECU_ID"
O processo de importação pode levar vários minutos. O loop verifica uma vez por segundo durante até 5 minutos.
Etapa 4: Criar o aplicativo
Registre o aplicativo com BuildPackId 51 e a ECU obtida na Etapa 3:
APP_ID=$(aliyun edas InsertApplication \
--ApplicationName "$APP_NAME" \
--BuildPackId 51 \
--EcuInfo "$ECU_ID" \
--ClusterId "$CLUSTER_ID" \
--logicalRegionId "$REGION:$NAMESPACE" \
| sed -E 's/.*"AppId":"([a-z0-9-]*)".*/\1/g')
echo "Application created. App ID: $APP_ID"
Salve o valor de APP_ID para usar na etapa de implantação.
Implantar o aplicativo
Após criar o aplicativo, implante um pacote WAR ou JAR. Os passos a seguir carregam o pacote em um bucket do OSS, enviam uma solicitação de implantação assíncrona e monitoram o status até a conclusão.
Variáveis
Substitua as variáveis abaixo pelos valores reais:
|
Variável |
Descrição |
Exemplo |
|
|
ID do aplicativo obtido na seção anterior ou no console EDAS |
|
|
|
ID do grupo de aplicativos |
|
|
|
Bucket do OSS com leitura pública para o pacote de implantação |
|
|
|
Caminho local para o arquivo WAR ou JAR |
|
APP_ID="87a6*********************4d1"
GROUP_ID="54b*********************f27"
OSS_BUCKET="eda*****mo"
PACKAGE="hello-edas.war"
VERSION=$(date +%s) # Timestamp-based version
Etapa 1: Carregar o pacote de implantação no OSS
ossutil cp -f "$PACKAGE" "oss://$OSS_BUCKET/$PACKAGE" >> /dev/null
PKG_URL=$(ossutil sign "oss://$OSS_BUCKET/$PACKAGE" | head -1)
echo "Package URL: $PKG_URL"
Etapa 2: Acionar a implantação
CO_ID=$(aliyun edas DeployApplication \
--AppId "$APP_ID" \
--PackageVersion "$VERSION" \
--DeployType url \
--WarUrl "$PKG_URL" \
--GroupId "$GROUP_ID" \
| grep '.*"ChangeOrderId":' \
| sed -E 's/.*"ChangeOrderId":\s"([a-z0-9-]*)".*/\1/g')
echo "Change order ID: $CO_ID"
Etapa 3: Aguardar a conclusão da implantação
O script consulta GetChangeOrderInfo por até 300 segundos. Um valor PipelineStatus igual a 2 indica sucesso:
for i in $(seq 300); do
STATUS=$(aliyun edas GetChangeOrderInfo --ChangeOrderId "$CO_ID" \
| grep '.*"PipelineStatus":' \
| sed -E 's/.*"PipelineStatus":\s(.).*/\1/g')
[[ 2 = ${STATUS} ]] && break
sleep 1
done
echo "Deployment complete. Change order ID: $CO_ID"
Localizar APP_ID e GROUP_ID no console
Caso não tenha esses valores da etapa de criação, obtenha-os no console EDAS:
Faça login no console EDASconsole EDAS.
No painel de navegação à esquerda, escolha Application Management > Applications e clique no nome do seu aplicativo.
No canto superior direito da aba Basic Information, clique em Deploy.
Na página Select Deployment Mode, clique em Start Deployment ao lado de Regular Release (Single-batch/Multi-batch).
Clique em Generate Maven Plug-in Configuration para visualizar os valores dos parâmetros.

Verificar a implantação
Após o término do script de implantação, confirme se o aplicativo está em execução:
Faça login no console EDASconsole EDAS.
No painel de navegação à esquerda, escolha Application Management > Applications.
Clique no nome do aplicativo implantado e selecione a aba Instance Information ao lado de Basic Information.
A implantação é considerada bem-sucedida quando o status da instância exibe Normal.
Se a implantação falhar, consulte
Códigos de erro que podem ser retornados em um processo de alteração
para solução de problemas.
Veja também
Comunidade de ferramentas de desenvolvimento do EDAS
Se tiver dúvidas ou sugestões sobre o uso de ferramentas de desenvolvimento no EDAS, participe do grupo DingTalk pesquisando pelo ID 34556175 no DingTalk.