部署到 Amazon Elastic Beanstalk 时出现信号量 CI 错误

Posted

技术标签:

【中文标题】部署到 Amazon Elastic Beanstalk 时出现信号量 CI 错误【英文标题】:Semaphore CI error when deploying to Amazon Elastic Beanstalk 【发布时间】: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 但是弹性豆茎不支持兼容信号量的版本 我明白,但是您可以通过添加我在上面提到的命令“手动”在信号量上安装任何版本。 【参考方案1】:

这是一篇旧帖子,但我刚刚遇到了这个问题,它似乎只是一个通用的 EB 部署问题,其中此错误消息具有误导性。我有从 .ebextentions 文件运行的自定义命令,当其中一个命令失败时,我收到错误消息:

Elastic Beanstalk 上的应用程序代码版本与 Semaphore 在此部署中发送的版本不匹配

【讨论】:

以上是关于部署到 Amazon Elastic Beanstalk 时出现信号量 CI 错误的主要内容,如果未能解决你的问题,请参考以下文章

部署到 Amazon Elastic Beanstalk 时出现信号量 CI 错误

如何将 Node.js WebSocket 服务器部署到 Amazon Elastic Beanstalk?

将 Django 应用程序部署到 Amazon AWS Elastic Beanstalk 时遇到问题

在 Amazon Linux 2 上将 node.js 应用程序部署到 Elastic Beanstalk 时出错

如何使用 Amazon AWS Elastic Beanstalk 部署私有 python pip 依赖项?

在 Amazon Elastic Beanstalk 上安装 Anaconda