【问题标题】:Extending Azure multistage yaml pipelines logs扩展 Azure 多阶段 yaml 管道日志
【发布时间】:2020-02-27 11:57:54
【问题描述】:

我正在尝试使用一些自定义详细信息记录多阶段 yaml 管道的每个阶段的完成情况。 如何将自定义详细信息添加到 https://dev.azure.com//_settings/audit 日志。 有没有办法将此信息持久保存在 sqldb 或任何其他持久存储选项中。 我如何订阅这些日志事件。

【问题讨论】:

  • 请问这个状态怎么样?以下解决方法是否适合您实现您想要的?
  • 我们希望将一些自定义管道变量发布到此审计数据库。由于无法自定义审计数据,我们将对 PaaS api 进行 REST 调用,并使用 REST API 调用任务在 IaaS sql db 实例中更新我们需要的内容。

标签: azure-devops azure-pipelines


【解决方案1】:

如何将自定义详细信息添加到 https://dev.azure.com//_settings/audit 日志。

恐怕这对你来说是无法实现的。

因为details的句子格式是由我们的后端类定义和固定的。一旦发生了相应的动作,除了动作类之外,还会调用事件方法来生成日志并记录到审计页面中。这些都是后端完成的。而且我们直到现在还没有向用户公开这个操作权限。

但基于我自己的观点,这是一个我们可以考虑扩展的好主意。因为自定义详细信息可以使details 对公司更具可读性。你可以提出你的想法here,投票和评论它。我们相应的产品组会定期审核这些建议,并考虑根据其优先级(投票)将其纳入我们的开发路线图。


如何订阅这些日志事件。

有一件重要的事情我需要告诉你,audit log 只能保留 90 天。它会在 90 天后被清除,包括我们的后端数据库。简而言之,如果您想要超过 90 天的审计日志,我们也无法帮助恢复。

所以我建议您可以使用Powershell 任务配置一个计划管道。

在此 powershell 任务中,运行此 api 以获取然后将其存储为您想要的任何文件类型,例如 .csv、.json 等。

对于时间表值,您可以将其设置为您喜欢的任何时间段。只需不到 90 天,因此不会让您丢失任何审核事件日志。


有没有办法将此信息保存在 sqldb 或任何其他 持久存储选项。

如果您可以使用不同的数据库,我建议您考虑使用CouchDB、DynamoDB 或MongoDB 等文档存储解决方案。

根据你的实际使用情况,你可以使用Command line task和self-agent来执行相应的存储命令。

作为示例,我使用的是 MongoDB,我可以运行以下命令来存储 api 之前生成的 JSON 文件:

C:\>mongodb\bin\mongoimport --jsonArray -d mer -c docs --file audit20191231.json

【讨论】:

    猜你喜欢
    • 2020-06-10
    • 2020-10-05
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 2020-10-31
    • 2022-09-23
    • 1970-01-01
    • 2020-09-12
    相关资源
    最近更新 更多