Este laboratório tem como objetivo consolidar meus workflows automatizados utilizando AWS Step Functions.
O resultado é um repositório organizado com anotações, prints e códigos utilizados durante a prática — servindo como material de estudo e referência para futuras implementações na AWS.
Ao concluir este desafio, fui capaz de:
✅ Aplicar os conceitos aprendidos em um ambiente prático
✅ Documentar processos técnicos de forma clara e estruturada
✅ Utilizar o GitHub como ferramenta para compartilhar documentação técnica
- AWS Step Functions — para orquestrar o fluxo do processo
- AWS Lambda — para executar a função principal
- AWS IAM — para gerenciar permissões e roles
- AWS CloudWatch — para monitorar logs da execução
- GitHub — para versionamento e documentação
O fluxo criado é simples:
1️⃣ A Step Function inicia a execução.
2️⃣ Ela chama uma função AWS Lambda.
3️⃣ A Lambda processa a entrada e retorna uma mensagem personalizada.
4️⃣ A execução finaliza com sucesso.
stateDiagram-v2
[*] --> InvokeLambda
InvokeLambda --> [*]
note right of InvokeLambda
Executa função Lambda
e retorna a mensagem de sucesso
end note
| #Recurso | #Nome | #Descrição |
|---|---|---|
| Lambda Function | lab-stepfn-sample-lambda | Função responsável por retornar mensagem personalizada |
| Step Function | lab-stepfn-sample-state-machine | Orquestra o fluxo que chama a Lambda |
| IAM Role | lab-stepfn-exec-role | Permite que o Step Functions invoque a Lambda e gere logs |
| Região AWS | us-east-1 | Região onde o projeto foi implementado |
- No console da AWS, acesse Lambda > Criar função.
- Selecione Author from scratch.
- Nome:
lab-stepfn-sample-lambda - Runtime:
Python 3.11 - Permissões: crie uma nova role básica (
lab-lambda-exec-role) - Substitua o código padrão pelo seguinte:
def lambda_handler(event, context):
# event: dados que o Step Functions envia
name = event.get("name", "Mundo")
message = f"Olá, {name} — sua tarefa foi executada com sucesso!"
# retornar algo que a máquina de estados pode usar depois
return {"message": message, "inputReceived": event}
- Clique em Deploy (Implantar).
- Vá para IAM > Roles > Create Role
- Trusted entity: Step Functions
- Adicione uma policy com permissões básicas:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" } ] } - Nome da Role:
lab-stepfn-exec-role - Crie a Role.
- No console da AWS, vá em Step Functions > Create state machine
- Escolha Author with visual workflow
- Tipo: Standard
- Nome:
lab-stepfn-sample-state-machine - Adicione um Task que invoca a Lambda
lab-stepfn-sample-lambda - Atribua a role criada:
lab-stepfn-exec-role - Salve.
{
"Comment": "A description of my state machine",
"StartAt": "Lambda Invoke",
"States": {
"Lambda Invoke": {
"Type": "Task",
"Resource": "arn:aws:states:::lambda:invoke",
"Output": "{% $states.result.Payload %}",
"Arguments": {
"FunctionName": "arn:aws:lambda:us-east-1:000000000000:function:lab-stepfn-sample-lambda:$LATEST",
"Payload": "{% $states.input %}"
},
"Retry": [
{
"ErrorEquals": [
"Lambda.ServiceException",
"Lambda.AWSLambdaException",
"Lambda.SdkClientException",
"Lambda.TooManyRequestsException"
],
"IntervalSeconds": 1,
"MaxAttempts": 3,
"BackoffRate": 2,
"JitterStrategy": "FULL"
}
],
"Next": "Êxito"
},
"Êxito": {
"Type": "Succeed"
}
},
"QueryLanguage": "JSONata"
}
- Clique em Start Execution
- Insira o JSON de entrada:
{ "name": "Jullia" } - Clique em Start execution
- Veja o resultado do passo
InvokeLambda:{ "message": "Olá, Jullia - sua tarefa foi executada com sucesso!", "inputReceived": { "name": "Jullia" } }
Todas as capturas foram salvas na pasta ´/images`:
- images/create-lambda.png — Criação da função Lambda
- images/create-role.png — Criação da Role IAM
- images/create-step-function.png — Criação da Step Function
- images/execution-result.png — Execução bem-sucedida
- A criar funções Lambda com Python diretamente no console.
- A construir workflows visuais e automatizados com AWS Step Functions.
- A conceder permissões seguras via IAM (aprendendo o princípio do menor privilégio).
- A documentar projetos técnicos e compartilhar no GitHub de forma organizada.
Para evitar custos após o laboratório:
- Exclua a Step Function
- Exclua a Função Lambda
- Exclua as Roles IAM criadas
📘 Documentação AWS Step Functions: (https://docs.aws.amazon.com/step-functions/latest/dg/welcome.html) 📘 Documentação AWS Lambda: (https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) 📘 GitHub Docs – Markdown Guide: (https://docs.github.com/en/get-started/writing-on-github)
- 👩💻 Jullia Karolina de Paula
- 💻 Estudante de Análise e Desenvolvimento de Sistemas
- 📍 Brasil
- 🔗 Linkedin: (https://www.linkedin.com/in/jullia-karolina-de-paula-89a93a283/)
- 📧 Email: [email protected] / [email protected]
🟢 Concluído com sucesso.
Repositório criado para fins de aprendizado — parte do desafio AWS Step Functions (BOOTCAMP SANTANDER CODE GIRLS 2025 | DIO).