如何使用boto3将标签添加到Cloudwatch日志组?

时间:2020-03-18 15:16:01

标签: python-2.7 boto3 amazon-cloudwatchlogs

尝试使用boto3的cloudwatchLog服务将标签添加到ResourceGroupsTaggingAPI组。 代码似乎在执行时没有错误,但是看不到添加的标签。 如何将标签添加到cloudwatchLog组?

代码:

log_group=[]
client = boto3.client('logs')
client_api=boto3.client('resourcegroupstaggingapi')

 def lambda_handler(event, context):
    paginator = client.get_paginator('describe_log_groups')
    response_iterator = paginator.paginate()
    for page in response_iterator:
        for grp in page['logGroups']:
            log_group.append(str(grp['arn']))
    client_api.tag_resources(
        ResourceARNList=log_group,
        Tags={
            'Header1':'value1',
            'Header2':'value2',
            'header3':'value3'}
        )    

1 个答案:

答案 0 :(得分:0)

这里有几件事。

  1. 打印tag_resources API的响应,它可能包含指示您正确方向的消息。

  2. 您正在使用更新的tag_resources API。该API建立在每个资源的旧API之上。在这种情况下,类似于tag_log_group API。这意味着您的lambda将需要对tag:TagResourceslogs:TagLogGroup的权限。

  3. 您正在发送通过调用describe_log_groups获得的ARN。这些ARN的格式为arn:aws:logs:REGION:ACCOUNT:log-group:LOG_GROUP_NAME:*。由于下划线tag_log_group API适用于日志组名称而非ARN,因此您需要从ARN中删除最后一个:*,以便提取正确的日志组名称。

  4. 我不确定100%是否可以在UI中看到日志组上的标签。您可能需要调用list_tags_log_group API来验证标签是否在那里。