Skip to content

feat(infra): provisiona S3 + CloudFront para mídia VAST (M2-02)#150

Open
cstipkovic wants to merge 2 commits into
developfrom
feat/M2-02-s3-media-cloudfront
Open

feat(infra): provisiona S3 + CloudFront para mídia VAST (M2-02)#150
cstipkovic wants to merge 2 commits into
developfrom
feat/M2-02-s3-media-cloudfront

Conversation

@cstipkovic

Copy link
Copy Markdown
Member

Resumo

Adiciona bucket S3 privado (Block Public Access, SSE-S3, BucketOwnerEnforced) e distribuição CloudFront com Origin Access Control (sigv4) para servir vídeos VAST cacheados, substituindo o disco local do legado (/tmp/adserver_video_cache). PriceClass_All garante edges na América do Sul.

O que foi feito

  • serverless.yml: recursos MediaBucket, MediaBucketPolicy, MediaOAC, MediaDistribution; env MEDIA_BUCKET/MEDIA_CDN_DOMAIN; Outputs (incluindo MediaDistributionId, reservado para associação do WAF na M2-06).
  • Convenção de chave de objeto documentada em comentário: MD5(url).mp4 — paridade com o VideoCacheService.java legado.
  • Propositalmente sem lifecycle de expiração — paridade com o cache indefinido do legado.
  • docs/MATRIZ-PARIDADE.md: linhas N12 e V09 atualizadas (infra provisionada, lógica ainda pendente na M5-07).

Como testar

npx serverless print --stage dev   # resolve ad-serverless-media-dev, us-east-1
npx serverless print --stage prod  # resolve ad-serverless-media-prod, sa-east-1
make test                          # suíte Go integral, sem regressão

Closes #76

🤖 Gerado com Claude Code

Clauber Stipkovic and others added 2 commits July 10, 2026 15:16
Adiciona bucket S3 privado (Block Public Access, SSE-S3, BucketOwnerEnforced)
e distribuição CloudFront com Origin Access Control (sigv4) para servir
vídeos VAST cacheados, substituindo o disco local do legado
(/tmp/adserver_video_cache). PriceClass_All garante edges na América do Sul.

Contrato com M5-07 (media-handler): env MEDIA_BUCKET/MEDIA_CDN_DOMAIN e
convenção de chave MD5(url).mp4. Output MediaDistributionId reservado para
associação do WAF na M2-06. Sem lifecycle de expiração — paridade com cache
indefinido do legado.

Closes #76

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Adiciona bucket S3 privado (Block Public Access, SSE-S3, BucketOwnerEnforced)
e distribuição CloudFront com Origin Access Control (sigv4) para servir
vídeos VAST cacheados, substituindo o disco local do legado
(/tmp/adserver_video_cache). PriceClass_All garante edges na América do Sul.

Contrato com M5-07 (media-handler): env MEDIA_BUCKET/MEDIA_CDN_DOMAIN e
convenção de chave MD5(url).mp4. Output MediaDistributionId reservado para
associação do WAF na M2-06. Sem lifecycle de expiração — paridade com cache
indefinido do legado.
@cstipkovic cstipkovic requested a review from fabiomagnoni as a code owner July 10, 2026 21:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant