如果我将特定文件放在存储库位置,我想有条件地执行 AWS Codepipeline 中的特定阶段。因此,如果我将“some_file.txt”放在存储库中的某个位置,我希望 Codepipeline 检查该文件是否存在,如果存在,则继续将代码部署到生产环境,否则停止在该阶段。
这样我想避免手动批准操作并通过提交文件来控制发布过程。这可能吗?最佳实践是什么?
我认为你可以为此创建一个 lambda 操作:
lambda 函数可以访问输入工件,并检查您感兴趣的文件是否存在。
根据检查结果,该函数使用 put_job_success_result 或 put_job_failure_resul 来继续或停止管道。
您可以使用规范文件来检查是否存在所需的文件。如果没有,那么您可以执行
stop-pipeline-execution
命令。所需的参数可以从环境变量中获取,还需要注意的一件事是给予您的该阶段足够的权限以便能够执行该命令。