Pular para o conteúdo principal

AWS SQS com Terraform: Criando filas de mensagens na AWS

 

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:

copy
provider "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:

copy
terraform 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:

copy
terraform 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

Postagens mais visitadas deste blog

O que são os poller no Zabbix e como configurar

  Os pollers no Zabbix são processos responsáveis pela coleta de dados de monitoramento dos hosts configurados no sistema. Eles desempenham um papel crucial na arquitetura do Zabbix, garantindo que as métricas dos diversos dispositivos e serviços sejam coletadas de forma eficiente e dentro dos intervalos de tempo definidos. O que são Pollers no Zabbix? Função : Os pollers executam verificações ativas nos hosts, coletando dados a partir de agentes Zabbix, SNMP, scripts personalizados, entre outros. Tipos de Pollers : Existem diferentes tipos de pollers no Zabbix, incluindo: Zabbix Poller : Realiza verificações ativas nos hosts. IPMI Poller : Coleta dados utilizando o protocolo IPMI. Java Poller : Utilizado para monitoramento de aplicações Java. Trapper : Recebe dados enviados passivamente pelos agentes Zabbix. HTTP Poller : Realiza verificações em serviços web. ICMP Poller : Realiza verificações utilizando ICMP (ping). Assuntos Relacionados aos Pollers Desempenho do Servidor Zabbix ...

Automatizando Deploys com Docker e GitHub Actions

 Introdução O processo de docker deploy pode ser complexo e demorado se não for bem automatizado. Felizmente, com ferramentas como GitHub Actions , é possível otimizar e automatizar o fluxo de deploy de aplicações, tornando-o mais rápido, eficiente e menos suscetível a erros. Neste artigo, vamos explorar como você pode automatizar o processo de deploy utilizando Docker e GitHub Actions , aproveitando os benefícios de pipelines bem configurados para realizar deploys consistentes e sem complicação.   O que é Docker e como ele facilita o deploy O Docker é uma plataforma que permite criar, testar e executar aplicações de forma isolada e eficiente, utilizando containers. O container Docker encapsula a aplicação e suas dependências, garantindo que ela seja executada da mesma maneira em qualquer ambiente, seja local, de desenvolvimento ou produção. Utilizar Docker deploy em seu fluxo de trabalho oferece inúmeras vantagens: Portabilidade : A aplicação pode ser executada em qu...