typescript - Skapa ett DocumentDB-kluster i en aws-cdk TS-fil och använd det som en källa för händelser med EventSourceMapping
Jag har en cdk (med version 2.61) applikation med CRUD Lambdas, ett DocumentDB-kluster och ett appsync API. Jag måste registrera i samma DocumentDB-databas de strömhändelser som kommer från de CRUD-operationer som lambdas utför. Jag har aktiverat strömhändelser från DocumentDB-databasen, men nu måste jag konfigurera klustret för att vara en källa för händelser till lambdan som kommer att ta dessa strömmar och registrera dem. Konstruktionen EventSource för lambda-biblioteket har inte ett DocumentDB-alternativ, så jag använder EventSourceMapping vilket, om jag har förstått det rätt, tillåter att använda vilken AWS-tjänst som helst som en händelsekälla.
const lambdaRecordChangeStreams = new lambda.Function(this, `lambda-record_change_stream`, {
code: lambda.Code.fromAsset(
path.join(__dirname, '../backend/controllers/lambda-record_change_stream'),
),
functionName: `lambda-record_change_stream`,
layers: [mongooseLayer],
});
const clusterStreamEventSource = new lambda.EventSourceMapping(this, `stream_event_source`, {
eventSourceArn: `arn:aws:rds:${region}:${env?.account}:cluster:${cluster.clusterIdentifier}`,
target: lambdaRecordChangeStreams,
},
);
När jag försöker distribuera det får jag felet: "Ogiltig begäran angiven: Ogiltiga parametrar: databaseName, documentDBEventSourceConfig".
Jag såg att det i CDK-dokumentationen fanns ett objekt: "CfnEventSourceMapping" med ett sätt att konfigurera ett DocumentDB-kluster som händelsekälla i props, egenskapen DocumentDbEventSourceConfig, men när jag försöker implementera det får jag ett fel att egenskapen inte finns. Så just nu sitter jag fast.
Om du kunde hjälpa mig skulle det vara fantastiskt!
Svar #1
Det ser ut som att L1 CfnEventSourceMapping-konstruktionen är ditt enda alternativ just nu. Se dokumentationen för documenDbEventSourceConfig-egenskapen.
Se även Lambda-dokumentationen för information om förutsättningar och behörigheter. DocumentDB-dokumentationen listar ytterligare överväganden.
⚠️ Uppdatera CDK till den senaste versionen. Din CDK v2.61 publicerades i januari, en månad innan Lambda-stöd för DocumentDB-change streams som en händelsekälla tillkännagavs.