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



尝试使用boto3使用ResourceGroupsTaggingAPI服务向cloudwatchLog组添加标记。代码执行时似乎没有错误,但没有看到添加的标记。如何将标签添加到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. 打印tag_resourcesAPI的响应,其中可能包含指向正确方向的消息。

  2. 您正在使用较新的tag_resourcesAPI。此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:*。由于下划线标记_log_group API使用日志组名称,而不是ARN,因此需要从ARN中删除最后一个:*,以便提取正确的日志组名称。

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

最新更新