如何使用 boto3 将标签添加到 Cloudwatch 日志组?
How to add tags to Cloudwatch log group using boto3?
正在尝试使用 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 建立在较早的资源之上,每个资源 APIs。就像本例中的 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 来验证标签是否存在。
正在尝试使用 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 建立在较早的资源之上,每个资源 APIs。就像本例中的 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 来验证标签是否存在。