如何在 Jenkins2 中复制管道日志并将其上传到 amazon-S3?

How to copy pipeline logs in Jenkins2 and upload it to amazon-S3?

我正在创建一个创建 CloudFormation 堆栈的管道,将我的代码部署到实例并在最后销毁 CloudFormation 堆栈(无论管道失败还是成功完成)。

但在销毁堆栈之前,我想复制 Jenkins 的日志并将它们保存在 amazon-S3 中。我能够成功创建堆栈并将其删除。但不确定如何将日志复制到 amazon-s3。

我正在使用 Jenkins2

  1. 假设您有一个带有 cli/boto3 命令的脚本,用于将所需的日志推送到 ec2 框(Jenkins 框)中的 S3 - 使用 ec2
  2. 的初始化数据创建它
  3. 在 CFT 中创建一个 lambda 自定义资源,它不会为 "Create/Update stack" 操作做任何事情。但是,这应该在 "Delete stack" 操作期间执行推送脚本(参考:http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-custom-resources-lambda.html
  4. 可以使用 Systems Manager 运行 命令从 lambda 触发脚本执行(参考:)

这样,堆栈将使用自定义 lambda 资源创建,该资源将在删除堆栈时通过在实例中执行脚本来上传日志。