Implante funções Python no AWS Lambda. Link para outros recursos para permissões automáticas.
from stelvio.aws.function import Function
from stelvio.aws.s3 import Bucket
bucket = Bucket("reports")
# Link grants permissions automatically
Function(
"processor",
handler="functions/process.handler",
links=[bucket],
)
Saiba mais sobre as funções Lambda →
Agende funções Lambda com expressões cron ou intervalos de taxa.
from stelvio.aws.cron import Cron
Cron(
"hourly-cleanup",
"rate(1 hour)",
"functions/cleanup.handler",
)
Cron(
"daily-report",
"cron(0 9 * * ? *)",
"functions/report.handler",
)
Saiba mais sobre agendamento de eventos →
Armazene com segurança qualquer quantidade de dados com AWS S3 Buckets.
from stelvio.aws.s3 import Bucket
# Create a bucket that triggers a function on new uploads
uploads = Bucket("user-uploads")
uploads.notify(
"functions/process_upload.handler",
events=["s3:ObjectCreated:*"],
)
Saiba mais sobre os buckets S3 →
Crie tabelas do DynamoDB e vincule-as a funções para obter permissões automáticas.
from stelvio.aws.dynamo_db import DynamoTable
from stelvio.aws.function import Function
table = DynamoTable(
name="users",
partition_key="user_id",
sort_key="created_at",
)
Function(
"user-handler",
handler="functions/user.handler",
links=[table],
)
Saiba mais sobre o DynamoDB →
Desacople serviços com filas SQS e tópicos SNS.
from stelvio.aws.queue import Queue
from stelvio.aws.topic import Topic
orders = Queue("orders")
orders.subscribe(
"processor",
"functions/process_order.handler",
)
alerts = Topic("alerts")
alerts.subscribe(
"notifier",
"functions/send_alert.handler",
)
Saiba mais sobre filas SQS e tópicos SNS →
Envie e-mails de alto volume de forma segura e confiável usando o Amazon SES.
from stelvio.aws.email import Email
from stelvio.aws.function import Function
mailer = Email(
"support-email",
"support@example.com",
)
Function(
"sender",
handler="functions/send.handler",
links=[mailer],
)
Saiba mais sobre e-mail →
Defina APIs REST e encaminhe solicitações para funções do Lambda ou outros recursos.
from stelvio.aws.apigateway import Api
api = Api(
"payment-api",
domain_name="api.example.com",
)
api.route("POST", "/charge", handler="functions/charge.post")
api.route("GET", "/history", handler="functions/history.get")
Saiba mais sobre o API Gateway →
Conecte seus recursos Stelvio a domínios personalizados com certificados SSL automáticos.
app = StelvioApp(
"my-app",
dns=CloudflareDns("your-cloudflare-zone-id")
# other configurations...
)
...
api = Api(
"payment-api",
domain_name="api.example.com",
)
api.route("POST", "/charge", handler="functions/charge.post")
api.route("GET", "/history", handler="functions/history.get")
Saiba mais sobre domínios personalizados →
Combine vários recursos Stelvio no mesmo domínio personalizado usando um roteador.
domain_name = "example.com"
bucket = Bucket("static-files-bucket")
api = Api("my-api")
api.route("GET", "/api", "functions/hello.handler")
router = Router("router-example", custom_domain=domain_name)
router.route("/files", bucket)
router.route("/api", api)
Saiba mais sobre o roteador →
Fonte: theverge

