0Pricing
Serverless AWS Lambda Development · Aula

O Padrão de Distribuição com SNS

Aprenda o padrão de mensagens de distribuição usando o Amazon SNS para entregar um evento a vários consumidores Lambda independentes em paralelo.

O Padrão de Distribuição com SNS é uma aula grátis de Serverless AWS Lambda Development no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Serverless AWS Lambda Development, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Serverless AWS Lambda Development inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em inglês.

What is Fan-Out?

Fan-out means a single event is delivered to many subscribers at once, each processing it independently and in parallel.

Why Not Call Each Directly?

Calling each downstream function from your producer tightly couples them. Adding a consumer means changing the producer. Fan-out decouples this.

SNS as the Hub

Amazon SNS is a pub/sub topic. Publishers send a message once; SNS delivers a copy to every subscriber, including multiple Lambdas.

Publishing a Message

The producer publishes to the topic ARN. It does not know or care who is subscribed.

import boto3, json
sns = boto3.client('sns')
sns.publish(
  TopicArn='arn:aws:sns:us-east-1:123:orders',
  Message=json.dumps({'orderId': 42})
)

The SNS Event Shape

Each subscribed Lambda receives the message wrapped in an SNS records envelope.

{
  "Records": [{
    "Sns": {
      "Message": "{\"orderId\": 42}",
      "TopicArn": "arn:aws:sns:us-east-1:123:orders"
    }
  }]
}

A Consumer Handler

Each consumer parses the message from the record and does its own job: one emails a receipt, another updates inventory.

import json

def handler(event, context):
    for record in event['Records']:
        msg = json.loads(record['Sns']['Message'])
        print('Processing order', msg['orderId'])

Fan-Out plus SQS

For reliability, subscribe SQS queues to the topic and let Lambda poll the queues. This buffers spikes and gives each consumer its own retry and DLQ.

Message Filtering

SNS filter policies let a subscriber receive only messages matching attributes, so not every consumer processes every event.

{
  "eventType": ["order.created"]
}

SNS vs EventBridge

SNS is simple, high-throughput pub/sub. EventBridge adds richer routing, schemas, and many SaaS sources. Choose SNS for raw fan-out, EventBridge for complex routing.

Ordering Caveat

Standard SNS topics do not guarantee order or exactly-once delivery. Use SNS FIFO topics when ordering and deduplication matter.

Idempotent Consumers

Because a message may be delivered more than once, each consumer should be idempotent so duplicates do not cause double effects.

Quick Check

Test your fan-out knowledge.

Recap

You learned the fan-out pattern: publish once to SNS, deliver to many parallel consumers, add SQS for durability, filter messages, and keep consumers idempotent.

Perguntas Frequentes

A aula “O Padrão de Distribuição com SNS” é grátis?

Sim — o texto completo de “O Padrão de Distribuição com SNS” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Serverless AWS Lambda Development, atualize para CoddyKit PRO. O curso de Serverless AWS Lambda Development inclui 4 aulas no total.

O que vou aprender em “O Padrão de Distribuição com SNS”?

Aprenda o padrão de mensagens de distribuição usando o Amazon SNS para entregar um evento a vários consumidores Lambda independentes em paralelo. Você pratica Serverless AWS Lambda Development com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Serverless AWS Lambda Development?

Nenhuma experiência prévia é necessária. Serverless AWS Lambda Development no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “O Padrão de Distribuição com SNS”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Serverless AWS Lambda Development?

Sim. Cada aula de Serverless AWS Lambda Development inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Invocações assíncronas do Lambda
  2. Filas de mensagens não entregues (DLQ) para falhas
  3. Orquestração com o AWS Step Functions
  4. O Padrão de Distribuição com SNS
← Voltar para Serverless AWS Lambda Development