Este tópico descreve como usar o API Gateway para acessar um service de back-end em uma VPC. Também explica como utilizar a autenticação AppCode do Alibaba Cloud App para realizar chamadas de API seguras.
Pré-requisitos
Você possui uma VPC. Para mais informações, consulte Create a VPC with an IPv4 CIDR block e Create a VPC with an IPv6 CIDR block.
Você possui uma instância ECS. Para mais informações, consulte Create an ECS instance.
Adquira uma instância Server Load Balancer (SLB) e uma instância ECS na VPC e implante seu service.
Neste exemplo, o service de back-end do API Gateway é uma instância ECS em uma VPC. Um service web Nginx está implantado na instância ECS na porta 80.
Procedimento
Para usar o API Gateway no acesso a um service de back-end em uma VPC, siga estas etapas:
Crie uma autorização de acesso à VPC
Crie uma autorização de acesso à VPC para permitir que o API Gateway acesse sua VPC.
Faça login no console do API Gateway. Selecione uma região e, no painel de navegação à esquerda, escolha API Management > VPC Authorization.
Na página Authorization List, clique em Create Authorization no canto superior direito.
-
Na página Create VPC Authorization, insira o VPC Authorization Name, o VPC Id, o Instance ID or IP Address e a Port.
NotaPara acessar um site (vhost) em uma instância SLB ou ECS usando um nome de domínio específico, configure o nome de domínio no campo Host.
Encontre o ID da VPC, o ID da instância ou o endereço IP privado na página de detalhes do seu service de back-end, como uma instância ECS ou Classic Load Balancer (CLB).
A alteração do tipo de rede para pública não é suportada e causará falhas nas requisições.
Crie um grupo de APIs
Um grupo de APIs é uma unidade de gerenciamento para APIs. É necessário criar um grupo de APIs antes de criar uma API.
Faça login no console do API Gateway. Selecione uma região e, no painel de navegação à esquerda, escolha API Management > Group Management. Em seguida, clique em Create Group no canto superior direito.
Na caixa de diálogo Create Group, selecione uma Instance, insira
nginx-demoem Group Name e/em Base Path e clique em OK.
Na página Group List, visualize o grupo criado. Clique no nome do grupo para ir à página Group Details, onde é possível bind a domain name, modify basic information ou change the group instance.
O API Gateway atribui automaticamente um nome de domínio público de segundo nível ao grupo de APIs. Este domínio serve apenas para depuração e tem limite de 1.000 chamadas por dia. Em regiões fora da china continental, como China (Hong Kong), o limite é de 100 chamadas por dia. Para uso em produção, vincule um nome de domínio personalizado ao grupo.
Crie uma API
Faça login no console do API Gateway. Selecione uma região e, no painel de navegação à esquerda, escolha API Management > Group Management.
Na página Group List, localize o grupo
nginx-demoe clique em API Management na coluna Actions.Na página API List, clique em Create API no canto superior direito.
-
Na página Create API, na seção Basic Information, configure os seguintes parâmetros e clique em Next.
Parâmetro
Exemplo
Group
nginx-demo
API Name
nginx-test
Security Authentication
Alibaba Cloud App
AppCode Authentication
Allow AppCode (Header & Query) Authentication
Signature Algorithm
HMAC_SHA256
-
Na seção Define API Request, configure os seguintes parâmetros e clique em Next.
Parâmetro
Exemplo
Protocol
HTTP, HTTPS
Request Path
/nginx
HTTP Method
GET
Request Mode
Pass-through
NotaEsta etapa define como um cliente, como um navegador, aplicativo móvel ou outro sistema empresarial, envia requisições para sua API. Defina o protocolo de requisição, o caminho da requisição, o método http e o modo de requisição. Neste exemplo, o Request Mode está definido como Pass-through, o que significa que o API Gateway encaminha as requisições do cliente com seus parâmetros originais diretamente para o service de back-end na VPC.
-
Na seção Define Backend Service, configure os seguintes parâmetros e clique em Next.
Parâmetro
Exemplo
Backend Configuration
Selecione Custom Backend Service
Backend Service Type
Selecione VPC
VPC Authorization Name
***-microservice
Backend Request Path
/
HTTP Method
GET
Backend Timeout
10000
NotaEsta etapa define como o API Gateway mapeia parâmetros e se conecta ao service de back-end após receber uma requisição do cliente. Neste exemplo, o tipo de service de back-end é VPC. Selecione a autorização de acesso à VPC criada ou insira seu nome e especifique o caminho da requisição de back-end.
-
Na seção Define Response, clique em Create.
NotaEsta etapa gera a documentação da API para ajudar os chamadores a entendê-la. Defina o Content-Type da resposta, o exemplo de resposta e o exemplo de resposta de erro. Este exemplo não envolve essas configurações. Clique em Create.
Na mensagem exibida, clique em Publish.
-
Na caixa de diálogo Publish API, defina Environment como Release, insira uma descrição no campo Remarks e clique em Publish.
NotaApós modificar uma API, publique-a em um ambiente para que as alterações entrem em vigor. O API Gateway fornece três ambientes integrados: Release, Pre e Test.
Crie um aplicativo e autorize a API
Um aplicativo é a identidade usada para chamar uma API. Neste exemplo, o método de autenticação está definido como "Alibaba Cloud App" quando você create the API. Após publicar a API, crie um aplicativo e autorize-o a chamá-la.
Crie um aplicativo
Faça login no console do API Gateway. Selecione uma região e, no painel de navegação à esquerda, escolha API Calling > Application Management.
Na página Applications and Authorizations, clique em Create APP no canto superior direito.
-
Na caixa de diálogo Create Application, insira um Application Name e clique em OK.
O nome do aplicativo pode conter caracteres chineses, letras, dígitos e sublinhados (_). Deve começar com uma letra ou caractere chinês e ter entre 4 e 26 caracteres. Expanda Tag Settings, Custom AK ou Extended Fields e insira uma Description de até 180 caracteres.
Na página Applications and Authorizations, clique no nome do aplicativo criado para ir à página Application Details. Dois métodos de autenticação para Alibaba Cloud App estão disponíveis: AppKey e AppCode. Neste exemplo, usamos AppCode para autenticação simples. Para mais informações, consulte Call an API by using simple authentication (AppCode).
Autorize a API
Faça login no console do API Gateway. Selecione uma região e, no painel de navegação à esquerda, escolha API Management > API List.
Na página API List, localize a API
nginx-test. Na coluna Actions, clique em
e escolha Authorize.No painel Authorize exibido, defina Select an environment to authorize como Release. Pesquise o aplicativo criado, clique em Add e clique em OK. Uma mensagem de sucesso será exibida.
Permita o IP de saída do API Gateway no grupo de segurança
Se o grupo de segurança da sua instância ECS tiver regras de entrada que restrinjam o tráfego, adicione o endereço IP de saída do API Gateway à lista de permissões do grupo de segurança. Essa ação impede que o grupo de segurança bloqueie requisições do API Gateway. O endereço IP de saída necessário pertence à instância que hospeda seu grupo de APIs.
Faça login no console do API Gateway. No painel de navegação à esquerda, escolha API Management > Group Management e clique no nome do grupo de APIs desejado.
Na página Group Details, visualize o Instance Type do grupo.
-
No painel de navegação à esquerda, escolha Instances and Clusters. Clique no tipo de instância, localize a instância correspondente e visualize as informações de Egress IP Address.
Os endereços IP de saída incluem um endereço IP de saída público e um endereço VPC interno.
-
Faça login no console do ECS. No painel de navegação à esquerda, escolha Instances & Images > Instances. Clique no ID da sua instância ECS. Acesse a aba Security Groups e clique no nome do grupo de segurança. Na página Security Group Details, escolha Inbound > Quickly Add Rules e configure o endereço IP de saída do gateway.
Na caixa de diálogo Quickly Add Rules, defina Authorization Policy como Allow. Insira o endereço IP de saída do gateway no campo Authorization Object. Selecione All (1/65535) em Port Range e clique em OK.
Depure a API
Após configurar uma API, use este recurso para verificar se ela funciona conforme o esperado antes de chamá-la a partir de um cliente.
A página Debug suporta mensagens de requisição de até 512 KB. Para requisições maiores, use um SDK para depuração.
As listas de bloqueios, listas de permissões e plug-ins de controle de acesso baseados em IP configurados na instância devem permitir tráfego de 47.245.113.207.
Esta página não suporta depuração para o plug-in JWT.
Apenas nomes de domínio públicos são suportados para depuração.
Faça login no console do API Gateway. No painel de navegação à esquerda, escolha API Calling > Debug.
-
Na página Debug, selecione a API
nginx-testcriada. Em Authentication Method, selecione Use AppCode. Em seguida, clique em Send Request.Se a chamada for bem-sucedida, o código de status da resposta será 200 e o corpo da resposta retornará a página de boas-vindas padrão do Nginx em HTML, incluindo textos como
Welcome to nginx!.Se a depuração falhar, consulte os seguintes tópicos:
Chame a API
Para mais informações, consulte Call an API from a client.
Se nenhum ambiente for especificado para um nome de domínio, as chamadas de API usarão o ambiente Release por padrão. Para mais informações sobre ambientes de API, consulte Manage environments.
Este tópico é um guia de início rápido e não aborda a alta disponibilidade do back-end. Para alta disponibilidade, consulte Use a resource in a VPC as the backend service of an API.