AWS Elastic Beanstalk:命令挂钩失败

问题描述 投票:0回答:3

尝试通过 Visual Studio 2015 将 IIS 应用程序部署到 AWS Elastic Beanstalk。每次我们尝试部署它时,我们都会收到以下错误:

Error occurred during build: Command hooks failed

[Instance: i-XXXXXXXX ConfigSet: Infra-WriteRuntimeConfig, Infra-WriteApplication1,
Infra-WriteApplication2, Infra-EmbeddedPreBuild, Hook-PreAppDeploy,
Infra-EmbeddedPostBuild, Hook-EnactAppDeploy, Hook-PostAppDeploy]
Command failed on instance. Return code: 1 Output: null.

Unsuccessful command execution on instance id(s) 'i-XXXXXXXX'. Aborting the operation.

我们已尝试重新启动应用程序。我们尝试删除并重新创建环境和应用程序。一切都没有成功。总是同样的错误。我在任何地方都无法在网上找到任何可以解决此问题的信息。还有其他人遇到过这个问题并找到了解决方案吗?

amazon-web-services iis visual-studio-2015 amazon-elastic-beanstalk
3个回答
0
投票

Beanstalk 部署错误通常非常普遍。

要找到根本原因,故障排除步骤是 AWS Elastic Beanstalk 故障排除文档中的步骤

  1. 检索和调查 EB 日志.
  2. 如果检索到的日志没有帮助,那么 SSH 到 EC2 实例 可用于获取更多详细信息或检查实例配置是否确实符合预期。

0
投票

在部署之前通过 SSH 登录到 ec2 实例并进行实时日志提取

tail -f /var/log/eb-engine.log 

你会得到正确的错误日志,为什么钩子失败了。


0
投票

检查您在源代码中正确创建的钩子,例如,

钩子应该在项目根目录的这个路径中创建

.platform/hooks/postdeploy/
.platform/hooks/predeploy/

如果您创建了一个bash hooks,您必须在它执行之前为其授予权限,因此请为.ebextensions中的hooks设置权限,如下图所示

如果以上都正确,那么检查 EB 日志,因为您必须登录到当前实例。

如果实例附加了您的密钥对,您可以直接登录到 ssh,否则您必须创建一个 ssh 密钥对并附加到实例,如下所示

然后将更改应用到 EB 应用程序并使用 ssh 登录到实例

并检查以下日志

ls /var/log/

cat /var/log/eb-hooks.log 

您还可以使用

查看 EB 引擎的详细日志
cat /var/log/eb-engine.log
© www.soinside.com 2019 - 2024. All rights reserved.