以编程方式禁用和启用AWS lambda触发器

时间:2017-09-13 13:44:25

标签: amazon-web-services aws-lambda

我们有办法禁用&以编程方式启用Lambda触发器(例如,用于计划的维护目的)?

enter image description here

3 个答案:

答案 0 :(得分:2)

您可以根据您的操作方法,使用更新事件源映射,使用以下方法禁用和启用Lambda触发器。

注意:您需要为使用IAM角色/用户执行的每种方法授予相关权限,或者临时访问凭据。

答案 1 :(得分:1)

在EventSourceMapping下记录,您指定哪个事件arn应该映射到给定的lambda,它将执行触发器关联。

以下是使用节点js的API,

http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Lambda.html#createEventSourceMapping-property

使用CLI: http://docs.aws.amazon.com/cli/latest/reference/lambda/create-event-source-mapping.html

所有支持的语言也都有此API。

答案 2 :(得分:0)

在Java中启用/禁用:

AWSLambda client = AWSLambdaClientBuilder.standard().build();
UpdateEventSourceMappingRequest request = new UpdateEventSourceMappingRequest()
    .withUUID(uuid)
    .withFunctionName("myFunction")
    .withEnabled(true) // false to disable
    .withBatchSize(123);
UpdateEventSourceMappingResult response = client.updateEventSourceMapping(request);

在科特林:

val client: AWSLambda = AWSLambdaClientBuilder.standard().build()
val request: UpdateEventSourceMappingRequest = UpdateEventSourceMappingRequest()
                .withUUID(uuid)
                .withFunctionName("myFunction")
                .withEnabled(false) // true to enable
                .withBatchSize(10)
val response: UpdateEventSourceMappingResult = client.updateEventSourceMapping(request)

需要依赖:

implementation 'com.amazonaws:aws-java-sdk-lambda:1.11.+'