AWS Simple Queue Service (SQS) é um serviço de fila de mensagens totalmente gerenciado que permite que você envie, armazene e receba mensagens entre diferentes componentes de um aplicativo distribuído ou microserviços. Com o Terraform, é possível automatizar a criação e gerenciamento de filas SQS na AWS. Neste artigo, vamos mostrar como criar uma fila SQS usando o Terraform e como configurar as permissões de acesso usando AWS Identity and Access Management (IAM).
Pré-requisitos
Antes de começarmos, é importante ter certeza de que você tem os seguintes pré-requisitos:
- Uma conta ativa na AWS
- O AWS CLI configurado com suas credenciais de acesso
- O Terraform instalado em sua máquina local
"Saiba como efetuar autenticação via SSO na AWS com Terraform."
Criando uma fila SQS com Terraform
Para criar uma fila SQS usando o Terraform, é necessário definir um arquivo de configuração chamado main.tf com o seguinte conteúdo:
copyprovider "aws" { region = "us-east-1" } resource "aws_sqs_queue" "example" { name = "example-queue" delay_seconds = 0 max_message_size = 262144 message_retention_seconds = 86400 receive_wait_time_seconds = 0 tags = { Environment = "test" } } output "queue_url" { value = aws_sqs_queue.example.id }
Neste exemplo, estamos definindo um provedor AWS com a região us-east-1. Em seguida, estamos criando uma fila SQS chamada example-queue com as seguintes configurações:
delay_seconds: O tempo de espera antes que uma mensagem seja disponibilizada para receber.max_message_size: O tamanho máximo de uma mensagem em bytes.message_retention_seconds: O tempo de retenção de uma mensagem em segundos.receive_wait_time_seconds: O tempo de espera antes que uma solicitação de recebimento retorne uma mensagem.
Também estamos adicionando uma tag chamada Environment com o valor test. Por fim, estamos imprimindo a URL da fila como uma saída.
Para aplicar a configuração, execute o seguinte comando no terminal:
copyterraform apply
Isso irá criar a fila SQS na AWS.
Configurando as permissões de acesso com IAM
Para permitir que outros componentes do aplicativo acessem a fila SQS, é necessário configurar as permissões de acesso usando o IAM. Para isso, podemos criar uma política de acesso chamada example-queue-policy com o seguinte conteúdo:
copy{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"sqs:SendMessage",
"sqs:ReceiveMessage",
"sqs:DeleteMessage",
"sqs:GetQueueAttributes"
],
"Resource": "arn:aws:sqs:us-east-1:123456789012:example-queue"
}
]
}
Neste exemplo, estamos concedendo permissões de leitura e gravação na fila SQS para todos os usuários da AWS. Em produção, é recomendável restringir as permissões apenas aos usuários necessários.
Para aplicar a política de acesso, execute o seguinte comando no terminal:
copyterraform apply -target aws_sqs_queue.example
Isso irá atualizar a fila SQS com a política de acesso.
Conclusão
Neste artigo, mostramos como criar uma fila SQS usando o Terraform e como configurar as permissões de acesso usando o IAM. Com essas configurações, é possível automatizar o gerenciamento de filas SQS na AWS e integrá-las com outros componentes do aplicativo.


Comentários
Postar um comentário