Uma introdução aos gatilhos disponíveis para invocar uma função lambda

Uma introdução aos gatilhos disponíveis para invocar uma função lambda
AWS Lambda é um incrível serviço baseado em nuvem que revolucionou o mundo sem servidor. Na verdade, é um software como um serviço (SaaS) que pode ser facilmente e rapidamente configurado e é útil para reduzir o orçamento geral da sua infraestrutura em nuvem. O que você precisa fazer é apenas projetar seu código e executá -lo usando a função Lambda.

Agora, o ponto aqui é como você deve executar seu código na função e a resposta para isso é que há uma longa lista de métodos através dos quais você pode invocar ou acionar suas funções de lambda. Isso inclui muitos outros serviços da AWS que podem ser usados ​​para chamar a função desejada quando necessário.

Neste artigo, você verá uma breve explicação sobre os serviços e técnicas que podem ser aplicadas para invocar suas funções Lambda na Amazon.

Tipos de invocações

Antes de avançarmos, vamos discutir os dois principais tipos de invocações seguintes que a função Lambda pode lidar.

  • Invocações síncronas
  • Invocações assíncronas
  1. Invocações síncronas
    Nas invocações síncronas, o serviço que invoca o lambda precisa esperar até que os resultados sejam devolvidos a ele e depois continuem o restante do processo. Também podemos dizer que a saída da função Lambda é exigida pela própria função ou serviço que invocou este lambda.
  2. Invocações assíncronas

    Aqui, não há espera pelas funções Lambda para fornecer os resultados de volta ao invólucro. Isso é usado principalmente para notificações ou para acionar outros eventos independentes na AWS. O serviço que deseja invocar a função Lambda apenas envia o gatilho e essa operação é filmada no Lambda e será executada por sua vez.

Maneiras diferentes de invocar Lambda

Aqui, você vai ver várias maneiras de invocar as funções Lambda. Sabendo que isso é muito útil para você na próxima vez que você projetar sua infraestrutura AWS simples, mas econômica.

Invocar diretamente as funções lambda

Na maioria dos casos, as funções Lambda são projetadas para serem acionadas usando outros serviços, mas você pode invocá -los diretamente usando o AWS Management Console, a AWS CLI e através do URL da função.

Invocando Lambda do Console de Gerenciamento

Quando você cria qualquer função lambda em seu console da AWS, você pode acioná -lo facilmente usando a opção de execução de teste no console. O Teste O botão está disponível na seção de código da função Lambda.

Você pode criar um evento personalizado e usar o console com seu padrão de evento personalizado.

Dessa forma, a função Lambda pode ser desencadeada do console da AWS.

AWS CLI

AWS oferece a capacidade de usar todos os seus recursos usando a interface da linha de comando da AWS. Qualquer função lambda também pode ser invocada com esta CLI. Isso pode ser muito eficaz para testar as coisas durante os estágios de desenvolvimento. Após o comando da AWS CLI, pode ser usado como um gatilho para invocar a função Lambda.

ubuntu@ubuntu: ~ $ AWS Lambda Invoke \
--nome da função \
--carga útil \
--formato cli-binário < base64 | raw-in-base64-out >

A função é acionada com sucesso e você também pode observar isso na saída.

Função url

URL da função é na verdade um ponto de extremidade HTTP que você pode configurar para suas funções lambda. Este URL pode ser usado para acionar as funções Lambda e você também pode compartilhar esse URL com outros usuários, mesmo fora da sua conta da AWS para invocar as funções Lambda. Embora você deva ter cuidado com os URLs da função, qualquer pessoa com este link pode desencadear sua função lambda inúmeras vezes, e todos os custos estarão de cabeça.

Um URL de função pode ser configurado ao criar e depois de criar a função Lambda. Para isso, basta ir para as configurações avançadas na seção de configuração e verifique o Ativar URL da função caixa.

Caso você não tenha anexado um URL de função ao criar a função Lambda, você pode fazer isso mais tarde. Para isso, você precisa ir para a guia Configuração, selecionar o URL da função e clicar em Crie URL da função.

Dessa forma, o URL da função é criado e usado para invocar a função Lambda.

