O AWS Lambda é um serviço da Amazon Web Services (AWS) que permite executar seu código em resposta a eventos sem a necessidade de gerenciar servidores. É uma forma simples e escalável de construir aplicações.
Neste tutorial, vou te mostrar como usar o AWS Lambda com outros três serviços:
-
Amazon S3 para armazenar arquivos, imagens e vídeos
-
Serviço de Notificação Simples da Amazon (SNS) para enviar notificações
-
Amazon EventBridge para agendar mensagens
Vamos passar por tudo passo a passo.
Ao final, com a integração dos demais serviços, você terá construído um aplicativo de Citações de Manifestação de Metas que envia mensagens inspiradoras aleatórias para te manter motivado e focado em suas metas.
Pré-requisitos
-
Uma conta AWS: Se você não tiver uma, inscreva-se aqui.
-
Um repositório no GitHub: Isso é para armazenar seu código-fonte. Se você não tiver uma conta no GitHub, pode criar uma aqui.
-
Um Ambiente de Desenvolvimento Integrado (IDE) como o Visual Studio Code ou o Sublime Text.
-
Um conhecimento básico de desenvolvimento web e de qualquer linguagem de programação de sua escolha. Eu usei Python para este tutorial.
O que Você Vai Aprender
-
Como criar um bucket Amazon S3
-
Como usar o Amazon Simple Notification Service (SNS)
-
Como usar o Amazon Lambda
-
Como usar o Amazon EventBridge
Sumário
-
Passo 2: Criar um Serviço de Armazenamento Simples da Amazon (S3)
-
Passo 3: Criar um Serviço de Notificação Simples da Amazon (SNS)
Passo 1: Configurar seu Ambiente de Desenvolvimento
Neste passo, você irá configurar tudo. Comece fazendo login na sua conta da AWS, e então instale o Python se você não tiver no seu IDE.
Passo 2: Criar um Serviço de Armazenamento Simples da Amazon (S3)
Antes de começarmos a criar um bucket S3, vamos primeiro entender o que é o Amazon S3:
O Amazon S3 (Serviço de Armazenamento Simples) é um serviço da Amazon que permite armazenar e acessar qualquer quantidade ou tipo de dados, como fotos, vídeos, documentos e backups, sempre que precisar.
Agora que você sabe o básico do que é o Amazon S3, vamos voltar ao tutorial.
Criar um Bucket S3
Existem várias maneiras de criar um bucket S3, mas para este tutorial, vamos usar a linha de comando do Ubuntu (CMD), seu terminal, ou Amazon CloudShell, dependendo de qual você se sente mais confortável.
-
Digite boto3 s3 na barra de pesquisa da web para visualizar uma lista de documentação relacionada.
-
Clique no primeiro resultado.
- Assim que a documentação estiver aberta, copie o primeiro comando que você veja.
- Cole no seu CMD OU terminal de sua escolha – mas antes disso lembre-se de “cd” para o diretório correto.
- Na documentação, role para baixo e clique em “create_bucket.
-
Assim que estiver aberto, role para baixo em “Sintaxe de solicitação”. Copie o nome do bucket e a configuração do bucket.
-
Outras variáveis listadas na sintaxe da solicitação são opcionais.
- Assim que isso estiver feito, certifique-se de salvar.
- Volte e chame o script:
#python3 nome do seu arquivo
- Executar o script cria automaticamente um bucket S3 no seu Amazon S3.
- Agora você pode ir para o console para verificar se ele foi criado:
Carregar Arquivos
Com o bucket criado, agora podemos carregar arquivos através do console. Acredito que também haja uma maneira programática de carregar arquivos e testar, mas ainda não explorei todos os métodos na documentação.
Clique no nome do bucket para ser redirecionado para a página de objetos. É aqui que você vai carregar seus arquivos para armazenamento.
Clique no botão de Upload para carregar um arquivo. Lembre-se, estamos criando um aplicativo de Cotação de Manifestação de Metas.
Agora que configuramos um bucket de armazenamento:
-
Abra uma ferramenta como Google Drive, MS Word, WPS, ou qualquer outro editor de documentos.
-
Escreva as metas que deseja alcançar.
-
Salve o arquivo em formato PDF ou DOCX.
-
Pegue o documento e faça o upload para o seu Amazon S3.o
Para verificar se é o arquivo correto:
-
Vá para a aba Permissões.
-
Role para baixo até Bloquear acesso público.
-
Clique em Editar e desmarque a caixa.
Como mostrado acima, atualmente está definido como “ligado”. Desmarque para desligar.
-
Na mesma página de configurações do bucket, modifique a política.
-
Role para baixo e você verá que uma política de bucket foi gerada automaticamente.
-
Vá em frente e copie a política.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::your-bucket-name/*"
}
]
}
- Volte para o editor de política do bucket e cole a política.
Depois de concluir essas etapas, seu objeto terá acesso público.
Retorne para a guia Objetos e clique no URL do Objeto fornecido abaixo:
Com este URL, seu upload agora está visível.
Passo 3: Criar um Amazon Simple Notification Service (SNS)
O SNS é um serviço de mensagens totalmente gerenciado fornecido pela AWS. Ele permite a comunicação entre aplicativos ou diretamente com usuários por meio do envio de notificações.
Para criar um SNS, siga estes passos:
1. Faça login no console de gerenciamento da AWS
Em seguida, vá para Amazon SNS. Navegue até o Painel do SNS e selecione Tópicos no menu à esquerda.
Para criar um tópico:
-
Clique em Criar tópico .
-
Escolha um Tipo de Tópico : Padrão (padrão) ou FIFO (para mensagens ordenadas).
-
Insira um Nome para o seu tópico. (por exemplo,
MeuPrimeiroTópicoSNS
). -
Configure configurações opcionais como criptografia, políticas de repetição de entrega ou tags.
-
Clique em Criar tópico.
2. Adicionar Assinaturas:
Depois que o tópico for criado, clique nele para abrir a página de detalhes. Selecione a guia Assinaturas.
Clique em Criar Assinatura e escolha:
-
Protocolo pode ser Email, SMS, HTTP/S, Lambda ou SQS.
-
Endpoints como endereço de e-mail, número de telefone ou URL.
Clique em Criar Assinatura.
3. Confirme a Assinatura:
Se você selecionou e-mail ou SMS, um link de confirmação ou código será enviado para o endpoint fornecido. Siga as instruções para confirmar a inscrição.
Agora que concluímos isso, vamos criar uma função do Amazon Lambda que acionará o SNS para que a mensagem seja enviada para o seu e-mail.
Passo 4: Criar uma Política do IAM
Essa política é criada para autorizar o Amazon Lambda a acionar o evento e garantir que o CloudWatch seja acionado automaticamente para monitorar os eventos da aplicação.
Para criar uma política, siga estas etapas:
1. Faça login no console de Gerenciamento da AWS.
No menu à esquerda, selecione Políticas. Em seguida:
-
Clique em Criar política.
-
Escolha a guia Visual, depois selecione o serviço SNS.
-
Em seguida, clique na guia Escolher para criar uma política personalizada.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sns:Publish",
"Resource": "arn:aws:sns:REGION:ACCOUNT_ID:goal_topic"
}
]
}
Depois, substitua os seguintes espaços reservados com suas informações:
-
região
: Sua região da AWS (por exemplo,us-east-1
). -
id-da-conta
: Seu ID da conta AWS. -
nome-do-tópico
: Nome do seu tópico SNS.
2. Visualizar e criar a política:
Você pode fazer isso seguindo estes passos:
-
Clique no botão Revisar.
-
Dê à sua política um Nome (por exemplo,
PolíticaLambdaSNS
), e opcionalmente, uma Descrição. -
Clique em Criar política.
3. Anexar política ao papel de execução do Lambda
Agora, você precisa anexar a política ao seu papel de execução do Lambda. Para fazer isso, siga estes passos:
-
Vá para a seção Funções no Console IAM.
-
Procure e selecione o papel de execução.
-
Em seguida, procure a política que você acabou de criar e selecione-a.
-
Clique em Anexar política.
Ambas as políticas serão anexadas automaticamente.
Passo 5: Criar uma função Amazon Lambda
O Amazon Lambda é um serviço da AWS que permite executar código sem gerenciar servidores. Você faz o upload do seu código, e o Lambda executa automaticamente e dimensiona conforme necessário.
Siga estes passos para criar uma função Amazon Lambda:
1. Faça login no Console de Gerenciamento da AWS:
Acesse o AWS Lambda.
2. Criar uma Função:
Clique em Criar função e escolha a opção Autor a partir do zero.
Preencha os detalhes:
-
Nome da função: Insira um nome único (por exemplo,
SNSLambdaFunction
). -
Tempo de Execução: Selecione o tempo de execução (por exemplo, Python, Node.js, Java, e assim por diante).
- Função: Escolha ou crie uma função. Se você já tiver uma função, selecione Usar uma função existente. Caso contrário, selecione Criar uma nova função com permissões básicas do Lambda.
- Clique no botão Criar função.
3. Cole o código:
Na página da função Lambda, vá para a aba Configuração:
Lembre-se, estamos tentando buscar uma citação. Vou adicionar o ARN do tópico que criamos aqui e incluir minhas chaves de API. Mas para este tutorial, usarei a API diretamente para buscar os dados.
4. Escreva o Código Lambda:
Vá para a aba Código em sua função Lambda. Em seguida, escreva ou cole o código do seu IDE para processar as mensagens SNS recebidas.
Exemplo:
Aqui está o código:
import os
import json
import urllib.request
import boto3
def fetch_random_quote():
"""
Fetches a random quote from the ZenQuotes API.
"""
api_url = "https://zenquotes.io/api/random"
try:
with urllib.request.urlopen(api_url) as response:
data = json.loads(response.read().decode())
if data and isinstance(data, list):
# Formate a citação e o autor
quote = data[0].get("q", "No quote available")
author = data[0].get("a", "Unknown author")
return f'"{quote}" - {author}'
else:
return "No quote available."
except Exception as e:
print(f"Error fetching random quote: {e}")
return "Failed to fetch quote."
def lambda_handler(event, context):
"""
AWS Lambda handler function to fetch a random quote and publish it to an SNS topic.
"""
# Obtenha o ARN do tópico SNS das variáveis de ambiente
sns_topic_arn = os.getenv("SNS_TOPIC_ARN")
sns_client = boto3.client("sns")
# Obtenha uma citação aleatória
quote = fetch_random_quote()
print(f"Fetched Quote: {quote}")
# Publique a citação no SNS
try:
sns_client.publish(
TopicArn=sns_topic_arn,
Message=quote,
Subject="Daily Random Quote to help you stay motivated and inspired to achieve your goals",
)
print("Quote published to SNS successfully.")
except Exception as e:
print(f"Error publishing to SNS: {e}")
return {"statusCode": 500, "body": "Error publishing to SNS"}
return {"statusCode": 200, "body": "Quote sent to SNS"}
5. Salvar:
Clique no botão de implantação para salvar.
6. Teste Sua Função Lambda:
Vá para a aba Teste e crie um novo evento de teste.
Em seguida, salve e execute o teste. Se for bem-sucedido, uma mensagem será enviada:
Isso significa que a mensagem foi criada para você
Por fim, verifique seu e-mail ou SMS, dependendo do endpoint que você usou para este tutorial. No meu caso, utilizei o e-mail.
Passo 6: Criar um EventBridge
O Amazon EventBridge é um serviço que ajuda a conectar aplicativos e serviços da AWS, como o Amazon SNS e o Amazon Lambda.
Para criar uma regra do Amazon EventBridge, siga estas etapas:
1. Navegue até o EventBridge:
Na barra de pesquisa, digite EventBridge e selecione-o na lista de serviços.
2. Criar uma Regra:
No console EventBridge, clique em Regras no painel esquerdo. Em seguida, clique no botão Criar regra.
3. Configurar os Detalhes da Regra:
-
Nome: Insira um nome único para a sua regra.
-
Descrição (opcional): Adicione uma descrição para explicar o que esta regra faz.
4. Escolha o Barramento de Eventos:
Selecione o barramento de eventos padrão (ou outro barramento de eventos se você tiver criado um).
5. Defina o Padrão de Evento ou Agendamento:
Para Padrão de Evento:
-
Escolha um Serviço da AWS como a fonte do evento.
-
Selecione o tipo de evento específico (por exemplo, upload de arquivo no S3 ou mudança de estado de uma instância EC2).
Para Agendamento:
- Escolha a opção Agendamento para rodar a regra em um intervalo fixo (por exemplo, a cada 5 minutos).
- Clique em continuar. Isso te levará para a página de detalhes específicos onde:
-
Role a página e clique no agendador cron. O agendador cron especifica o horário em que a mensagem será enviada.
-
Selecione “Desligado” para a opção de janela de tempo flexível.
-
Revise os detalhes da regra para confirmar se tudo está correto.
-
Clique no botão “Próximo” para prosseguir para a página Alvo.
A imagem acima mostra quando as mensagens serão enviadas.
- Na página Alvo, selecione AWS Lambda para invocar sua função.
- Role para baixo para invocar e escolha a função que você criou.
- Clique no botão “Próximo” para prosseguir. Isso o levará para a página de configurações. Na seção de permissões, selecione “Usar regra existente.”
- Por último, vá para a revisão e crie um agendamento:
- A próxima página mostrará todos os detalhes:
O uso do EventBrige cria um agendador para os usuários.
Passo 7: Carregue seu Código
Por fim, faça o upload do seu código para o GitHub e inclua a documentação adequada para ajudar a explicar como o código funciona.
Confira esta documentação se você não souber como: Fazendo upload de um projeto para o GitHub.
Conclusão
Se você seguiu todas essas etapas, terá criado um Aplicativo de Citações de Manifestação de Metas usando AWS Lambda, Amazon S3, Amazon SNS e Amazon EventBridge. Este aplicativo busca citações motivacionais e as envia para os assinantes em um cronograma.
Você pode encontrar o link do repositório aqui.
Sinta-se à vontade para compartilhar seu progresso ou fazer perguntas se tiver algum problema.
Se você achou este artigo útil, compartilhe com outras pessoas.
Mantenha-se atualizado com meus projetos me seguindo no Twitter, LinkedIn e GitHub
Obrigada por ler 💖.
Isenção de responsabilidade:
Os recursos mostrados neste artigo, incluindo o bucket S3 e seu ARN, foram excluídos e não existem mais. Os detalhes visíveis nas capturas de tela são usados apenas para fins de demonstração.
Source:
https://www.freecodecamp.org/news/how-to-build-an-application-with-aws-lambda/