Enviando SMS via Amazon Web Services SNS com Python

O Amazon Web Services SNS é um serviço que permite a notificação de diversas formas, desde conexões com as finas SQS do SMS até o envio de mensagens SMS. É muito comum o serviço ser utilizado por empresas para mandar notificações para seus clientes e é muito simples de ser utilizado. A primeira coisa necessária para fazer o envio de SMS é a criação de usuário com permissões de acesso ao SNS na Amazon. Com o usuário criado basta instalar a biblioteca boto3 e assim podemos criar o script necessário. Primeiro é necessário criar um cliente que acessa o serviço do SNS: ...

8 de novembro de 2021 · 1 min de leitura · Lucas Polo

Fazendo upload de arquivos para o Google Cloud Storage com Python

Algum tempo atrás precisei aprender a fazer upload de arquivos para o Google Cloud Storage. Uma das coisas que eu gosto de fazer para me ajudar aprender a fazer algo é criar um scriptzinho com o conceito do que quero, sem aplicar em grandes projetos, evitando assim grandes complexidades. Assim na época eu criei este script simples que faz o upload do arquivo em um bucket do GCS. A primeira coisa que você precisa fazer é ter instalada a biblioteca, para isso temos o bom e velho pip: ...

11 de outubro de 2021 · 2 min de leitura · Lucas Polo

Fazendo upload de arquivos para o Google Cloud Storage com Python (versão de 2020)

O processo é bem simples, porém é necessário antes configurar algumas coisas no Google Cloud e gerar as credenciais necessárias, para este processo pode seguir este tutorial. Lembre-se também de criar uma variável de ambiente com o nome GOOGLE_APPLICATION_CREDENTIALS apontando para o caminho do json, no Linux basta fazer: export GOOGLE_APPLICATION_CREDENTIALS=/caminho/para/arquivo.json Depois disso é possível executar o código abaixo (é claro, o bucket e o arquivo indicado deve existir): from datetime import timezone, datetime from typing import BinaryIO from google.cloud import storage def upload_file( data: BinaryIO, bucket: str, file_path: str, link_lifetime: int = 3600 ) -> str: """ Função que realiza o upload do arquivo """ storage_client = storage.Client() bucket = storage_client.bucket(bucket) blob = bucket.blob(file_path) blob.upload_from_file(data) # Faz o upload do arquivo binário e cria um objeto associado ao arquivo lifetime = int( datetime.now(tz=timezone.utc).timestamp() ) + link_lifetime # Gera um link para o arquivo com tempo de expiração url = blob.generate_signed_url(lifetime) return def main(): bucket = 'meu-pequeno-bucket' # Bucket name in GCS file_name = 'arquivo_legal.pdf' # Filename with open(file_name, 'rb') as f: url = upload_file( data=f, bucket=bucket, file_path=file_name, ) print(f'URL for file: {url}') if __name__ == "__main__": main()

10 de janeiro de 2020 · 1 min de leitura · Lucas Polo

Utilizando Celery junto com o SQS

Uma das formas de lidar com processamento assíncrono no Python (e diversas outras linguagens) sem a necessidade de usar threads e afins é utilizando filas e tasks (que são aplicações que rodam conforme demanda, em um processamento similar a batches). Para isso o Python dispõe de uma biblioteca chamada Celery, que de uma maneira bem simples permite realizar o processamento assíncrono. Explicando de uma maneira simples, ao invocar uma função, ao invés de executar seu código, o Celery pega os parâmetros e mais algumas meta-informações da chamada e coloca numa fila, enquanto isso, em outro lugar (processo, computador ou continente), o Celery captura as mensagens desta fila e dispara as tasks. Aqui está uma implementação básica de uma task que soma dois valores: ...

17 de março de 2019 · 2 min de leitura · Lucas Polo