O Function Compute permite usar o Application Load Balancer (ALB) como origem de eventos. Para isso, adicione um grupo de servidores do tipo Function Compute a uma instância do ALB. Essa configuração habilita o ALB a encaminhar solicitações ao Function Compute e invocar funções.
Visão geral
O ALB aceita o Function Compute como serviço de backend. Ao receber uma solicitação, o ALB a encaminha ao Function Compute e aciona a invocação da função. Após a conclusão da execução, o Function Compute retorna o resultado como resposta ao solicitante.
A comunicação entre o ALB e o Function Compute (FC) ocorre de forma segura pela rede interna da Alibaba Cloud.
Principais recursos
Suporte à arquitetura serverless: adicionar o Function Compute como serviço de backend no ALB simplifica a criação de aplicações serverless e reduz os custos de operações e manutenção.
Dimensionamento elástico automático: o Function Compute ajusta automaticamente os recursos de computação conforme o tráfego, garantindo capacidade suficiente nos picos e conservando recursos em períodos de baixa demanda.
Alta disponibilidade e tolerância a falhas: o uso conjunto do ALB com o Function Compute oferece alta disponibilidade e recuperação de desastres, assegurando a operação estável da aplicação.
Cenários
Microsserviços: utilize os recursos avançados de roteamento do ALB para direcionar solicitações a diferentes funções de microsserviços. O Function Compute dimensiona dinamicamente para lidar com requisições de alta concorrência, melhorando a elasticidade e a confiabilidade do sistema.
Processamento de dados em tempo real: encaminhe solicitações de processamento de dados pelo ALB até as funções adequadas. Com poucas linhas de código e configuração simples, o Function Compute viabiliza o tratamento de dados em tempo real.
Processamento orientado a eventos: o ALB recebe solicitações disparadas por eventos e as repassa às funções correspondentes. O Function Compute processa esses eventos e armazena os resultados em um banco de dados ou os envia a outros serviços, permitindo fluxos de trabalho dinâmicos baseados em eventos.
Processamento de imagens e vídeos: o ALB recebe solicitações de upload de imagens ou vídeos e as roteia para funções dedicadas ao processamento. O Function Compute fornece recursos de computação elásticos que se ajustam automaticamente à carga de trabalho, garantindo a conclusão eficiente das tarefas.
Limites
Para verificar as regiões onde o ALB aceita o Function Compute como serviço de backend, consulte Regiões que suportam anexar o Function Compute ao ALB.
A instância do ALB e a função devem estar na mesma região.
Um grupo de servidores do tipo Function Compute no ALB aceita apenas uma função como servidor de backend.
Se o Handler Type do Function Compute 2.0 estiver definido como Process event requests, configure um gatilho HTTP ao associar a função ao ALB.
Exemplo de cenário
Uma empresa de e-commerce implantou o ALB em uma região da Alibaba Cloud para lidar com grandes volumes de solicitações de usuários. Com o crescimento dos negócios e o aumento do tráfego, a organização precisava de uma maneira flexível e eficiente para gerenciar tarefas como geração dinâmica de conteúdo, análise de comportamento do usuário e recomendações personalizadas.
Para atender a essa necessidade, a empresa integrou o serviço Function Compute da Alibaba Cloud ao ALB. Essa integração permitiu o tratamento eficiente dessas tarefas e melhorou significativamente a experiência do usuário.
Pré-requisitos
Você já criou uma instância do ALB.
Procedimento
Etapa 1: Criar uma função
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 em Create Function.
-
Na página de detalhes da função, acesse a aba Code e clique em Test Function.
Após a execução bem-sucedida, visualize o resultado da função na seção Response. Neste exemplo, o resultado retornado é
hello world.
Na página Create Function, selecione o tipo Event Function, escolha um runtime, selecione o código de amostra padrão, mantenha todos os outros parâmetros com os valores predefinidos e clique em Create. Este tópico usa o runtime integrado do Node.js como exemplo.
Etapa 2: Criar um grupo de servidores do tipo Function Compute
No console do Application Load Balancer (ALB), no painel de navegação à esquerda, escolha Server Groups. Na barra de menu superior, selecione a região de destino e clique em Create Server Group.
-
Na caixa de diálogo Create Server Group, defina Server Group Type como Function Compute Type e clique em Create.
ImportanteQuando as verificações de integridade do ALB estão ativadas, cada sondagem conta como uma solicitação do Function Compute e gera cobranças.
Insira um nome em Server Group Name, como
fc3.0. Na caixa de diálogo The server group is created, clique em Add Backend Server.
-
No painel Add Backend Server, selecione a função criada e clique em OK.
Este tópico utiliza o Configuration Mode Select Resource. Em Function Name, selecione a função criada. Defina Version como LATEST. Para usar Configure by ARN, primeiro obtenha o ARN da função.
Etapa 3: Configurar um listener
No painel de navegação à esquerda, escolha e clique no ID da instância.
Clique na aba Listener e em Create Listener.
-
Na página do assistente Configure Listener, configure o protocolo e a porta do listener e clique em Next.
Este tópico usa o protocolo HTTP e a porta 80. Mantenha os demais parâmetros do listener HTTP com os valores predefinidos ou modifique-os conforme necessário.
Na página do assistente Server Group, na lista suspensa Server Group, escolha Function Compute Type, selecione o grupo de servidores de destino e clique em Next.
Na página do assistente Configuration Review, confirme suas configurações e clique em Submit.
Etapa 4: Teste de conectividade
Após concluir as operações anteriores, o Function Compute e o ALB estabelecem uma conexão. Abra uma janela de linha de comando e execute o comando curl <ALB instance domain name> para testar a conectividade entre o ALB e o Function Compute.
Antes de executar o comando abaixo, substitua
alb-n9p0q18eh2pbw****.{region_id}.alb.aliyuncsslb.compelo nome de domínio real da sua instância do ALB.Se você acessar o ALB por uma rede privada, garanta que a VPC da sua rede atual corresponda à VPC da instância do ALB.
Caso tenha configurado a resolução de nome de domínio para o domínio da instância do ALB e vinculado um nome de domínio personalizado, substitua
alb-n9p0q18eh2pbw****.{region_id}.alb.aliyuncsslb.compelo seu nome de domínio personalizado.
curl alb-n9p0q18eh2pbw****.{region_id}.alb.aliyuncsslb.com
Se você receber a saída a seguir, o ALB encaminhou as solicitações com sucesso ao Function Compute e invocou a função.
curl alb-n9p0q18elxxx.alb.aliyuncsslb.com
hello world
Informações adicionais
Em cenários de produção, utilize um nome de domínio personalizado. Configure a resolução de registro CNAME para apontar seu nome de domínio personalizado ao nome de domínio da instância do ALB. Após a configuração, acesse a função usando seu nome de domínio personalizado. Antes de vincular um nome de domínio personalizado, registre um nome de domínio e conclua o processo de arquivamento ICP.
Ao criar um grupo de servidores, se as verificações de integridade estiverem ativadas, cada sondagem conta como uma solicitação do Function Compute e gera cobranças.