Este tópico descreve como acessar o API Gateway a partir do Function Compute por meio de uma virtual private cloud (VPC) em dois cenários: acesso na mesma região e acesso entre regiões.
Visão geral
É possível integrar o API Gateway ao Function Compute para criar uma arquitetura serverless. Em alguns cenários, talvez seja necessário chamar APIs publicadas no API Gateway a partir de uma função. Para garantir a segurança, acesse o API Gateway pela rede interna. Este tópico explica como implementar o acesso à rede interna em dois cenários:
Acesso ao API Gateway pelo Function Compute via rede interna na mesma região.
Acesso ao API Gateway pelo Function Compute via rede interna entre regiões diferentes.
Os princípios principais de configuração são os mesmos para ambos os cenários:
Use uma VPC para ativar o acesso à rede interna.
Para permitir o acesso interno ao API Gateway, autorize uma VPC a se conectar a ele. Para mais informações, consulte Access API Gateway over a VPC.
O acesso à rede interna pelo Function Compute também exige uma VPC. Para mais informações, consulte Configure network settings.
Cenário 1: Acesso na mesma região
-
Preparativos
Monte uma arquitetura conforme ilustrado na figura a seguir:
NotaCrie duas VPCs, vpc-api-access e vpc-backend-1, na região China (Shanghai).
Verifique se você já criou uma instância dedicada do API Gateway na região China (Shanghai).
Na vpc-backend-1, crie uma instância do Elastic Compute Service (ECS) para servir como backend do API Gateway. Essa instância ECS deve fornecer um endpoint de service HTTP acessível em http://localhost:8080/web/cloudapi. Configure também um grupo de segurança para essa instância ECS para permitir o acesso proveniente do API Gateway.
-
Configure uma API com o tipo de service de backend definido como VPC.
Para mais informações, consulte Use a resource in a VPC as the backend service of an API. Observe os seguintes detalhes de configuração:
-
Crie uma autorização de VPC. O resultado é mostrado na figura a seguir:

-
Crie uma API cujo service de backend esteja em uma VPC. Para fins de teste, defina o método de autenticação como No Authentication, conforme as figuras a seguir:


Após salvar a API, publique-a. Neste exemplo, publique a API no ambiente Production.
-
-
Configure as permissões de acesso à rede interna da VPC para o API Gateway.
Na página da instância dedicada, clique em Bind to User VPC ao lado de Client VPC. Selecione o
Vpc Idda vpc-api-access para ativar o acesso à rede interna ao API Gateway a partir dessa VPC.
-
Ative um nome de domínio interno para o grupo de APIs.
Na página de detalhes do grupo, ative o nome de domínio de segundo nível interno. Após a ativação, o API Gateway atribui um nome de domínio de segundo nível de VPC interno ao grupo. Use esse nome de domínio para chamar diretamente as APIs desse grupo.
ImportantePor padrão, os grupos de APIs são acessíveis pela Internet. Para impedir o acesso pela Internet, desative o nome de domínio de segundo nível público. Note que, ao desativar o acesso à Internet, não será possível depurar online no console do API Gateway.
-
Crie uma função.
No Function Compute, crie um aplicativo e uma função que utilize o runtime Python. O código da função é exibido na figura a seguir:

A função utiliza curl para acessar a API no nome de domínio de segundo nível da VPC. Se você executar a função agora, o acesso falhará.
-
Primeiramente, crie um vSwitch na vpc-api-access para que o Function Compute possa se conectar .
Em seguida, no console do Function Compute, configure as definições de service para o aplicativo criado na etapa anterior. Para mais informações, consulte Configure network settings.
Na configuração de VPC, selecione vpc-api-access como VPC e escolha o vSwitch criado nesta etapa.
Na configuração de permissões, crie uma nova função. Para o modelo de política do sistema, selecione AliyunECSNetworkInterfaceManagementAccess .
-
Execute a função para testá-la.
Após a execução, verifique se o Function Compute consegue acessar a API usando o nome de domínio de segundo nível da VPC.

