image

Bootcamps ilimitados + curso de inglés para sempre

80
%OFF
Article image
Fernanda Araujo
Fernanda Araujo14/07/2025 05:36
Compartir
Randstad - Análise de DadosRecomendado para tiRandstad - Análise de Dados

Desenvolvendo com Python na AWS: Ferramentas, Códigos e Boas Práticas Comentadas

  • #AWS
  • #Python

Se você é dev Python e pensa em escalar aplicações, automatizar infraestrutura ou integrar sensores inteligentes, a AWS oferece um verdadeiro arsenal de ferramentas pensadas para você.

Neste artigo, vamos explorar os serviços mais usados para programadores Python na AWS, com direito a analogias práticas, códigos bem comentados e insights valiosos.

O foco será em:

  • SDK para Python (Boto3)
  • Toolkits de IDEs na AWS
  • AWS CDK para Python
  • AWS IoT SDK para Python

image

▫️ Amazon Q Developer

Amazon Q Developer é como ter um copiloto de IA que entende de AWS, DevOps e desenvolvimento — tudo ao mesmo tempo. Ele responde suas dúvidas técnicas dentro do console AWS, VS Code ou JetBrains, sugere trechos de código, explica erros e até gera recursos AWS com base em perguntas.

Imagine que você está em um cockpit e pergunta: “Como faço uma Lambda que roda a cada 5 minutos?”. O Amazon Q já escreve a estrutura do recurso em CDK, mostra onde alterar e explica o cron. É como ter um arquiteto e engenheiro do seu lado.

Exemplo em VS Code com Q Developer ativado:

python

# Suponha que você peça ao Q Developer: "Crie uma função Lambda em Python que imprime 'Olá AWS' a cada 5 minutos."

from aws_cdk import (
  aws_lambda as _lambda,
  aws_events as events,
  aws_events_targets as targets,
  core
)

class LambdaHelloStack(core.Stack):
  def __init__(self, scope: core.Construct, id: str, **kwargs):
      super().__init__(scope, id, **kwargs)

      # Função Lambda simples
      hello_lambda = _lambda.Function(
          self, "HelloLambda",
          runtime=_lambda.Runtime.PYTHON_3_9,
          handler="hello.handler",
          code=_lambda.Code.from_inline(
              "def handler(event, context):\n    print('Olá AWS!')"
          )
      )

      # Evento agendado para rodar a cada 5 minutos
      rule = events.Rule(
          self, "ScheduleRule",
          schedule=events.Schedule.rate(core.Duration.minutes(5))
      )
      rule.add_target(targets.LambdaFunction(hello_lambda))

Explicando o código:

  • Criamos uma Lambda com código embutido (from_inline) que imprime uma mensagem.
  • Um agendador (CloudWatch Event) dispara essa função a cada 5 minutos.
  • O Amazon Q Developer pode sugerir isso automaticamente, explicando cada passo.

▫️ Boto3 – SDK para Python

Boto3 é como a ponte mágica entre o seu código Python e qualquer serviço AWS. Ele permite que você controle S3, EC2, DynamoDB, Lambda, IAM, etc., direto do seu script Python.

Imagine que a AWS é uma fábrica e o Boto3 é o painel de controle que te permite ligar máquinas (instâncias), abrir portas (permissões) e enviar pacotes (objetos S3) com simples comandos.

Exemplo:

python

import boto3

# Conecta ao serviço S3
s3 = boto3.client('s3')

# Cria um novo bucket
response = s3.create_bucket(
  Bucket='meu-bucket-python-exemplo',
  CreateBucketConfiguration={'LocationConstraint': 'us-east-1'}
)

# Faz upload de um arquivo
s3.upload_file('meuarquivo.txt', 'meu-bucket-python-exemplo', 'meuarquivo.txt')

Explicando o código:

  • Criamos um bucket na região us-east-1.
  • Enviamos um arquivo local para ele usando upload_file.
  • Simples, direto e poderoso. Ideal para automações e sistemas que interagem com nuvem.

▫️ Toolkits de IDEs na AWS (Cloud9, VSCode Toolkit)

AWS Toolkit para VS Code e JetBrains transforma seu editor em um painel nativo da AWS. Dá pra navegar recursos, implantar Lambdas, depurar, e visualizar logs sem sair da IDE.

