Как мы можем обновить или создать новый триггер MSK для лямбда-функции через api

#python #node.js #amazon-web-services #aws-lambda #aws-msk

Вопрос:

Я пытаюсь обновить существующий MSK-триггер моей функции lambda, добавив темы в список через API. Если редактирование невозможно, я также открыт для создания нового триггера MSK.

Этот новый триггер будет добавлен в существующую лямбду с помощью другой лямбда-функции, которая будет иметь свои собственные события.

Может ли кто-нибудь направить меня:

  1. Возможно ли вообще редактировать существующий триггер MSK с помощью API.
  2. Или можно ли добавлять и подключать новые триггеры 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

Я надеюсь, что это поможет вам решить вашу проблему.