尝试使用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'}
)
这里有几件事。
-
打印
tag_resources
API的响应,其中可能包含指向正确方向的消息。 -
您正在使用较新的
tag_resources
API。此API建立在较旧的按资源划分的API之上。类似于本例中的tag_log_group API。这意味着您的lambda将需要对tag:TagResources
和logs:TagLogGroup
的权限。 -
您正在发送通过呼叫
describe_log_groups
获得的ARN。这些ARN的形式为arn:aws:logs:REGION:ACCOUNT:log-group:LOG_GROUP_NAME:*
。由于下划线标记_log_group API使用日志组名称,而不是ARN,因此需要从ARN中删除最后一个:*
,以便提取正确的日志组名称。 -
我不能100%确定你甚至可以在UI中看到日志组上的标签。您可能需要调用list_tags_log_group API来验证标签是否存在。