Integration med Amazon EventBridge
Udnyt Amazon EventBridge til at oprette hændelsesbusser, dirigere hændelser fra forskellige kilder og skabe effektive hændelsesdrevne integrationer på tværs af jeres AWS-konto.
Integration med Amazon EventBridge er en gratis Serverløs udvikling med AWS Lambda-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Serverløs udvikling med AWS Lambda, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Serverløs udvikling med AWS Lambda-kurset indeholder 4 lektioner i alt.
Hvad er Amazon EventBridge?
Velkommen til en dybere gennemgang af hændelsesdrevne arkitekturer! I dag skal vi udforske Amazon EventBridge, en effektiv tjeneste, der fungerer som et centralt nervesystem for dine serverløse applikationer.
EventBridge er en serverløs hændelsesbus, som gør det nemt at forbinde applikationer ved hjælp af data fra dine egne applikationer, Software-as-a-Service- (SaaS-)applikationer og AWS-tjenester.
EventBridge: centrale begreber
EventBridge bygger på nogle få centrale begreber:
- Hændelsesbus: En pipeline, der modtager hændelser. Der findes en Default Event Bus til hændelser fra AWS-tjenester, og du kan oprette Custom Event Buses.
- Regler: Filtre, der matcher indgående hændelser baseret på deres indhold (hændelsesmønstre).
- Mål: De AWS-tjenester eller slutpunkter, som en hændelse sendes til, når en regel matcher.
Den standardmæssige hændelsesbus
Alle AWS-konti har automatisk en Default Event Bus. Denne bus modtager hændelser fra mere end 200 AWS-tjenester, f.eks. S3, EC2, Lambda og CloudTrail.
Du behøver ikke konfigurere disse kilder; de udgiver automatisk hændelser til standardbussen. Det gør det muligt for dig at reagere på ændringer og aktiviteter på tværs af dit AWS-miljø uden tilpasset kode.
Brugerdefinerede hændelsesbusser og kilder
Mens standardbussen håndterer AWS-hændelser, kan du oprette Custom Event Buses til at administrere hændelser fra dine egne applikationer eller tredjeparts-SaaS-udbydere.
Det gør det muligt at centralisere hændelsesroutingen for hele dit økosystem. Hændelseskilder kan være:
- AWS-tjenester: (via standardbussen)
- SaaS-partnere: (f.eks. Zendesk, Shopify)
- Brugerdefinerede applikationer: Dine egne mikroservices eller monolitter.
Oprettelse af hændelsesmønstre (regler)
Regler fortæller EventBridge, hvilke hændelser der skal routes hvorhen. Hver regel har et hændelsesmønster, en JSON-struktur, der definerer de kriterier, en hændelse skal opfylde for at matche.
Hændelsesmønstre kan matche bestemte felter eller præfikser og kan endda kontrollere, om felter findes. De er meget fleksible til filtrering.
Eksempel på et hændelsesmønster
Her er et eksempel på et hændelsesmønster, der matcher enhver PutObject-handling på en S3-bucket:
Dette mønster sikrer, at kun hændelser, hvor S3-objekter oprettes, udløser reglen.
{
"source": ["aws.s3"],
"detail-type": ["AWS API Call via CloudTrail"],
"detail": {
"eventSource": ["s3.amazonaws.com"],
"eventName": ["PutObject"]
}
}EventBridge-mål
Når en hændelse matcher en regel, sender EventBridge den til ét eller flere mål. Målene er de efterfølgende tjenester, der behandler hændelsen.
Almindelige mål omfatter:
- AWS Lambda-funktioner
- Amazon SQS-køer
- Amazon SNS-emner
- AWS Step Functions-tilstandsmaskiner
- Kinesis-streams
- og mange flere!
Lambda som EventBridge-mål
Lambda-funktioner er et meget almindeligt mål for EventBridge. Når en regel matcher en hændelse, påkalder EventBridge din Lambda-funktion og sender hændelsesdataene som input.
Det gør det muligt for dig at bygge meget reaktionsdygtige, hændelsesdrevne mikroservices, der reagerer på ændringer i dit AWS-miljø eller i brugerdefinerede applikationer.
Håndtering af EventBridge-hændelser i Lambda
Lad os se på en Python-Lambda-funktion, der er udviklet til at modtage og behandle en EventBridge-hændelse. Parameteren event indeholder hele JSON-nyttelasten for hændelsen.
Vi simulerer en S3 PutObject-hændelse som demonstration.
import json
def lambda_handler(event, context):
print("Received event from EventBridge:")
print(json.dumps(event, indent=2))
source = event.get('source')
detail_type = event.get('detail-type')
if source == 'aws.s3' and detail_type == 'AWS API Call via CloudTrail':
bucket_name = event['detail']['requestParameters']['bucketName']
object_key = event['detail']['requestParameters']['key']
print(f"S3 PutObject event detected for bucket: {bucket_name}, key: {object_key}")
else:
print(f"Unknown event source: {source}, detail-type: {detail_type}")
return {
'statusCode': 200,
'body': json.dumps('Event processed successfully!')
}
# Simulate a local invocation for testing
if __name__ == '__main__':
sample_s3_event = {
"version": "0",
"id": "c6183e20-7f51-4091-8656-e23a31c51e0f",
"detail-type": "AWS API Call via CloudTrail",
"source": "aws.s3",
"account": "123456789012",
"time": "2023-10-27T10:00:00Z",
"region": "us-east-1",
"resources": [],
"detail": {
"eventSource": "s3.amazonaws.com",
"eventName": "PutObject",
"requestParameters": {
"bucketName": "my-cool-bucket",
"key": "new-image.jpg"
}
}
}
print("--- Simulating Lambda with EventBridge event ---")
lambda_handler(sample_s3_event, None)
print("--- Simulation complete ---")Hurtig test af EventBridge
Du vil udløse en Lambda-funktion, hver gang en ny bruger tilmelder sig i din brugerdefinerede applikation. Din applikation udgiver en hændelse med navnet UserSignedUp til din brugerdefinerede hændelsesbus.
Hvilket af følgende hændelsesmønstre matcher denne specifikke hændelse korrekt?
Opsummering: EventBridge i praksis
I denne lektion udforskede vi Amazon EventBridge og forstod dens rolle som en central hændelsesbus for dine serverløse applikationer. Du lærte om:
- Hændelsesbusser: Standard, brugerdefinerede og partnerbusser.
- Regler: Brug af hændelsesmønstre til at filtrere hændelser.
- Mål: Afsendelse af matchede hændelser til tjenester som Lambda.
- Hvordan Lambda integreres for at behandle EventBridge-hændelser.
EventBridge er afgørende for at bygge skalerbare, løst koblede og reaktionsdygtige hændelsesdrevne arkitekturer.
Lær Serverløs udvikling med AWS Lambda med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 12
- Lektioner
- 48
Ofte stillede spørgsmål
Er lektionen “Integration med Amazon EventBridge” gratis?
Ja — hele teksten til “Integration med Amazon EventBridge” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Serverløs udvikling med AWS Lambda-kurset, skal du opgradere til CoddyKit PRO. Serverløs udvikling med AWS Lambda-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Integration med Amazon EventBridge”?
Udnyt Amazon EventBridge til at oprette hændelsesbusser, dirigere hændelser fra forskellige kilder og skabe effektive hændelsesdrevne integrationer på tværs af jeres AWS-konto. Du øver dig i Serverløs udvikling med AWS Lambda med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Serverløs udvikling med AWS Lambda?
Der kræves ingen tidligere erfaring. Serverløs udvikling med AWS Lambda på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.
Hvor lang tid tager lektionen “Integration med Amazon EventBridge”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Serverløs udvikling med AWS Lambda-lektion?
Ja. Alle Serverløs udvikling med AWS Lambda-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Opbygning af hændelsesdrevne mikrotjenester
- Integration med Amazon EventBridge
- Realtidsbehandling med Kinesis
- Saga-mønsteret til distribuerede transaktioner