Cenário 2: Acesso entre regiões
-
Preparativos
Monte uma arquitetura conforme a figura a seguir:
NotaNa região China (Zhangjiakou), crie um aplicativo do Function Compute para enviar solicitações de chamada de API. Crie uma VPC (vpc-fc-access) para permitir que o Function Compute se conecte à Cloud Enterprise Network (CEN).
Na região China (Shanghai), crie uma instância dedicada do API Gateway. Crie também uma VPC (vpc-api-access) para permitir que o API Gateway se conecte à CEN.
Ainda na região China (Shanghai), crie outra VPC (vpc-backend-1). Nela, crie uma instância ECS para atuar como service de backend do API Gateway. Essa instância ECS fornece um endpoint de service HTTP acessível em http://localhost:8080/web/cloudapi. Configure também um grupo de segurança para essa instância ECS para permitir o acesso originado do API Gateway.
-
Crie uma instância CEN.
Inicialmente, crie uma instância da Cloud Enterprise Network (CEN) para conectar a VPC em Shanghai (vpc-api-access) e a VPC em Zhangjiakou (vpc-fc-access). Isso possibilita a interconexão dos services. Para mais detalhes sobre a configuração da CEN, consulte a documentação da CEN. Acesse o CEN console para criar uma instância CEN. Repita a operação de anexar instância de rede para vincular tanto a vpc-api-access quanto a vpc-fc-access à instância CEN .
-
Configure a largura de banda.
Adquira um plano de largura de banda para comunicação dentro da instância CEN. Este exemplo utiliza o plano mínimo de 2 Mbit/s. Adquira um plano conforme suas necessidades.
Defina as configurações de largura de banda entre regiões. Especifique um valor de largura de banda para as regiões conectadas. Também é possível alocar um único plano de largura de banda para múltiplas conexões entre regiões.
-
Configure o roteamento entre VPCs.
Para esta etapa, abra um ticket para a equipe da CEN. Forneça as informações de configuração baseadas nas descrições de parâmetros da operação ResolveAndRouteServiceInCen. Isso conecta o API Gateway à VPC em Zhangjiakou.
AccessRegionIds.1=cn-zhangjiakou AccessRegionIds.2=cn-shanghai CenId=cen-uggzcthgz7cwsl7prr #The ID of the CEN instance. Host=100.104.255.128/26 #The egress IP address of the dedicated API Gateway instance in the VPC. HostRegionId=cn-shanghai HostVpcId=vpc-uf65amr4k3aepd0u4gnxa #API Gateway is in the China (Shanghai) region. This is the ID of vpc-api-access.Encontre o endereço IP de saída para a conexão VPC da instância dedicada do API Gateway na página de gerenciamento de instâncias, conforme a figura a seguir:

Depois que o ticket for resolvido e a configuração concluída, visualize as rotas configuradas no console da CEN. Verifique se políticas de roteamento foram adicionadas tanto para a região de Shanghai quanto para a de Zhangjiakou. Uma rota personalizada também foi incluída com base nas informações fornecidas.
-
Configure uma API com o tipo de service de backend definido como VPC.
Conforme descrito na Etapa 2 do Cenário 1, configure uma API com service de backend em VPC.
-
Configure as permissões de acesso à rede interna da VPC para o API Gateway.
Siga as instruções da Etapa 3 do Cenário 1 para configurar as permissões de acesso à rede interna da VPC ao API Gateway.
-
Ative um nome de domínio interno para o grupo de APIs.
Siga a Etapa 4 do Cenário 1 para ativar o nome de domínio interno do grupo de APIs.
-
Crie uma função.
No Function Compute da região China (Zhangjiakou), crie um aplicativo e uma função que use o runtime Python. O código da função está na figura a seguir:

-
Configure o acesso à VPC para o Function Compute.
De forma semelhante à Etapa 6 do Cenário 1, crie um vSwitch na vpc-fc-access. Depois, configure as definições de service no console do Function Compute.
-
Execute a função para testá-la.
Após a execução, verifique se o Function Compute acessa a API utilizando o nome de domínio de segundo nível da VPC.

Limites
Somente instâncias dedicadas do API Gateway são compatíveis.