尝试使用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'}
)
答案 0 :(得分:0)
这里有几件事。
打印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:*
。由于下划线tag_log_group API适用于日志组名称而非ARN,因此您需要从ARN中删除最后一个:*
,以便提取正确的日志组名称。
我不确定100%是否可以在UI中看到日志组上的标签。您可能需要调用list_tags_log_group API来验证标签是否在那里。