当某些 appspec 挂钩失败时,如何使 AWS CodeDeploy 返回错误?

2023-11-22

我有一个带有两个实例的 AWS。我已将 CodeDeploy 配置为在所有实例上自动部署我的项目。

In the appspec.yml我有该部分:

hooks:
   AfterInstall:
     - location: codedeploy_scripts/deploy_afterinstall
       timeout: 300
       runas: root

deploy_afterinstall是一个简单的 bash 脚本。有时其中的某些命令会失败。例如,此命令更新/安装 Composer 依赖项。

if [ -f "composer.lock" ]; then
   composer update -n
else
   composer install -n
fi

但 CodeDeploy 会忽略此脚本中的任何错误,并始终表示部署成功。我怎样才能改变这种行为?我希望当挂钩中的某些命令未成功完成时部署失败,并在部署控制台或日志中查看错误。


我最初在使用 CodeDeploy 时遇到了类似的问题。我建议让你的 bash 脚本更加严格:

#!/bin/bash
set -euo pipefail

通过将 e、u 和 o pipelinefail 设置为选项,Bash 的行为将更像编程语言,而不像脚本。您可以阅读更多有关“Bash 严格模式”在这里.

当您的 Composer 安装或更新失败时,Bash 将以非零代码退出,并且代码部署将失败。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当某些 appspec 挂钩失败时,如何使 AWS CodeDeploy 返回错误? 的相关文章

随机推荐

  • Gitlab 与 Github 相比有何不同?

    我试图从经验丰富的开发人员的角度来理解两者的优缺点 当然 Github 是两者中使用更广泛的一个 但如果有人能概括性地解释一下他们发现其中哪一个更好 缺乏什么 那就太好了 顺便说一句 我现在使用 Github Gitlab 是一个自托管的
  • 退出iPhone应用程序的正确方法?

    我正在编写一个 iPhone 应用程序 由于某些用户操作 我需要强制它退出 清理应用程序分配的内存后 调用什么适当的方法来终止应用程序 在 iPhone 上 没有退出应用程序的概念 导致应用程序退出的唯一操作是触摸手机上的 主页 按钮 而开
  • Azure Active Directory 是否具有 OAuth/OpenID Connect 令牌自省端点?

    Azure Active Directory 是否具有自省端点 如中定义 RFC7662 用于验证 OpenID Connect 或 OAuth 访问令牌 否 您可以通过以下方式检查支持的所有端点OpenID 提供商配置对于 Azure A
  • 如何计算直方图的标准差? (Python、Matplotlib)

    假设我有一个数据集并使用 matplotlib 绘制该数据集的直方图 n bins patches plt hist data normed 1 如何使用以下公式计算标准差n and bins价值观hist 回报 我目前正在这样做来计算平均
  • Android 触摸秤按钮

    我知道如何将按钮缩放到确定的值 但是有没有办法在用户触摸按钮时每次增加 减小按钮大小 像这样的东西 Button myButton Button findViewById R id myButton myButton setOnTouchL
  • 检索泛型方法的正确重载的 MethodInfo

    我的这种类型包含一个泛型方法的两个重载 我喜欢检索其中一个重载 使用Func
  • 为什么“python -m pip install ...”需要“-m”?

    我最近使用pip安装了requestspython 2 7 中的包 但是为了做到这一点 我必须使用 python m pip install requests 而不仅仅是 python pip install requests 这给了我一个
  • jquery .bind() 是否已弃用?

    是 jquerybind 已弃用还是可以安全使用 我在评论和答案中看到很多关于 bind 被弃用的评论 例如 Jquery Event 检测 div 的 html text 的更改 是否有 JavaScript jQuery DOM 更改侦
  • 如何将 DataGridView 定位到特定行(以便所选行位于底部)?

    作为一个类似的问题这个问题 我还有一个带有 DataGridView 的应用程序 我想定位行 使特定行位于列表可见部分的底部 这是对将一行向下移动一位的按钮单击的响应 我想保留我正在移动的行上的选择 我已经让这部分工作 如果有很多行 所选行
  • 将数组从一页传递到另一页

    我有一个包含一些值的数组 比如说 arr one one value here arr two second value here arr three third value here 我这个值位于页面 home php 中 在页面末尾 它
  • dart:js 和 js 包有什么区别?

    Dart 文档中的所有地方都建议使用js用于 JavaScript 互操作性的包 然而 我最近发现dart jsSDK 中存在似乎具有相似 但不相同 接口的包 这些包之间有什么区别吗 它们的功能相同吗 推荐哪一款 Js 互操作始于包 js
  • application.yml 中的 @Value 返回错误值

    In my application yml文件声明 service a b 011600 c 011200 从中选择值 yml via Value注解 Value service a c private String VALUE 我得到的不
  • Python - 像扩展函数一样扩展属性

    Question 如何扩展 python 属性 子类可以通过在重载版本中调用超类的函数来扩展超类的函数 然后对结果进行操作 下面是我所说的 扩展函数 的一个例子 Extending a function a tongue in cheek
  • 将毫秒转换为天、小时、分钟和秒

    我在 Microsoft SQL Server 2008R2 中有一个 bigint 字段 里面充满了刻度 单个刻度代表一百纳秒或百万分之一秒 一毫秒有 10 000 个刻度 http msdn microsoft com en us li
  • WCF 发现返回硬编码 URL

    总体设计如下 有某些应用程序作为 Windows 服务安装 网络上可能有几个这样的 它们每个都向网络公开一些接口 将其视为 远程控制 或 配置 诸如此类的东西 然后还有另一个应用程序充当该接口的客户端 使用相同的类比 远程控制器 或 配置工
  • makefile:4: *** 缺少分隔符。停止

    这是我的生成文件 all ll ll ll c gcc c Wall Werror 02 c c ll c o ll lt clean rm fr ll 当我尝试make clean or make make 我收到此错误 makefile
  • 处理临时文件流

    假设我想定义一个 TempFileStream 类 它使用 Path GetTempFileName 方法创建临时文件 当不再需要 TempFileStream 的对象时 必须删除临时文件 例如关闭或处置 class TempFileStr
  • 确定哪个编译器构建了 Win32 PE

    如何确定使用哪个 C 或 C 编译器来构建特定的 Windows 可执行文件或 DLL 一些编译器会在最终的可执行文件中留下版本字符串 但这在 Windows 上似乎比在 Linux 上更罕见 具体来说 我感兴趣的是区分 Visual C
  • 如何在 Bash 中将字符串与多个正确值进行比较?

    我有以下 Bash 脚本 function get cms echo input cms name read cms cms cms if cms wordpress cms meganto cms typo3 then get cms f
  • 当某些 appspec 挂钩失败时,如何使 AWS CodeDeploy 返回错误?

    我有一个带有两个实例的 AWS 我已将 CodeDeploy 配置为在所有实例上自动部署我的项目 In the appspec yml我有该部分 hooks AfterInstall location codedeploy scripts