【发布时间】:2016-08-09 03:28:33
【问题描述】:
我刚刚为我正在处理的一个新项目设置 CI,我的测试运行并成功完成,但是当 Semaphore 尝试将我的代码上传到我的 Amazon Elastic Beanstalk 实例时,我收到错误:
Elastic Beanstalk 上的应用程序代码版本与 Semaphore 在此部署中发送的版本不匹配。请查看您的 AWS Elastic Beanstalk 控制台了解更多信息。
打印 JSON 对象:
{
"Environments": [
{
"ApplicationName": "my-app-server",
"EnvironmentName": "myappserver",
"VersionLabel": "Sample Application",
"Status": "Ready",
"EnvironmentLinks": [],
"EnvironmentId": "my_environment_id",
"EndpointURL": "my_server_ip",
"SolutionStackName": "64bit Amazon Linux 2016.03 v2.1.0 running Node.js",
"CNAME": "my_cname",
"Health": "Red",
"AbortableOperationInProgress": false,
"Tier": {
"Version": " ",
"Type": "Standard",
"Name": "WebServer"
},
"HealthStatus": "Degraded",
"DateUpdated": "2016-04-14T16:10:46.905Z",
"DateCreated": "2016-04-14T15:44:41.965Z"
}
]
}
注意:我遗漏了一些细节来隐藏我的 EB 实例的身份。
我不确定为什么在部署到运行 Node.js 的空白 Elastic Beanstalk 实例时收到此错误。当然如果我没有配置环境,部署应该会打到EB并安装成功吗?
我按照信号量指南found here 尝试部署我的应用程序。
【问题讨论】:
-
您能从您的 AWS 控制台分享这些事件吗?您的 HealthStatus 已降级,因此应该有一些关于为什么会发生这种情况的信息。您还应该在 AWS 控制台上检查日志,在那里您很可能会找到问题的根源。顺便说一句,Semaphore 向您显示的错误消息是因为部署未成功更新您的应用程序代码。
-
@rastasheep 我对问题所在有一点了解。 Semaphore CI 正在发送节点版本为 4.3.2 的节点代码,但 Elastic beanstalk 仅支持最高 4.3.0。我查看了 EB 支持的其他版本,但 Semaphore 始终是 .2 的版本。我手动部署了我的代码,一切运行良好。有什么想法吗?
-
如果您需要一些特定的节点版本,您可以在部署中使用附加命令轻松切换或安装特定版本,例如
nvm install 4.3.0 -
但是弹性豆茎不支持兼容信号量的版本
-
我明白,但是您可以通过添加我在上面提到的命令“手动”在信号量上安装任何版本。
标签: amazon-web-services amazon-elastic-beanstalk semaphore-ci