Esse repositório hospeda o código do primeiro desafio para o Bootcamp Cielo Dev - FullStack
Esses passos partem do princípio que um usuário com as permissões adequadas para criar os tópicos e filas e fazer a inscrição dos mesmos já exista.
Passo a passo dos comandos utilizados para fazer o setup dos serviços necessários na AWS
Para configurar o CLI utilize o comando
aws configure
Use o seguinte comando para substituindo <QueueName> para criar cada uma das filas necessárias
aws sqs create-queue --queue-name <QueueName>.fifo --attributes FifoQueue=true,ContentBasedDeduplication=trueUse o seguinte comando para substituindo <TopicName> para criar cada um dos tópicos necessários
# Definindo atributo FifoTopic para que seja possível fazer a inscrição com as filas SQS
aws sns create-topic --name <TopicName>.fifo --attributes FifoTopic=true,ContentBasedDeduplication=trueCrie um json seguindo esse formato para cada conjunto de fila-tópico
{
"Version": "2012-10-17",
"Id": "__default_policy_ID",
"Statement": [
{
"Sid": "__owner_statement",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<user-id>:root"
},
"Action": "SQS:*",
"Resource": "arn:aws:sqs:<region-id>:<user-id>:<QueueName>.fifo"
},
{
"Sid": "topic-subscription-arn:aws:sns:<region-id>:<user-id>:<TopicName>.fifo",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "SQS:SendMessage",
"Resource": "arn:aws:sqs:<region-id>:<user-id>:<QueueName>.fifo",
"Condition": {
"ArnLike": {
"aws:SourceArn": "arn:aws:sns:<region-id>:<user-id>:<TopicName>.fifo"
}
}
}
]
}Execute o seguinte comando para cada fila para permitir que os tópicos referentes possam enviar mensagens para as respectivas filas
aws sqs set-queue-attributes --queue-url <YourQueueURL> --attributes Policy='<PolicyDocument>'aws sns subscribe --topic-arn arn:aws:sns:<region-id>:<user-id>:<TopicName>.fifo --protocol sqs --notification-endpoint arn:aws:sqs:<region-id>:<user-id>:<QueueName>.fifoNa pasta raiz do repositorio terá um arquivo chamado sample.env copie para .env no mesmo diretorio
Agora dentro do arquivo
.envterá as seguintes variáveis:
AWS_ACCESS_KEY=AWS_ACCESS_KEY_SAMPLE
AWS_SECRET_KEY=AWS_SECRET_KEY_SAMPLE
AWS_SNS_TOPIC_SUGGESTION=arn:aws:sqs:<region-id>:<user-id>:<TopicName>.fifo
AWS_SNS_TOPIC_COMPLIMENT=arn:aws:sqs:<region-id>:<user-id>:<TopicName>.fifo
AWS_SNS_TOPIC_CRITIQUE=arn:aws:sqs:<region-id>:<user-id>:<TopicName>.fifo
AWS_SQS_QUEUE_SUGGESTION=https://sqs.<region-id>.amazonaws.com/<user-id>/<TopicName>.fifo
AWS_SQS_QUEUE_COMPLIMENT=https://sqs.<region-id>.amazonaws.com/<user-id>/<TopicName>.fifo
AWS_SQS_QUEUE_CRITIQUE=https://sqs.<region-id>.amazonaws.com/<user-id>/<TopicName>.fifo
TIME_PROCESSING_QUEUE=10000Substitua as credencias de acesso da amazon pelas suas, que podem ser obtidas utilizando o serviço IAM no console da AWS Substitua as informações SNS e SQS com os dados obtidos pelos comandos anteriores