#python #node.js #amazon-web-services #aws-lambda #aws-msk
Вопрос:
Я пытаюсь обновить существующий MSK-триггер моей функции lambda, добавив темы в список через API. Если редактирование невозможно, я также открыт для создания нового триггера MSK.
Этот новый триггер будет добавлен в существующую лямбду с помощью другой лямбда-функции, которая будет иметь свои собственные события.
Может ли кто-нибудь направить меня:
- Возможно ли вообще редактировать существующий триггер MSK с помощью API.
- Или можно ли добавлять и подключать новые триггеры MSK через API?
Попробовал покопаться в документации: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/lambda.html#Lambda.Клиент.update_function_event_invoke_config
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Lambda.html#putFunctionEventInvokeConfig-property
Код:
var AWS = require('aws-sdk');
var config = require('./config')
var lambda = new AWS.Lambda({region: config.AWS_REGION});
const listEventSource = async () => {
var params = {
FunctionName: config.LAMBDA_FUNCTION_NAME
};
res = await lambda.listEventSourceMappings(params).promise()
console.log(res)
};
const createMSKTrigger = async ()=>{
var params = {
FunctionName: config.LAMBDA_FUNCTION_NAME,
BatchSize: 'NUMBER_VALUE',
BisectBatchOnFunctionError: true || false,
DestinationConfig: {
OnFailure: {
Destination: 'STRING_VALUE'
},
OnSuccess: {
Destination: 'STRING_VALUE'
}
},
Enabled: true || false,
EventSourceArn: 'STRING_VALUE',
FunctionResponseTypes: [
ReportBatchItemFailures,
/* more items */
],
MaximumBatchingWindowInSeconds: 'NUMBER_VALUE',
MaximumRecordAgeInSeconds: 'NUMBER_VALUE',
MaximumRetryAttempts: 'NUMBER_VALUE',
ParallelizationFactor: 'NUMBER_VALUE',
Queues: [
'STRING_VALUE',
/* more items */
],
SelfManagedEventSource: {
Endpoints: {
'<EndPointType>': [
'STRING_VALUE',
/* more items */
],
/* '<EndPointType>': ... */
}
},
SourceAccessConfigurations: [
{
Type: BASIC_AUTH | VPC_SUBNET | VPC_SECURITY_GROUP | SASL_SCRAM_512_AUTH | SASL_SCRAM_256_AUTH,
URI: 'STRING_VALUE'
},
/* more items */
],
StartingPosition: TRIM_HORIZON | LATEST | AT_TIMESTAMP,
StartingPositionTimestamp: new Date || 'Wed Dec 31 1969 16:00:00 GMT-0800 (PST)' || 123456789,
Topics: [
'STRING_VALUE',
/* more items */
],
TumblingWindowInSeconds: 'NUMBER_VALUE'
};
triggerRes = lambda.createEventSourceMapping(params).promise()
}
Ответ №1:
Python — Boto3
Вы можете обновить триггер, используя метод сопоставления update_event_source.
Вы можете создать триггер, используя метод сопоставления create_event_source.
Javascript — AWS SDK
Вы можете обновить триггер с помощью класса UpdateEventSourceMappingCommand.
Вы можете создать триггер с помощью класса CreateEventSourceMappingCommand.
Ниже приведена документация AWS «Использование Lambda с Amazon MSK». https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html
Я надеюсь, что это поможет вам решить вашу проблему.