Tenho experimentado Python e tenho me surpreendido com a facilidade no desenvolvimento e sem muitas configurações de projeto. Para este post, vamos criar um exemplo de como criar uma fila SQS e enviar mensagens utilizando Python e boto3, que possui uma grande variedade de métodos para acesso aos recursos da AWS.
Instalando boto3
A instalação é bem simples, assegure-se que já exista o Python instalado em seu ambiente. Caso já exista, via terminal, execute o comando a seguir para a instalação do boto3.
pip install boto3
Importando boto3 para o projeto
Após instalado, vamos escrever o nosso código em partes, começando pelo import da biblioteca boto3 e atribuindo para uma variável sqs e client, conforme imagem abaixo:
import boto3
sqs = boto3.resource('sqs')
client = boto3.client('sqs')
Criando fila SQS
Criando uma function que criará a fila SQS passando alguns parâmetros como, name e attributes.
def create_sqs(name, attributes):
sqs.create_queue(QueueName=name, Attributes=attributes)
Envio de mensagens para a fila SQS
Criando uma function que enviará as mensagens para a fila SQS
def send_messages_to_sqs(name, message):
queue = sqs.get_queue_by_name(QueueName=name)
client.send_message(QueueUrl=queue.url, MessageBody=message)
No código acima, existe um método chamado get_queue_by_name que no qual precisamos usar para recuperar a url da fila existente, para que seja repassada para o método send_message
Executando o código
Após criada as functions, vamos executar o código para a criação da fila SQS e o envio das mensagens.
if __name__ == '__main__':
attributes = {
'DelaySeconds': '60',
'MessageRetentionPeriod': '600'
}
create_sqs('sqs_messages', attributes)
send_messages_to_sqs('sqs_messages', "Hello, SQS!")
Código completo
import boto3
sqs = boto3.resource('sqs')
client = boto3.client('sqs')
def create_sqs(name, attributes):
sqs.create_queue(QueueName=name, Attributes=attributes)
def send_messages_to_sqs(name, message):
queue = sqs.get_queue_by_name(QueueName=name)
client.send_message(QueueUrl=queue.url, MessageBody=message)
if __name__ == '__main__':
attributes = {
'DelaySeconds': '60',
'MessageRetentionPeriod': '600'
}
create_sqs('sqs_messages', attributes)
send_messages_to_sqs('sqs_messages', "Hello, SQS!")
Simples, certo? É um código prático que permite acessar recursos da AWS com poucas linhas de código. Sou novo em Python e espero trazer mais posts como este, assim vamos aprendendo juntos =)
É isso, curtiu? Até mais!
Comments