Por padrão, as funções criadas no Function Compute podem acessar a rede pública, mas não os recursos dentro de uma Virtual Private Cloud (VPC). Para permitir que a função acesse recursos da VPC ou restringir sua invocação a VPCs específicas, configure manualmente as configurações de rede e as permissões. Este tópico descreve como configurar a rede de uma função no console do Function Compute.
Notas de uso
Ao configurar o acesso à VPC para uma função acelerada por GPU criada a partir de uma imagem de instância do Alibaba Cloud Container Registry (ACR) Enterprise Edition, selecione a VPC e o vSwitch de acordo com os seguintes princípios:
Se a página Access Control da instância do ACR Enterprise Edition exibir um Access IP com a tag Default Resolution, defina a VPC e o vSwitch da função como a VPC e o vSwitch correspondentes ao endereço IP de resolução padrão.
Se a página Access Control da instância do ACR Enterprise Edition exibir um Access IP sem a tag Default Resolution, defina a VPC e o vSwitch da função como qualquer par vinculado à instância.
Capacidades de acesso à rede
Ativar o acesso à VPC pode aumentar a latência de cold start do Function Compute. Recomendamos usar essa configuração apenas quando necessário. Como alternativa, considere usar a autorização do RAM para acessar recursos. Para mais informações, consulte Use uma role da função para acessar outros serviços cloud.
A invocação de uma função ou o seu acesso a um endereço de rede gera tráfego. Esse tráfego se enquadra nas seguintes categorias:
Tráfego de rede pública: tráfego gerado ao acessar endereços da Internet, como o site oficial da Alibaba Cloud, Taobao ou endpoints públicos de serviços cloud.
Tráfego de VPC: tráfego gerado ao acessar recursos dentro da sua VPC, como endpoints do RDS, endpoints do NAS ou os endereços IP privados de instâncias do ECS.
As capacidades de acesso à rede de uma função dependem das suas configurações. Configure-as conforme a necessidade.
-
Tráfego de saída da função: refere-se à capacidade de uma função enviar tráfego de saída para a rede pública ou para recursos em uma VPC. As configurações correspondentes são Allow VPC Access e Allow function to access public network.
Tabela 1. Tráfego de saída da função
Configuração
Descrição
Permitir que a função acesse apenas a rede pública
A função acessa a rede pública e a rede interna do Function Compute. O acesso pela sua VPC é desativado.
Configuração de rede necessária:
Defina Allow VPC Access como No.
Defina Allow function to access public network como Yes.
Permitir que a função acesse apenas uma VPC
A função acessa a rede pública e os recursos internos apenas por meio da sua VPC. Esta opção é adequada para cenários que envolvem PrivateZone, NAT Gateway ou funções vinculadas a uma VPC.
Configuração de rede necessária:
Defina Allow VPC Access como Yes e configure as informações da VPC que a função pode acessar.
Defina Allow function to access public network como No.
Permitir que a função acesse a rede pública e uma VPC
Para funções sem GPU:
Acesse a rede pública pela rede da função.
Acesse a rede interna por meio da sua VPC. Há suporte ao PrivateZone para resolução de nomes de domínio privados.
Para funções com GPU:
Acesse a rede pública e a rede interna no bloco CIDR 100.0.0.0/8 pela rede da função.
Acesse a rede interna fora do bloco CIDR 100.0.0.0/8 pela sua VPC. Não há suporte ao PrivateZone para resolução de nomes de domínio privados. Para ativar esse recurso, abra um ticket.
Configuração de rede necessária:
Defina Allow VPC Access como Yes e configure as informações da VPC que a função pode acessar.
Defina Allow function to access public network como Yes.
Impedir que a função acesse a rede pública e uma VPC
A função pode acessar a rede interna do Function Compute. O acesso à rede pública e à sua VPC é desativado. Configuração de rede necessária:
Defina Allow VPC Access como No.
Defina Allow function to access public network como No.
-
Tráfego de entrada da função: refere-se à capacidade de uma função receber tráfego de entrada da rede pública ou de uma VPC. A configuração correspondente é Allow Only Specified VPCs to Invoke the Function.
Tabela 2. Tráfego de entrada da função
Configuração
Descrição
Permitir que a função seja invocada pela rede pública e por VPCs
Por padrão, uma nova função pode ser invocada pela rede pública e de dentro de VPCs. A configuração de rede padrão é a seguinte:
Defina Allow Only Specified VPCs to Invoke the Function como No.
Permitir que a função seja invocada apenas por VPCs especificadas
Essa configuração permite a invocação da função apenas a partir de VPCs especificadas e nega solicitações da rede pública. Configuração de rede necessária:
Defina Allow Only Specified VPCs to Invoke the Function como Yes e configure as VPCs a partir das quais a função pode ser invocada.
Zonas de disponibilidade com suporte
Se os seus recursos estiverem localizados em uma zona de disponibilidade sem suporte do Function Compute, crie um vSwitch no seu ambiente de VPC dentro de uma zona de disponibilidade com suporte do Function Compute e, em seguida, defina o ID desse vSwitch na configuração de VPC da função do Function Compute. Como os vSwitches dentro da mesma VPC podem se comunicar entre si pela rede privada, o Function Compute pode usar o vSwitch para acessar recursos em outras zonas de disponibilidade dentro da mesma VPC. Para mais informações, consulte What do I do if I encounter the 'vSwitch is in unsupported zone' error?.
Pré-requisitos
-
(Opcional) Crie recursos de rede
Se você não criou os recursos necessários, selecione Automatic Configuration durante o processo de configuração. Caso contrário, crie os recursos antecipadamente seguindo as instruções nestes tópicos:
Configure rede e funções
Faça login no console do Function Compute. No painel de navegação à esquerda, escolha .
Na barra de navegação superior, selecione uma região. Na página Functions, clique na função de destino.
Na página de detalhes da função, clique na aba Configuration e, em seguida, clique em Modify na seção Advanced Settings.
-
No painel Advanced Settings, localize a seção Network, configure as configurações conforme necessário e clique em Deploy.
-
Allow VPC Access: controla se a função pode acessar recursos em uma VPC. Valores válidos:
-
Ative: permite que a função acesse recursos em uma VPC. Após selecionar Ative, selecione um Configuration Method. Valores válidos:
(Recomendado) Automatic Configuration: o Function Compute cria automaticamente recursos como VPC, vSwitch e grupo de segurança. O sistema reutiliza os recursos existentes na região atual em vez de criar novos.
-
Custom Configuration: selecione manualmente os recursos de rede existentes. Certifique-se de ter criado os recursos necessários antecipadamente.
-
VPC: selecione a VPC que deseja acessar na lista.
ImportanteVocê pode criar no máximo 10 vSwitches na VPC selecionada.
-
vSwitch: selecione pelo menos um vSwitch na lista.
Este campo especifica as sub-redes que o Function Compute pode acessar. Recomendamos especificar dois ou mais vSwitches. Isso permite que sua função seja executada em outras sub-redes caso uma zona de disponibilidade falhe ou os endereços IP em uma sub-rede se esgotem.
-
Security Group: selecione um grupo de segurança na lista.
Esse grupo de segurança associa uma interface de rede elástica (ENI) à função, o que controla o acesso aos recursos dentro da VPC. Por padrão, as regras de saída do grupo de segurança permitem todo o tráfego. Também é possível configurar regras de saída para definir políticas de controle de acesso refinadas para a função.
NotaAs regras de saída do grupo de segurança devem permitir o protocolo ICMP. O Function Compute usa o ICMP para verificar a conectividade de rede da VPC.
-
Disable: impede que a função acesse recursos em uma VPC.
-
Static Public IP: especifica se deve obter um endereço IP público estático para acesso à internet usando um NAT Gateway e um Elastic IP Address. Para mais informações, consulte Configure um endereço IP público estático.
-
Allow Default ENI to Access the Internet: especifica se deve permitir que a função acesse a rede pública. Valores válidos:
Ative: permite que a função acesse a rede pública.
Disable: impede que a função acesse a rede pública.
-
Allow Only Specified VPCs to Invoke the Function: especifica se deve permitir que a função seja invocada apenas por VPCs especificadas. Valores válidos:
-
Ative: permite que a função seja invocada apenas por VPCs especificadas. Observe os seguintes pontos:
Uma função pode ser vinculada a no máximo 20 VPCs.
A invocação da função por um gatilho não é afetada.
A vinculação de VPC se aplica a todas as versões e aliases da função.
Após ativar essa configuração, as solicitações de invocação da rede pública e de outras VPCs são negadas. O sistema retorna um
StatusCode403, umErrorCodedeAccessDeniede a mensagem de erroResource access is bound by VPC: VPC ID.A vinculação de VPC tem suporte apenas em endpoints HTTP privados e endpoints HTTPS privados. Não há suporte para endpoints públicos.
Disable: permite que a função seja invocada pela rede pública e por todas as VPCs.
-
-
Perguntas frequentes
-
Por que o Function Compute falha ao se conectar a uma VPC para depuração?
Se você ativou o acesso à VPC para a sua função, mas a conexão falhou, as possíveis causas são as seguintes:
A sub-rede que hospeda o vSwitch está com falha ou os endereços IP na sub-rede se esgotaram. Forneça dois ou mais IDs de vSwitch ao configurar a VPC. Essa configuração melhora a tolerância a falhas, permitindo que sua função seja executada em outras zonas de disponibilidade caso uma delas falhe.
-
O grupo de segurança está configurado incorretamente. Configure o grupo de segurança da seguinte forma:
Defina as regras de entrada do grupo de segurança na VPC para permitir o acesso a partir do grupo de segurança do Function Compute.
As regras de saída do grupo de segurança devem permitir o protocolo ICMP. O Function Compute usa o ICMP para verificar a conectividade de rede da VPC.
Para obter etapas detalhadas sobre como configurar um grupo de segurança, consulte Add a security group rule.
-
O que fazer se os recursos de rede forem insuficientes?
Ao criar recursos de rede VPC, a configuração automática fornece um prefixo de rede /24, que oferece 252 endereços IP disponíveis. Se você tiver muitas instâncias, poderá exceder esse limite. Nesse caso, ajuste manualmente o bloco CIDR do vSwitch e o grupo de segurança correspondente.
Solução de problemas
O Function Compute não verifica as permissões de acesso à VPC quando você configura o vpcConfig. Essas permissões são verificadas apenas durante a execução da função. Portanto, novos tipos de erros podem ocorrer ao invocar uma função usando a API InvokeFunction. A tabela a seguir descreve erros comuns que ocorrem ao acessar uma VPC para ajudar você a solucionar problemas rapidamente.
Código de erro | Código de status HTTP | Causa | Solução |
InvalidArgument | 400 | O Function Compute não oferece suporte à zona de disponibilidade do vSwitch especificado por vSwitchId. | Atualize o vSwitchId. Para mais informações, consulte Zonas de disponibilidade com suporte. |
Os recursos correspondentes a vpcId, vSwitchIds ou securityGroupId em vpcConfig não foram encontrados. | Verifique as configurações do parâmetro vpcConfig. | ||
O vSwitch ou grupo de segurança especificado não está na VPC correspondente. | Verifique as configurações do parâmetro vpcConfig para garantir que os recursos correspondentes a vSwitchId e securityGroupId estejam na VPC que corresponde a vpcId. | ||
AccessDenied | 403 | As permissões para executar operações na ENI não foram concedidas. | Verifique as permissões da função. Para mais informações, consulte Use uma role da função para acessar outros serviços cloud. |
ResourceExhausted | 429 | O bloco CIDR do vSwitch não tem endereços IP suficientes, impedindo que o Function Compute crie mais ENIs. | Crie um vSwitch com um bloco CIDR maior e atualize o parâmetro vSwitchId do vpcConfig. Nota Recomendamos usar um bloco CIDR |
Documentos relacionados
Para acessar um banco de dados em uma VPC, recomendamos configurar uma lista de permissões de endereços IP para o banco de dados. Na lista de permissões, especifique o bloco CIDR do vSwitch que você configurou nesta página. Para mais informações, consulte Access a database.
Para controlar o tráfego de saída de uma função para a rede pública, use um endereço IP estático. Para mais informações, consulte Configure um endereço IP público estático.