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

问题描述 投票:0回答:1

尝试通过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'}
        )    

python-2.7 boto3 amazon-cloudwatchlogs
1个回答
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来验证标签是否在那里。

© www.soinside.com 2019 - 2024. All rights reserved.