Não é possível chamar operações de API a partir de uma instância do Elastic Compute Service (ECS) em uma Virtual Private Cloud (VPC) sem endereço IP público. Este tópico descreve como chamar operações de API dessas instâncias pela rede interna da Alibaba Cloud.
Contexto
O ECS fornece endpoints públicos. Se uma instância do ECS não tiver largura de banda pública ou endereço IP público, não será possível chamar operações de API com ferramentas como a interface de linha de comando (CLI) da Alibaba Cloud ou kits de desenvolvimento de software (SDKs). Nesse caso, use um dos métodos a seguir para chamar operações de API pela rede interna da Alibaba Cloud:
SDK: A biblioteca principal V4.5.3 e versões posteriores do SDK para Java suportam chamadas de operações de API pela rede interna em uma VPC.
CLI: Ao usar a CLI, altere o endpoint para o da região correspondente para chamar operações de API pela rede interna.
Observação:
Esses métodos são específicos por região. Um endpoint permite gerenciar recursos apenas na mesma região da instância do ECS. Não há suporte para operações entre regiões.
Para criar instâncias do ECS, use uma imagem personalizada com a CLI da Alibaba Cloud ou um SDK pré-instalado. Isso evita falhas no carregamento de dependências devido à falta de acesso à Internet.
A tabela a seguir lista os endpoints do ECS que suportam chamadas de API pela rede interna. Verifique se o endpoint utilizado consta nesta tabela.
|
Região da Alibaba Cloud |
ID da região |
Endpoint |
|
China (Hangzhou) |
cn-hangzhou |
ecs-vpc.cn-hangzhou.aliyuncs.com |
|
China (Shanghai) |
cn-shanghai |
ecs-vpc.cn-shanghai.aliyuncs.com |
|
China (Nanjing - Local Region) |
cn-nanjing |
ecs-vpc.cn-nanjing.aliyuncs.com |
|
China (Fuzhou - Local Region) |
cn-fuzhou |
ecs-vpc.cn-fuzhou.aliyuncs.com |
|
China (Qingdao) |
cn-qingdao |
ecs-vpc.cn-qingdao.aliyuncs.com |
|
China (Beijing) |
cn-beijing |
ecs-vpc.cn-beijing.aliyuncs.com |
|
China (Zhangjiakou) |
cn-zhangjiakou |
ecs-vpc.cn-zhangjiakou.aliyuncs.com |
|
China (Hohhot) |
cn-huhehaote |
ecs-vpc.cn-huhehaote.aliyuncs.com |
|
China (Ulanqab) |
cn-wulanchabu |
ecs-vpc.cn-wulanchabu.aliyuncs.com |
|
China (Shenzhen) |
cn-shenzhen |
ecs-vpc.cn-shenzhen.aliyuncs.com |
|
China (Heyuan) |
cn-heyuan |
ecs-vpc.cn-heyuan.aliyuncs.com |
|
China (Guangzhou) |
cn-guangzhou |
ecs-vpc.cn-guangzhou.aliyuncs.com |
|
China (Chengdu) |
cn-chengdu |
ecs-vpc.cn-chengdu.aliyuncs.com |
|
China (Hong Kong) |
cn-hongkong |
ecs-vpc.cn-hongkong.aliyuncs.com |
|
Singapura |
ap-southeast-1 |
ecs-vpc.ap-southeast-1.aliyuncs.com |
|
Malásia (Kuala Lumpur) |
ap-southeast-3 |
ecs-vpc.ap-southeast-3.aliyuncs.com |
|
Indonésia (Jacarta) |
ap-southeast-5 |
ecs-vpc.ap-southeast-5.aliyuncs.com |
|
Filipinas (Manila) |
ap-southeast-6 |
ecs-vpc.ap-southeast-6.aliyuncs.com |
|
Tailândia (Bangkok) |
ap-southeast-7 |
ecs-vpc.ap-southeast-7.aliyuncs.com |
|
Japão (Tóquio) |
ap-northeast-1 |
ecs-vpc.ap-northeast-1.aliyuncs.com |
|
Coreia do Sul (Seul) |
ap-northeast-2 |
ecs-vpc.ap-northeast-2.aliyuncs.com |
|
Alemanha (Frankfurt) |
eu-central-1 |
ecs-vpc.eu-central-1.aliyuncs.com |
|
Reino Unido (Londres) |
eu-west-1 |
ecs-vpc.eu-west-1.aliyuncs.com |
|
EUA (Vale do Silício) |
us-west-1 |
ecs-vpc.us-west-1.aliyuncs.com |
|
EUA (Virgínia) |
us-east-1 |
ecs-vpc.us-east-1.aliyuncs.com |
|
Emirados Árabes Unidos (Dubai) |
me-east-1 |
ecs-vpc.me-east-1.aliyuncs.com |
Método 1 (Recomendado): Usar um SDK para chamar operações pela rede interna
Com um SDK, você pode chamar operações de API pela rede interna mediante uma configuração simples. O código Java a seguir serve como exemplo:
import com.aliyun.ecs20140526.Client;
import com.aliyun.ecs20140526.models.DescribeRegionsRequest;
import com.aliyun.ecs20140526.models.DescribeRegionsResponse;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teautil.models.RuntimeOptions;
public class Test {
public static void main(String[] args) throws Exception {
Config config = new Config();
// Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable is set.
config.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"));
// Required. Make sure that the ALIBABA_CLOUD_ACCESS_KEY_SECRET environment variable is set.
config.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// For the endpoint, see https://api.aliyun.com/product/Ecs
config.setEndpoint("<ENDPOINT>");
// Initialize the ECS client.
Client ecsClient = new Client(config);
// Create a request object to query region information.
DescribeRegionsRequest describeRegionsRequest = new DescribeRegionsRequest();
// Create a runtime options object.
RuntimeOptions runtime = new RuntimeOptions();
// Send the request and obtain the response with region information.
DescribeRegionsResponse response = ecsClient.describeRegionsWithOptions(describeRegionsRequest, runtime);
System.out.println(response.body.toMap());
}
}
Método 2: Usar a CLI para chamar operações pela rede interna
Este exemplo usa a operação DescribeRegions. O comando de exemplo é:
aliyun ecs DescribeRegions --endpoint ecs-vpc.cn-hangzhou.aliyuncs.com