1

我在 Azure 上安装了 AWS-Toolkit 扩展。在 Azure 发布管道中,我已配置系统管理器运行命令任务以在 ec2 实例上执行 python 脚本。问题在于,一旦触发 SSM - Run 命令任务,它就会给出“成功”状态(在 1 秒内)并继续执行阶段中的下一个任务。但是,该作业仍在 ec2-instance 上执行。

我想知道我应该如何让天蓝色管道任务等到执行真正结束,然后提供它执行的脚本的适当状态。

对于 AWS SSM 控制台上的相同调用,它显示作业(脚本)正在执行中。这是天蓝色管道的问题吗?我其余的 AWS 任务似乎在 azure 管道中运行良好。

注意:管道任务根据需要正确配置(因为它正在做它应该做的事情)。唯一的问题是这个任务应该等到工作完成。

编辑 1: 添加在管道中执行的任务以更清晰:

  1. 使用 Terraform 启动 EC2
  2. 从 repo 获取代码并发布它(使用 Publish Artifact 任务)
  3. 存档(创建 zip),然后将其上传到 S3
  4. 使用 AWS CodeDeploy 服务从 S3 获取代码并将其“安装”到已启动的 EC2 上,然后使用 CodeDeploy Hooks 运行一些“安装后”脚本。
  5. 通过 SSM 执行另一个脚本(因为它可能需要几个小时才能完成,因此无法通过最大超时为 3600 的 CodeDeploy Hooks 来执行)
  6. 脚本执行完成后,使用 terraform destroy 终止实例。
4

1 回答 1

0

即使作业在后台执行,AWS System Manger 上的 Azure Release Pipeline 任务也会成功。这是天蓝色管道的问题吗?

azure pipeline 没有问题。尝试使用官方CMD 任务来运行您的 python 脚本。Success除非脚本成功执行且没有错误,否则官方 CMD 任务不会显示状态。(您的预期行为。)

相反,我认为这是第三方任务本身的问题。Azure Devops 支持开发自定义扩展,如果您遇到任务本身的问题,您应该尝试联系第三方扩展的作者。

您可以尝试通过此处的问题与他们联系。这是与该任务相关的一个未解决问题,与您遇到的行为类似。我建议您在那里跟踪问题并要求对该功能请求进行任何更新。

于 2020-06-18T06:15:22.370 回答