Serverløs backend med AWS Lambda & API Gateway · leksjon

SNS for Pub/Sub-meldinger

Lær om Amazon SNS (Simple Notification Service) for publisering av meldinger til flere abonnenter i en Pub/Sub-modell.

Leksjon 2 av 411 trinn

SNS for Pub/Sub-meldinger er en gratis leksjon i Serverløs backend med AWS Lambda & API Gateway på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Serverløs backend med AWS Lambda & API Gateway, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Serverløs backend med AWS Lambda & API Gateway inneholder totalt 4 leksjoner.

Pub/sub-meldinger forklart

Se for deg at du vil sende informasjon til mange ulike mottakere, men at du ikke vil vite hvem de er eller hvor mange det finnes. Det er her meldingsmønsteret Publish/Subscribe (Pub/Sub) kommer inn!

Det fungerer som en avis: Utgiveren lager innhold, og alle som er interessert, kan abonnere på det uten at utgiveren kjenner hver enkelt leser.

Bli kjent med Amazon SNS

Amazon Simple Notification Service (SNS) er en fullstendig administrert Pub/Sub-meldingstjeneste fra AWS.

SNS gjør det enkelt å sende meldinger til et stort antall abonnenter samtidig, slik at du kan bygge svært skalerbare og frakoblede applikasjoner.

SNS-emner: Det sentrale knutepunktet

Kjernekomponenten i SNS er et Topic. Tenk på et SNS-emne som en kommunikasjonskanal eller en kategori for meldinger.

  • Utgivere sender meldinger til et bestemt Topic.
  • Abonnenter registrerer at de ønsker å motta meldinger fra dette Topic.
  • SNS håndterer leveringen av meldinger fra Topic til alle abonnentene.

Abonnenter og endepunkter

En Subscriber er et endepunkt som mottar meldinger fra et SNS Topic. SNS støtter flere typer endepunkter, noe som gir stor fleksibilitet:

  • AWS Lambda functions: For behandling av hendelser med serverless-kode.
  • Amazon SQS queues: For pålitelig lagring og behandling av meldinger.
  • HTTP/S endpoints: For sending av varsler til webservere.
  • Email/SMS: For direkte varsler til mennesker.

Slik fungerer SNS: Flyten

Her er en forenklet oversikt over hvordan SNS leverer meldinger:

  1. En Publisher sender en melding til et SNS Topic.
  2. SNS Topic mottar meldingen.
  3. SNS filtrerer meldingen (hvis dette er konfigurert) og leverer den til alle registrerte Subscribers.
  4. Hver Endpoint mottar meldingen.

Dette frakobler utgiveren fra abonnentene og gjør systemet mer fleksibelt.

Vanlige bruksområder for SNS

SNS passer perfekt i situasjoner som krever «fan-out»-meldinger, der én hendelse utløser flere handlinger. Vanlige bruksområder er:

  • Hendelsesvarsler: Varsling av flere systemer eller brukere om endringer.
  • Applikasjonsintegrasjon: Frakobling av mikrotjenester som må reagere på felles hendelser.
  • Databehandlingspipelines: Varsling av ulike trinn i en pipeline når nye data ankommer.
  • Overvåking og varsler: Sending av varsler til driftsteam basert på måledata.

Opprette et SNS-emne

For å begynne å bruke SNS må du først opprette et Topic. Dette kan gjøres via AWS Management Console, AWS CLI eller verktøy for Infrastructure as Code, som AWS CloudFormation eller SAM.

Når du oppretter et emne, gir du det et navn og angir typen (Standard eller FIFO). For de fleste generelle bruksområder er et Standard Topic tilstrekkelig.

Publisering med Python

Du kan publisere meldinger til et SNS Topic ved hjelp av AWS SDK-ene. Her er et enkelt Python-eksempel som bruker boto3 til å publisere en melding. Husk at du trenger gyldig AWS-legitimasjon og en ekte Topic ARN for at det skal fungere.

import boto3

# This is a placeholder for an SNS Topic ARN.
# In a real application, replace it with your Topic's ARN.
TOPIC_ARN = "arn:aws:sns:us-east-1:123456789012:MyExampleTopic"

def main():
    print("Initializing SNS client...")
    sns_client = boto3.client('sns')

    message_to_send = "Hello CoddyKit! This is an SNS test message."

    try:
        print(f"Attempting to publish: '{message_to_send}'")
        response = sns_client.publish(
            TopicArn=TOPIC_ARN,
            Message=message_to_send
        )
        print(f"Published! Message ID: {response['MessageId']}")
    except Exception as e:
        print(f"Error publishing: {e}")
        print("Ensure AWS credentials & Topic ARN are configured.")

if __name__ == "__main__":
    main()

Fordeler ved å bruke SNS

SNS gir flere fordeler når du skal bygge robuste og skalerbare applikasjoner:

  • Frakobling: Utgivere og abonnenter trenger ikke å kjenne til hverandre.
  • Fan-out: Én melding kan sendes til mange ulike typer endepunkter.
  • Pålitelighet: SNS sørger for at meldinger leveres til alle abonnerte endepunkter.
  • Skalerbarhet: Håndterer høy gjennomstrømming og et stort antall abonnenter automatisk.

SNS-kunnskapssjekk

Hvilke av de følgende er kjernebegreper eller -komponenter i Amazon SNS?

Oppsummering: SNS, ditt hendelsesknutepunkt

Gratulerer! Du har lært om Amazon SNS, AWS sin kraftige Pub/Sub-meldingstjeneste.

  • SNS bruker Topics som kommunikasjonskanaler.
  • Publishers sender meldinger til Topics.
  • Subscribers registrerer seg for å motta meldinger fra Topics via ulike Endpoints (Lambda, SQS, HTTP/S, Email, SMS).
  • SNS muliggjør frakobling og fan-out, noe som gjør arkitekturene dine mer skalerbare og robuste.

Deretter skal vi se hvordan Lambda-funksjoner kan utløses av SQS-køer og SNS-emner for å bygge kraftige hendelsesdrevne arbeidsflyter!

Gratis å komme i gang

Lær deg Serverløs backend med AWS Lambda & API Gateway med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «SNS for Pub/Sub-meldinger» gratis?

Ja – hele teksten i «SNS for Pub/Sub-meldinger» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Serverløs backend med AWS Lambda & API Gateway-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Serverløs backend med AWS Lambda & API Gateway inneholder totalt 4 leksjoner.

Hva lærer jeg i «SNS for Pub/Sub-meldinger»?

Lær om Amazon SNS (Simple Notification Service) for publisering av meldinger til flere abonnenter i en Pub/Sub-modell. Du øver på Serverløs backend med AWS Lambda & API Gateway med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Serverløs backend med AWS Lambda & API Gateway?

Ingen tidligere erfaring er nødvendig. Serverløs backend med AWS Lambda & API Gateway på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «SNS for Pub/Sub-meldinger»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Serverløs backend med AWS Lambda & API Gateway-leksjonen?

Ja. Alle Serverløs backend med AWS Lambda & API Gateway-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. SQS for frakobling av tjenester
  2. SNS for Pub/Sub-meldinger
  3. Lambda med SQS-/SNS-utløsere
  4. Dead-letter-køer og feilhåndtering
← Tilbake til Serverløs backend med AWS Lambda & API Gateway