查找给定资源的 Cloudwatch 日志组

Find Cloudwatch log group for a given resource

我正在创建一个日志聚合器 lambda 以将 Cloudwatch 日志发送到私有日志分析服务。考虑到我的雇主使用的资源数量,我决定创建一个 subscription lambda 来处理聚合器的日志组订阅。

该解决方案工作正常,但它需要通过亚马逊控制台手动搜索资源的日志组,然后用它调用订阅 lambda。

我的问题:

有没有办法在给定资源 arn 的情况下找到映射到它的日志组?由于我使用 Cloudformation 创建资源,因此很容易导出资源的 arn。

更新

举个例子:

假设我有以下 arn:

arn:aws:appsync:<REGION>:<ACCOUNTID>apis/z3pihpr4gfbzhflthkyjjh6yvu

这是一个 Appsync GraphQL API。

我想要的是一种方法(使用 te API 或一些自动化解决方案)来获取该资源的 Cloudwatch 日志组。

你可以试试describe-log-groups命令。它在 cli 上可用,也必须在 API.
上 要获取日志组的名称,您可以使用:

aws logs describe-log-groups --query 'logGroups[*].logGroupName' --log-group-name-prefix '/aws/appsync/[name-of-the-resource]'

输出将如下所示:

[
"/aws/appsync/[name-of-your-resource]"
]