Skip to main content

Making your life easier on doing simple tasks in AWS via boto3

Project description


cloudgeass-logo

PyPI PyPI - Downloads PyPI - Status GitHub commit activity GitHub Last Commit

CI workflow Documentation Status codecov

Table of content


O que é o cloudgeass?

Cloudgeass é uma biblioteca Python criada para centralizar uma série de módulos, classes, métodos e funções prontas para serem utilizadas nos mais variados serviços da AWS. Inspirado em um renomado anime japonês, o cloudgeass visa proporcionar um maior controle sobre atividades e operações comumente realizadas em aplicações criadas na nuvem.

Note Agora o cloudgeass possui uma documentação oficial no readthedocs! Acesse o seguinte link e confira detalhes técnicos de usabilidade, exemplos práticos e muito mais!


Funcionalidades presentes

Em linhas gerais, a biblioteca cloudgeass é divida em diferentes módulos, cada um encapsulando e consolidando funcionalidades para fins específicos. Os módulos existentes até o momento são:

  • :bucket: cloudgeass.aws.s3: funcionalidades para operações no S3
  • :key: cloudgeass.aws.secrets: funcionalidades para operações no Secrets Manager
  • :soap: cloudgeass.aws.glue: :warning: em ideação

O módulo s3

A ideia por trás do módulo cloudgeass.aws.s3 gira em torno do fornecimento de funções e blocos de código contendo operações comumente realizadas no S3. Para navegar por todas as funcionalidades presentes, consulte o arquivo s3.py ou, se preferir, clique no dropdown abaixo para assistir os vídeos de demonstrações.

Note Vídeos marcados com ⭐ indicam features provavelmente relevantes para o contexto de Analytics e são as preferidas dos usuários!

📽️ Listando buckets de uma conta com list_buckets()

https://user-images.githubusercontent.com/38161178/218567983-cc852ca5-f5df-4cf7-9b59-7408e0f309fa.mp4

Código utilizado:

from cloudgeass.aws.s3 import list_buckets

buckets = list_buckets()
buckets
📽️ Obtendo um report de objetos de um bucket com bucket_objects_report()

https://user-images.githubusercontent.com/38161178/218573417-2d705b06-2ab0-4441-b845-f6afe43b8f17.mp4

Código utilizado:

from cloudgeass.aws.s3 import bucket_objects_report

bucket_name = "nome-de-bucket-aws"
df_objs_report = bucket_objects_report(bucket_name=bucket_name)

df_objs_report.head(3)
📽️ Obtendo um report de objetos apenas de um determinado prefixo (ou tabela no S3)

https://user-images.githubusercontent.com/38161178/218575065-ef22a25a-4ead-4983-bf5f-fe2a5502608c.mp4

Código utilizado:

from cloudgeass.aws.s3 import bucket_objects_report

# Definindo nome de bucket e prefixo alvo da extração
bucket_name = "nome-de-bucket-aws"
prefix = "a-sample-prefix"

df_objs_report = bucket_objects_report(bucket_name=bucket_name, prefix=prefix)

df_objs_report.head(3)
📽️ Obtendo um report de objetos de todos os buckets com all_buckets_objects_report()

https://user-images.githubusercontent.com/38161178/218576685-2215a62e-8b1f-4fb6-85b4-edf02d6706be.mp4

Código utilizado:

from cloudgeass.aws.s3 import all_buckets_objects_report

df_report = all_buckets_objects_report()
df_report.head()
📽️ Obtendo um report de objetos de todos os buckets ignorando alguns buckets

https://user-images.githubusercontent.com/38161178/218577709-006b5d1c-51dc-4735-9230-cfb694126e4d.mp4

Código utilizado:

from cloudgeass.aws.s3 import all_buckets_objects_report

# Definindo lista de buckets a serem ignorados no report de objetos
ignore_buckets = [
    "terraglue-athena-query-results-569781470788-us-east-1",
    "terraglue-glue-assets-569781470788-us-east-1",
    "terraglue-sor-data-569781470788-us-east-1",
    "terraglue-spec-data-569781470788-us-east-1"
]

# Obtendo report
df_report = all_buckets_objects_report(exclude_buckets=ignore_buckets)
df_report.head()
📽️⭐ Lendo um objeto CSV, JSON ou PARQUET em um DataFrame do pandas com read_s3_object()

https://user-images.githubusercontent.com/38161178/218580090-385e4170-a76c-4b03-b00e-865b9e4ec05e.mp4

Código utilizado:

from cloudgeass.aws.s3 import read_s3_object

# Definindo variáveis para leitura de objeto no S3
bucket_name = "nome-de-bucket"
obj_prefix = "tbsot_ecommerce_br/anomesdia=20230213/run-1676319522273-part-block-0-0-r-00004-snappy.parquet"

# Criando URI
s3_uri_parquet = f"s3://{bucket_name}/{obj_prefix}"

# Lendo objeto parquet
df_parquet = read_s3_object(s3_uri_parquet)
df_parquet.head()
📽️⭐ Coletando última partição de tabela no S3 com get_last_partition()

https://user-images.githubusercontent.com/38161178/218581540-82a4836b-9224-4646-a9ff-6dc6966b0132.mp4

Código utilizado:

from cloudgeass.aws.s3 import get_last_partition

# Definindo variáveis para leitura de objeto no S3
bucket_name = "terraglue-sot-data-569781470788-us-east-1"
table_prefix = "tbsot_ecommerce_br"

last_partition = get_last_partition(bucket_name, table_prefix)

Contatos


Referências

Python

Docs

Github

Tests

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cloudgeass-2.0.0.tar.gz (25.8 kB view hashes)

Uploaded Source

Built Distribution

cloudgeass-2.0.0-py3-none-any.whl (27.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page