A Alibaba Cloud Command Line Interface (CLI) é uma ferramenta para gerenciar recursos da Alibaba Cloud diretamente do terminal por meio de chamadas de operações OpenAPI. Este tópico apresenta exemplos de uso da Alibaba Cloud CLI para criar e gerenciar uma instância ECS.
Para obter mais informações sobre a Alibaba Cloud CLI, consulte What is Alibaba Cloud CLI?.
Antes de começar
Como uma conta Alibaba Cloud possui permissões totais sobre todos os recursos, o vazamento de um AccessKey dessa conta representa alto risco de segurança. Recomendamos o uso do AccessKey de um usuário RAM com apenas as permissões mínimas necessárias. Para mais detalhes, consulte Create an AccessKey.
-
Conceda ao usuário RAM as permissões necessárias para gerenciar recursos ECS e VPC. O código de exemplo neste tópico cria recursos como instâncias, VPCs e vSwitches. Recomendamos conceder as seguintes permissões:
Serviço cloud
Permissão
VPC
Anexe a política de sistema: AliyunVPCFullAccess
ECS
Anexe a política de sistema: AliyunECSFullAccess
-
Instale e configure a CLI. A Alibaba Cloud CLI está disponível para Windows, Linux e macOS. Escolha o método de instalação adequado ao seu sistema operacional:
-
Instale a CLI.
-
Configure a CLI.
Defina as credenciais e a região de solicitação de service necessárias para chamar os recursos da Alibaba Cloud. Para mais informações, consulte Configure credentials.
Caso precise depurar algo temporariamente sem instalar a Alibaba Cloud CLI, utilize o Cloud Shell. Para mais detalhes, consulte What is Cloud Shell?. Para iniciar o Cloud Shell, faça login no console da Alibaba Cloud e clique em no ícone do Cloud Shell (ícone de terminal) à direita de Tickets na barra de navegação superior.
-
Crie uma instância ECS
Criar uma instância ECS exige parâmetros como ID do vSwitch, ID do grupo de segurança e ID da imagem. Utilize IDs de recursos existentes ou crie novos chamando as operações nas etapas a seguir.
-
Crie uma VPC.
Uma VPC é uma rede privada logicamente isolada para seus recursos cloud.
API
Parâmetro
Valor
RegionId
Região: cn-hangzhou
CidrBlock
Bloco CIDR da VPC: 192.168.0.0/16
-
Crie um vSwitch.
O vSwitch é um dispositivo de rede básico em uma VPC que conecta diferentes recursos cloud.
API
Parâmetro
Valor
RegionId
Região: cn-hangzhou
ZoneId
Zona: cn-hangzhou-i
VpcId
ID da VPC: vpc-bp1aag0sb9s4i92i3****
CidrBlock
Bloco CIDR do vSwitch: 192.168.0.0/24
-
Crie um grupo de segurança.
Um grupo de segurança atua como firewall virtual que controla o tráfego de entrada e saída das instâncias ECS.
API
Parâmetro
Valor
RegionId
Região: cn-hangzhou
VpcId
ID da VPC: vpc-bp1aag0sb9s4i92i3****
-
Adicione uma regra de entrada ao grupo de segurança.
API
Parâmetro
Valor
RegionId
Região: cn-hangzhou
SecurityGroupId
ID do grupo de segurança: sg-bp1esyhwfbqeyudt****
IpProtocol
Protocolo: tcp
SourceCidrIp
Bloco CIDR de origem: 0.0.0.0/0
PortRange
Intervalo de portas:
-
Para instâncias Linux: 22/22
-
Para instâncias Windows: 3389/3389
-
-
Crie uma instância ECS.
API
Parâmetro
Valor
RegionId
Região: cn-hangzhou
ImageId
Imagem: Utilize a imagem Alibaba Cloud Linux aliyun_3_x64_20G_alibase_20240819.vhd
InstanceType
Tipo de instância: ecs.e-c1m1.large
SecurityGroupId
ID do grupo de segurança: sg-bp1esyhwfbqeyudt****
VSwitchId
ID do vSwitch: vsw-bp1nzprm8h7mmnl8t****
InstanceName
Nome da instância: ecs_cli_demo
InstanceChargeType
Defina como PostPaid para criar uma instância com pagamento conforme o uso.
NotaCertifique-se de que sua conta tenha saldo suficiente.
Password
Senha de login:
InternetMaxBandwidthOut
Se este valor for maior que 0, a instância receberá automaticamente um endereço IP público.
SystemDisk.Category
Categoria do disco de sistema: cloud_essd
SystemDisk.Size
Tamanho do disco de sistema: 40 GiB
Veja abaixo o script de exemplo completo:
Executar este script repetidamente criará recursos duplicados e poderá gerar custos desnecessários. Revise e adapte o script às suas necessidades específicas antes da execução.
#!/bin/bash
# In a production environment, make sure that your AccessKey ID and AccessKey secret
# are securely set by using environment variables or a configuration file.
# 1. Set variables.
INSTANCE_NAME="ecs_cli_demo"
# 2. Install the jq tool.
echo "Installing the jq dependency tool..."
yum install -y jq
sleep 3
# 3. Create a VPC, vSwitch, and security group.
echo "Creating a VPC..."
VpcId=$(aliyun vpc CreateVpc --RegionId cn-hangzhou --CidrBlock 192.168.0.0/16 | jq -r .VpcId)
aliyun vpc DescribeVpcAttribute --RegionId cn-hangzhou --VpcId ${VpcId} --waiter expr='Status' to=Available > /dev/null 2>&1
echo "Creating a vSwitch..."
VSwitchId=$(aliyun vpc CreateVSwitch --CidrBlock 192.168.0.0/24 --VpcId ${VpcId} --ZoneId=cn-hangzhou-i | jq -r .VSwitchId)
echo "Creating a security group..."
SecurityGroupId=$(aliyun ecs CreateSecurityGroup --RegionId cn-hangzhou --VpcId ${VpcId} | jq -r .SecurityGroupId)
aliyun ecs AuthorizeSecurityGroup --RegionId cn-hangzhou --SecurityGroupId ${SecurityGroupId} --IpProtocol tcp --SourceCidrIp 0.0.0.0/0 --PortRange 22/22 > /dev/null 2>&1
read -s -p "Enter your password:" PASSWORD
echo
echo "PASSWORD OK."
# 4. Run the command to create an ECS instance.
echo "Creating the ECS instance..."
INSTANCE_ID_RAW=$(aliyun ecs RunInstances \
--RegionId cn-hangzhou \
--ImageId aliyun_3_x64_20G_alibase_20240819.vhd \
--InstanceType ecs.e-c1m1.large \
--SecurityGroupId ${SecurityGroupId} \
--VSwitchId ${VSwitchId} \
--InstanceName $INSTANCE_NAME \
--InstanceChargeType PostPaid \
--InternetMaxBandwidthOut 1 \
--Password $PASSWORD \
--SystemDisk.Category cloud_essd \
--SystemDisk.Size 40)
# 5. Extract the instance ID for later use.
INSTANCE_ID=$(echo "$INSTANCE_ID_RAW" | jq -r '.InstanceIdSets.InstanceIdSet[]')
# 6. Wait for 20 seconds for the ECS instance to be created.
echo "Waiting for the ECS instance to be created..."
sleep 20
# 7. Query the ECS instance status.
echo "Querying the ECS instance status..."
INSTANCE_ID_QUOTED=$(printf '"%s"' "$INSTANCE_ID")
aliyun ecs DescribeInstances \
--RegionId cn-hangzhou \
--InstanceIds "[${INSTANCE_ID_QUOTED}]" \
--output cols=InstanceId,InstanceName,InstanceType,ImageId,Status rows=Instances.Instance[]
Crie e execute o script shell. A saída esperada é a seguinte:
[root@i-xxxxx Z ~]# bash ecs-cli.sh
Installing the jq dependency tool...
Last metadata expiration check: 0:24:56 ago on Tue 22 Oct 2024 09:24:50 AM CST.
Package jq-1.6-15.al8.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
Creating a VPC...
Creating a vSwitch...
Creating a security group...
Enter your password:
PASSWORD OK.
Creating the ECS instance...
Waiting for the ECS instance to be created...
Querying the ECS instance status...
InstanceId | InstanceName | InstanceType | ImageId | Status
---------- | ------------ | ------------ | ------- | -------
i-bpxxxxxxxxxxxz4 | ecs_cli_demo | ecs.e-c1m1.large | aliyun_3_x64_20G_alibase_20240819.vhd | Running
Conecte-se à instância
Após conectar-se à instância via SSH, implante seus serviços e aplicativos.
-
Obtenha o endereço IP público da instância.
Chame DescribeInstances com o
<InstanceID>para obter o endereço IP público da instância.-
Exemplo de solicitação
aliyun ecs DescribeInstances \ --RegionId cn-hangzhou \ --InstanceIds '["<instance-id>"]' -
Exemplo de resposta
O parâmetro PublicIpAddress indica o endereço IP público da instância.
"PublicIpAddress": { "IpAddress": [ "115.29.xxx.xxx" ] }
-
-
Conecte-se à instância ECS.
ssh <username>@<public_ip_address>[root@i-xxx bfZ ~ ]# ssh root@1xx.xx.xx.xx The authenticity of host '1xx.xx.xx.xx (1xx.xx.xx.xx)' can't be established. ECDSA key fingerprint is SHA256:PVyhCaxxx4mecykrU. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '1xx.xx.xx.xx' (ECDSA) to the list of known hosts. root@1xx.xx.xx.xx's password: Welcome to Alibaba Cloud Elastic Compute Service ! Last login: Thu Oct 10 13:31:58 2024 from xxx.67 [root@iZ xxx ugZ ~]#
Limpeza de recursos
Quando não precisar mais dos recursos, libere-os para evitar cobranças adicionais.
Escolha a operação OpenAPI adequada para liberar os recursos. Este exemplo libera todos os recursos criados nas etapas anteriores.
-
Exclua a instância ECS.
API
Parâmetro
Valor
RegionId
Região: cn-hangzhou
InstanceId
ID da instância: i-bp17f3kzgtzzj91r****
-
Exclua o grupo de segurança.
API
Parâmetro
Valor
RegionId
Região: cn-hangzhou
SecurityGroupId
ID do grupo de segurança: sg-bp1esyhwfbqeyudt****
-
Exclua o vSwitch.
API
Parâmetro
Valor
RegionId
Região: cn-hangzhou
VSwitchId
ID do vSwitch: vsw-bp1nzprm8h7mmnl8t****
-
Exclua a VPC.
API
Parâmetro
Valor
RegionId
Região: cn-hangzhou
VpcId
ID da VPC: vpc-bp1aag0sb9s4i92i3****
Veja abaixo um script de exemplo:
#!/bin/bash
# Replace the placeholder values with the actual IDs of the resources you want to release.
INSTANCE_ID='i-bpxxxxxxxxxxxz4'
SECURITY_GROUP_ID='sg-bp1esyhwfbqeyudt****'
VSWITCH_ID='vsw-bp1nzprm8h7mmnl8t****'
VPC_ID='vpc-bp1aag0sb9s4i92i3****'
REGION='cn-hangzhou'
echo "Releasing resources..."
# Delete the instance.
aliyun ecs DeleteInstance \
--region ${REGION} \
--InstanceId ${INSTANCE_ID}
# Wait for the instance to be deleted before deleting the security group.
# Add a wait logic here in a production script.
# Delete the security group.
aliyun ecs DeleteSecurityGroup \
--region ${REGION} \
--SecurityGroupId ${SECURITY_GROUP_ID}
# Delete the vSwitch.
aliyun vpc DeleteVSwitch \
--region ${REGION} \
--VSwitchId ${VSWITCH_ID}
# Delete the VPC.
aliyun vpc DeleteVpc \
--region ${REGION} \
--VpcId ${VPC_ID}
echo "Cleanup complete."
Referências
Execute o comando abaixo para visualizar a lista de comandos CLI compatíveis com o ECS.
aliyun ecs --help
Utilize a sintaxe a seguir para chamar operações da API ECS. Para detalhes sobre os parâmetros, consulte a documentação de cada operação.
aliyun ecs <APIName> --<parameter1 value1> --<parameter2 value2> ...