if( !functionsTemp.isEmpty() ) { functionsTemp.forEach( function -> { Map<String,String> tags = lamdaClient.listTags(new ListTagsRequest().withResource(function.getFunctionArn())).getTags(); LambdaVH lambda = new LambdaVH(function, tags); lambdaList.add(lambda);
@Test public void testLambdaFunctionTags() throws HandlerException { BaseHandler.CONFIG_FILE = "/config/handler_config_tags.json"; TestContext context = new TestContext(); context.setInvokedFunctionArn("arn:aws:lambda:us-east-1:123:function:test:test_tags"); AWSLambdaClientFactory mockFactory = mock(AWSLambdaClientFactory.class); AWSLambda mockLambda = mock(AWSLambda.class); doReturn(mockLambda).when(mockFactory).newInstance(); ListTagsResult mockResult = mock(ListTagsResult.class); HashMap<String, String> expected = new HashMap<String, String>() { { put("t1", "foo"); put("t2", "bar"); } }; doReturn(expected).when(mockResult).getTags(); doReturn(mockResult).when(mockLambda).listTags(any()); handler.lambdaClientFactory = mockFactory; handler.init(context); Map<String, String> actual = handler.monitor.getTagsMap(); assertTrue(actual.entrySet().containsAll(expected.entrySet())); }
@Test public void tagsDuplicate() throws HandlerException { BaseHandler.CONFIG_FILE = "/config/handler_config_tags_duplicate.json"; TestContext context = new TestContext(); context.setInvokedFunctionArn("arn:aws:lambda:us-east-1:123:function:test:test_tags"); AWSLambdaClientFactory mockFactory = mock(AWSLambdaClientFactory.class); AWSLambda mockLambda = mock(AWSLambda.class); doReturn(mockLambda).when(mockFactory).newInstance(); ListTagsResult mockResult = mock(ListTagsResult.class); HashMap<String, String> functionTags = new HashMap<String, String>() { { put("f1", "foo"); put("f2", "foo"); } }; doReturn(functionTags).when(mockResult).getTags(); doReturn(mockResult).when(mockLambda).listTags(any()); handler.lambdaClientFactory = mockFactory; handler.init(context); Map<String, String> actual = handler.monitor.getTagsMap(); HashMap<String, String> expected = new HashMap<String, String>() { { put("f1", "foo"); put("f2", "foo"); put("u1", "bar"); } }; assertTrue(actual.entrySet().containsAll(expected.entrySet())); }
ListTagsResult res = lambda.listTags(new ListTagsRequest().withResource(ctx.getInvokedFunctionArn())); monitor.addTagsMap(res.getTags());
ListTagsResult res = lambda.listTags(new ListTagsRequest().withResource(ctx.getInvokedFunctionArn())); monitor.addTagsMap(res.getTags());
private void tagFunction(AWSLambda lambda, FunctionConfiguration config) { if (getTags() != null) { ListTagsRequest listTagsRequest = new ListTagsRequest() .withResource(config.getFunctionArn()); ListTagsResult listTagsResult = lambda.listTags(listTagsRequest); if (!listTagsResult.getTags().isEmpty()) { MapDifference<String, String> tagDifferences = Maps.difference(listTagsResult.getTags(), getTags()); UntagResourceRequest untagResourceRequest = new UntagResourceRequest() .withResource(config.getFunctionArn()) .withTagKeys(tagDifferences.entriesOnlyOnLeft().keySet()); lambda.untagResource(untagResourceRequest); } if (!getTags().isEmpty()) { TagResourceRequest tagResourceRequest = new TagResourceRequest() .withTags(getTags()) .withResource(config.getFunctionArn()); lambda.tagResource(tagResourceRequest); getLogger().info("Update Lambda function tags requested: {}", config.getFunctionArn()); } } } }
private void tagFunction(AWSLambda lambda) { if (getTags() != null) { ListTagsRequest listTagsRequest = new ListTagsRequest() .withResource(getUpdateFunctionConfiguration().getFunctionArn()); ListTagsResult listTagsResult = lambda.listTags(listTagsRequest); if (!listTagsResult.getTags().isEmpty()) { MapDifference<String, String> tagDifferences = Maps.difference(listTagsResult.getTags(), getTags()); UntagResourceRequest untagResourceRequest = new UntagResourceRequest() .withResource(getUpdateFunctionConfiguration().getFunctionArn()) .withTagKeys(tagDifferences.entriesOnlyOnLeft().keySet()); lambda.untagResource(untagResourceRequest); } if (!getTags().isEmpty()) { TagResourceRequest tagResourceRequest = new TagResourceRequest() .withTags(getTags()) .withResource(getUpdateFunctionConfiguration().getFunctionArn()); lambda.tagResource(tagResourceRequest); getLogger().info("Update Lambda function tags requested: {}", getUpdateFunctionConfiguration().getFunctionArn()); } } } }