Invocar as funções lambda usando serviços da AWS

Muitos serviços da AWS podem ser configurados como um gatilho para invocar a função Lambda. Você só precisa configurar os serviços da AWS como um gatilho para invocar a função Lambda. Aqui, passamos por todos esses serviços com uma explicação sobre como usá -los como seus gatilhos de lambda.

API Gateway

Este é um serviço da AWS que é amplamente utilizado para criar e gerenciar as APIs em seu modelo de aplicativo. As APIs fornecem uma maneira muito flexível de gerar solicitações ou chamadas de um pacote de software para outro pacote que não podemos expor diretamente e apenas queremos manter os bastidores.

Para adicionar qualquer serviço como um gatilho à sua função Lambda, basta acessar a função Lambda e clique em Adicionar gatilho.

Em seguida, você pode selecionar o serviço que deseja anexar como um gatilho à sua função Lambda. Para esta seção, selecionamos o gateway da API como gatilho para a função Lambda.

Em seguida, configure o serviço como você deseja que ele atue em sua estrutura de aplicativos.

Existem dois tipos de APIs suportadas pelo gateway da API e podem ser utilizadas para invocar uma função lambda.

HTTP APIS: Eles são usados ​​para gerar os terminais HTTP que são roteados para suas funções lambda. APIs http dão menos funcionalidade e são menos caras para usar.

APIs de descanso: Se você deseja mais recursos em sua API, você deve optar por uma API de descanso. Essas APIs podem invocar a função Lambda e usar os mesmos métodos HTTP, proporcionando mais flexibilidade e independência.

S3 Bucket

Existem muitos casos de uso em que você verá que os baldes S3 estão agindo como um gatilho para invocar a função Lambda. Você pode configurar um balde S3 para acionar a função Lambda para um evento S3 específico.

Por exemplo, você deseja coletar os metadados de qualquer arquivo quando for carregado no seu balde. Para isso, você desenvolve um código e o implanta na função Lambda. Para o gatilho Lambda, selecione o balde S3. Para o tipo de evento, selecione Coloque o objeto. Para que, sempre que um novo arquivo é adicionado ao balde, a função Lambda é acionada e os metadados do objeto são coletados e armazenados no local de destino quando você especificar.

Pode haver muitos outros cenários em que o S3 pode ser usado como um gatilho para invocar a função Lambda.

Balanceador de carga

Suponha que seu aplicativo tenha sido projetado para executar as funções Lambda, pois a função Lambda é a solução mais econômica para um aplicativo simples baseado em nuvem. Agora, para expor seu aplicativo aos usuários finais, convém anexar um balanceador de carga na frente dele. Para esta seção, selecione o balanceador de carga que atua como gatilho para invocar a função Lambda. Lembre -se de que você só pode configurar o balanceador de carga do aplicativo para esta tarefa, pois outros balanceadores de carga não são suportados pelas funções Lambda.

Para adicionar o balanceador de carga do aplicativo à função Lambda, você primeiro precisa criar um grupo -alvo e a função Lambda é adicionada a esse grupo -alvo. Agora, o grupo -alvo recém -criado pode ser adicionado aos ouvintes do balanceador de carga do aplicativo.

CloudFront

A Amazon CloudFront é na verdade uma CDN (rede de entrega de conteúdo) e é usada para cache os dados do aplicativo em locais de borda muito mais próximos dos usuários finais em comparação com os servidores de aplicativos reais. Usando o CloudFront, você pode realmente melhorar o tempo de resposta para servir o conteúdo estático aos usuários finais em todo o mundo.

As funções Lambda podem ser acionadas usando o serviço CloudFront. Para isso, você precisa implantar sua função lambda em locais de borda em todo o mundo, conhecida como lambda@edge.

Você pode definir o CloudFront como gatilho para enviar as solicitações para o lambda@egde através do CloudFront para melhorar o tempo de resposta. À medida que o Lambda@Edge é implantado em todos os locais da borda em todo o mundo, os usuários finais enfrentam o tempo mínimo de resposta, acessando o local da borda mais próxima da Lambda.

