从AWS Lambda删除触发器引用

时间:2018-01-22 06:56:59

标签: amazon-web-services aws-lambda

我正在使用AWS java sdk,需要删除触发AWS Lambda函数的CloudWatch规则。使用以下代码删除CloudWatch规则是成功的。但Lambda函数中存在引用,Lambda AWS控制台将CloudWatch规则显示为已删除,并显示“删除”图标以将其删除。任何人都知道如何使用Java SDK从Lambda函数中删除对CloudWatch规则的引用吗?

cloudWatchEvent.removeTargets(removeTargetsRequest);
cloudWatchEvent.deleteRule(deleteRequest);

1 个答案:

答案 0 :(得分:0)

在删除触发器时,您也需要从Lambda策略中删除invoke:Lambda权限。如果您没有删除该权限,它将显示在Lambda控制台中。

如果您不知道与触发器关联的statement-id,请使用

提取lambda策略
AWSLambda client = AWSLambdaClientBuilder.standard().build();
GetPolicyRequest request = new GetPolicyRequest().withFunctionName("myFunction").withQualifier("1");
GetPolicyResult response = client.getPolicy(request);

记下声明ID。

接下来,使用

删除此权限
AWSLambda client = AWSLambdaClientBuilder.standard().build();
RemovePermissionRequest request = new RemovePermissionRequest().withFunctionName("myFunction").withStatementId("role-statement-id").withQualifier("1");
RemovePermissionResult response = client.removePermission(request);

此处的示例 - https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/lambda/AWSLambda.html