Pense como um canivete suíço embutido no seu editor favorito.

Exemplo de uso:

Você cria um projeto Lambda local com Python no VS Code (terminal usando git bash) e usa o Toolkit para empacotar e fazer deploy com um clique.

bash

sam init --runtime python3.9 --name lambda-exemplo
cd lambda-exemplo
sam build
sam deploy --guided

Explicando:

  • Criamos uma Lambda com SAM CLI (integrado ao toolkit).
  • O toolkit configura deploy, roles, regiões e monitora tudo.
  • Excelente para devs que gostam de tudo no mesmo lugar.

▫️ AWS CDK para Python

O CDK (Cloud Development Kit) permite criar infraestrutura como código usando Python. Ao invés de escrever JSON/YAML (CloudFormation), você escreve código Python moderno, com loops, objetos e classes. Muito mais limpo e reutilizável.

É como programar prédios inteiros com Lego, mas usando Python ao invés de blocos.

Exemplo:

python

from aws_cdk import (
  aws_s3 as s3,
  core
)

class StorageStack(core.Stack):
  def __init__(self, scope: core.Construct, id: str, **kwargs):
      super().__init__(scope, id, **kwargs)

      # Cria um bucket S3 com versionamento
      s3.Bucket(self, 
                "MeuBucketComCDK",
                versioned=True,
                removal_policy=core.RemovalPolicy.DESTROY)

Explicando:

  • Criamos um bucket S3 com versionamento ativado.
  • Se o stack for destruído, o bucket será também (RemovalPolicy.DESTROY).
  • CDK torna a infraestrutura repetível, validável e integrada ao versionamento Git.

▫️AWS IoT SDK para Python

Esse SDK permite conectar dispositivos físicos (sensores, placas, câmeras) ao mundo AWS. Perfeito para projetos IoT que precisam enviar dados para a nuvem em tempo real.

Imagine uma estufa inteligente: o sensor lê a temperatura e envia para a AWS a cada minuto. Esse SDK é o "intérprete" entre o sensor e o MQTT broker na nuvem.

Exemplo:

python

from awscrt import io, mqtt, auth, http
from awsiot import mqtt_connection_builder
import time

# Conexão com o endpoint IoT da AWS
mqtt_connection = mqtt_connection_builder.mtls_from_path(
  endpoint="a1b2c3d4wxyz.iot.us-east-1.amazonaws.com",
  cert_filepath="device.pem.crt",
  pri_key_filepath="private.pem.key",
  client_bootstrap=io.ClientBootstrap.get_or_create_static_default(),
  ca_filepath="AmazonRootCA1.pem",
  client_id="sensor-temperatura-01",
  clean_session=False,
  keep_alive_secs=30
)

# Conecta ao broker
mqtt_connection.connect().result()

# Publica dados
for i in range(5):
  temperatura = 22 + i
  mensagem = {"temperatura": temperatura}
  mqtt_connection.publish(
      topic="estufa/sensores/temperatura",
      payload=str(mensagem),
      qos=mqtt.QoS.AT_LEAST_ONCE
  )
  print("Enviado:", mensagem)
  time.sleep(2)

Explicando:

  • Estabelecemos uma conexão segura com o endpoint IoT.
  • Publicamos leituras fictícias de temperatura num tópico MQTT.
  • Ideal para protótipos de automação residencial, agricultura e cidades inteligentes.

▫️Conclusão

Trabalhar com Python na AWS é mais do que possível, é poderoso. Com ferramentas como o Amazon Q Developer e SDKs específicos, o desenvolvedor tem liberdade para codar, automatizar e escalar de forma elegante e comentada.

📚 Referências Oficiais da AWS para Desenvolvedores Python

  • AWS Samples no GitHub (Python)
  • Repositório oficial com centenas de exemplos prontos, divididos por serviço e linguagem.
  • 📎 https://github.com/aws-samples
Compartir
Recomendado para ti
Suzano - Python Developer
BairesDev - Machine Learning Practitioner
Santander - Cibersegurança #2
Comentarios (2)
Fernanda Araujo
Fernanda Araujo - 14/07/2025 15:15

Obrigada pelo feedback!! 👩🏻‍💻

RM

Rodrigo Miranda - 14/07/2025 13:40

Ótimo!

Recomendado para tiRandstad - Análise de Dados