Para configurar isso, basta ir para Adicione o gatilho e escolha o serviço CloudFront. Lá, você verá o implantar para lambda@edge opção.

Agora, você só precisa concluir as etapas de configuração e iniciá -lo.

Logs CloudWatch

Sempre que você pensa em monitorar na nuvem da AWS, a primeira coisa que vem à mente é o CloudWatch, pois este é um serviço de monitoramento muito vasto que pode ser configurado para diferentes serviços de uma maneira muito útil.

Os logs do CloudWatch, como o nome define, é um serviço de log que pode ser usado para armazenar todos os tipos de logs. Você pode criar diferentes grupos de log para diferentes serviços para manter os logs separados. Esses logs podem ser usados ​​para acionar sua função Lambda com base nos eventos que estão recebendo, independentemente do serviço ou procedimento que produz esses eventos.

Você pode configurar o gatilho do console da função Lambda ou diretamente dos logs do CloudWatch. Para fazer isso no console do CloudWatch, basta ir ao serviço CloudWatch e abrir os grupos de log. Aqui, você tem que criar um filtro de assinatura Lambda.

Em seguida, escolha a função lambda que você deseja e você está pronto para ir.

Agora, sempre que o CloudWatch recebe esse fluxo de log, ele atua como um gatilho para invocar a função Lambda.

Eventbridge

Amazon Eventbridge (anteriormente conhecido como CloudWatch Events) é um serviço da AWS que permite criar as regras do evento para acionar um serviço específico da AWS em um evento específico que acontece em uma conta da AWS.

Existe uma grande variedade de regras que você pode definir para serviços da AWS (como a criação de instâncias do EC2 ou os eventos de banco de dados RDS), bem como serviços de terceiros (como o Github Push Event). Essas regras podem estar ainda mais ligadas a outros serviços, como as funções Lambda, de tal maneira que sempre que essa regra for satisfeita, ela chama a função Lambda.

Se você já possui uma regra de eventbridge definida, pode adicionar facilmente esta regra como um gatilho à sua função Lambda. Selecione o Eventbridge como seu gatilho e simplesmente forneça o nome da regra.

Uma regra existente é adicionada aqui como um gatilho, mas você também pode criar uma regra neste momento.

DynamoDB

Você deve saber que o DynamoDB é apenas um banco de dados NoSQL e aparece como um serviço totalmente separado na AWS. Este é um banco de dados sem servidor totalmente configurado e você pode começar diretamente a criar tabelas. Essas tabelas do DynamoDB podem ser configuradas para atuar como gatilhos para invocar as funções Lambda.

Os dados do DynamoDB podem ser carregados para Lambda como entrada na forma de lotes e são processados ​​usando o código que é implantado em Lambda.

Kinesis

Se você deseja coletar e analisar os dados em tempo real a uma taxa alta, pode se beneficiar da AWS Kinesis. Suponha que você queira processar os dados coletados pelos fluxos de dados da Kinesis usando as funções Lambda. Você simplesmente precisa acionar sua função Lambda cada vez que os dados são registrados pela Kinesis.

Você acabou de configurar seu fluxo de dados de Kinesis para invocar a função Lambda.

SNS

É simplesmente um serviço de notificação comumente usado para enviar notificações de um serviço da AWS para o outro, porque às vezes não há como configurar as notificações diretamente de um serviço para o outro. As funções lambda podem ser acionadas usando este serviço.

Crie um tópico SNS primeiro e depois use -o para invocar sua função lambda.

Você tem que selecionar o nome do seu tópico SNS. Não há outras configurações ou configurações.

Conclusão

Amazon Lambda é realmente um avanço na arquitetura em nuvem. Desenvolvimento e implantação de aplicativos nunca foram tão fáceis e diretos antes dele. Ele permite que você simplesmente crie seu código em qualquer estrutura comum e envie seu código para o Lambda e ele é executado. Há uma longa lista de outros serviços que podem ser acoplados ao AWS Lambda e agem como um gatilho para invocar sua função Lambda somente quando for necessário. Não há custo de execução contínuo do servidor, mas você será cobrado, dependendo do número de gatilhos e do tempo de execução do código.