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

Uma Introducao Aos Gatilhos Disponiveis Para Invocar Uma Funcao Do Lambda



O AWS Lambda é um incrível serviço baseado em nuvem que revolucionou o mundo sem servidor. Na verdade, é um software como serviço (SaaS) que pode ser configurado com facilidade e rapidez e é útil para reduzir o orçamento geral de 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 pelos quais você pode invocar ou acionar suas funções 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 aplicados para invocar suas funções lambda na Amazon.







Tipos de invocações

Antes de prosseguirmos, vamos discutir os dois principais tipos de invocações a seguir que a função lambda pode manipular.



  • 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 retornados a ele e, em seguida, continuar 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 esse lambda.
  2. Invocações assíncronas

    Aqui, não há espera para que as funções lambda forneçam os resultados de volta ao invocador. Isso é usado principalmente para notificações ou para acionar alguns outros eventos independentes na AWS. O serviço que deseja invocar a função lambda apenas envia o trigger e essa operação é enfileirada no lambda e será executada por sua vez.



Diferentes maneiras de invocar o Lambda

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





Invocar diretamente as funções do Lambda

Na maioria dos casos, as funções lambda são projetadas para serem acionadas usando outros serviços, mas você pode invocá-las diretamente usando o console de gerenciamento da AWS, a AWS CLI e por meio do URL da função.

Invocando o Lambda no console de gerenciamento

Ao criar qualquer função lambda no console da AWS, você pode acioná-la 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 acionada no console da AWS.

AWS CLI

A AWS oferece a capacidade de usar todos os seus recursos usando a interface de 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. Seguir o comando da AWS CLI pode ser usado como um gatilho para invocar a função lambda.

[e-mail protegido] :~$ aws lambda invocar \
--nome-função < Insira o nome da função do Lambda > \
--carga < Valor de entrada por Função Lambda > \
--cli-binary-format < base64 | raw-in-base64-out > < Nome do arquivo de saída >

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

URL da função

O URL da função é, na verdade, um endpoint HTTP que você pode configurar para suas funções lambda. Esse 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 de função, qualquer pessoa com esse link pode acionar sua função lambda inúmeras vezes, e todos os custos serão por sua conta.

Uma URL de função pode ser configurada durante a criação e após a criação da função lambda. Para isso, basta acessar as configurações avançadas na seção de configuração e verificar o Ativar URL da função caixa.

Caso você não tenha anexado um URL de função ao criar a função lambda, poderá fazê-lo mais tarde. Para isso, você deve acessar a guia de configuração, selecionar a URL da função e clicar em Criar URL de função .

Dessa forma, a URL da função é criada e usada para invocar a função lambda.

Invocar funções do Lambda usando os 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 lambda.

Gateway de API

Este é um serviço da AWS amplamente usado para criar e gerenciar as APIs em seu modelo de aplicativo. As APIs oferecem 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 queremos apenas manter os bastidores.

Para adicionar qualquer serviço como um gatilho à sua função lambda, basta acessar a função lambda e clicar 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 de API como gatilho para a função lambda.

Em seguida, configure o serviço como você deseja que ele atue na estrutura do aplicativo.

Existem dois tipos de APIs compatíveis com o gateway de API e elas podem ser utilizadas para invocar uma função lambda.

APIs HTTP : eles são usados ​​para gerar os endpoints HTTP que são roteados para suas funções lambda. As APIs HTTP oferecem menos funcionalidade e são menos dispendiosas de usar.

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

Balde S3

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

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

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 seja projetado para ser executado em 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 compatíveis com funções lambda.

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

CloudFront

O Amazon CloudFront é na verdade uma CDN (Content Delivery Network) e é usado para armazenar em cache os dados do aplicativo em pontos de presença 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 fornecer 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 pontos de presença em todo o mundo, conhecidos como [e-mail protegido]

Você pode definir o CloudFront como gatilho para enviar as solicitações ao [e-mail protegido] através do CloudFront para melhorar o tempo de resposta. Enquanto o [e-mail protegido] é implantado em todos os pontos de presença em todo o mundo, os usuários finais enfrentam um tempo de resposta mínimo ao acessar o local de presença mais próximo implantado do lambda.

Para configurar isso, basta acessar adicionar gatilho e escolha o serviço CloudFront. Lá, você verá o implantar para [e-mail protegido] opção.

Agora, você só precisa concluir as etapas de configuração e começar.

Registros do CloudWatch

Sempre que você pensa em monitorar na nuvem 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 maneira muito útil.

Os logs do CloudWatch, como o nome define, são um serviço de log que pode ser usado para armazenar todos os tipos de logs. Você pode criar diferentes grupos de logs 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 no console de função lambda ou diretamente nos logs do CloudWatch. Para fazer isso no console do CloudWatch, basta acessar o serviço CloudWatch e abrir os grupos de logs. Aqui, você precisa criar um filtro de assinatura lambda.

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

Agora, sempre que o CloudWatch obtém esse fluxo de logs, ele age como um gatilho para invocar a função lambda.

EventBridge

O Amazon EventBridge (anteriormente conhecido como CloudWatch Events) é um serviço da AWS que permite criar as regras de eventos para acionar um serviço específico da AWS em um evento específico que ocorre em uma conta da AWS.

Há uma grande variedade de regras que você pode definir para serviços da AWS (como criação de instâncias EC2 ou eventos de banco de dados RDS), bem como serviços de terceiros (como evento push do GitHub). Essas regras podem ser vinculadas a outros serviços, como funções lambda, de forma que sempre que essa regra for satisfeita, ela invocará a função lambda.

Se você já tiver uma regra do EventBridge definida, poderá adicionar facilmente essa regra como um gatilho à sua função lambda. Selecione o EventBridge como seu acionador 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 a criar tabelas diretamente nele. Essas tabelas do DynamoDB podem ser configuradas para atuar como gatilhos para invocar as funções lambda.

Os dados do DynamoDB podem ser carregados no lambda como entrada na forma de lotes e são processados ​​usando o código implantado no lambda.

Kinesis

Se você deseja coletar e analisar os dados em tempo real em alta velocidade, pode se beneficiar do AWS Kinesis. Suponha que você queira processar os dados coletados pelos streams de dados do Kinesis usando as funções lambda. Você simplesmente precisa acionar sua função lambda toda vez que os dados são gravados pelo Kinesis.

Você acabou de configurar seu stream de dados do 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 outro porque às vezes não há como configurar as notificações diretamente de um serviço para outro. As funções lambda podem ser acionadas usando este serviço.

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

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

Conclusão

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