【问题标题】:During an aborted deployment, some instances may have deployed the new application version在中止部署期间,某些实例可能已经部署了新的应用程序版本
【发布时间】:2022-01-13 03:41:11
【问题描述】:

我正在尝试将 ASP.NET 应用程序部署到 AWS。当我按下部署按钮时出现错误

在中止部署期间,某些实例可能已部署新的应用程序版本。为确保所有实例都运行相同的版本,请重新部署相应的应用程序版本。

我不知道我在哪里犯了错误以及出了什么问题 有什么意见吗?

【问题讨论】:

    标签: asp.net amazon-web-services


    【解决方案1】:

    如果您尝试部署已部署的同名源文件 zip,则会收到此错误消息。 ZIP 文件名不是 TAG !!!

    您应该始终使用不同的名称部署源文件 zip。

    最佳做法是使用不断增加的版本号(例如 Project-v2)或其他内容。

    【讨论】:

    • 如果您通过 GitHub 的代码管道作为源代码来执行此操作怎么办?
    • 如果您使用的是代码管道,您可能会从存储库中提取源代码而不是上传 zip 文件,所以这个 WHAT IF 真的毫无意义恕我直言
    • @daremachine 我已经多次尝试使用不同名称的源代码包,但我仍然面临同样的错误。
    • @AmitShakya 如果你的包在服务器上然后尝试上传任何其他的,从备份中删除旧的,然后上传新的
    【解决方案2】:

    @user2763557
    我知道这个问题已经很老了,但我在尝试通过代码管道从 Github 部署我的代码时遇到了类似的问题。

    但是我解决了这个问题。这是一个错误,当我在 Elastic Beanstalk 上运行 7.4 时,composer 尝试安装 PHP 版本 7.3 时发生。
    因此,解决其他类似问题的一个好方法是在 Elastic Beanstalk 中下载 完整日志 并打开 eb-engine.log 并查找类似我的错误:

    问题 1 - 这个包需要 php 7.3.* 但您的 PHP 版本 (7.4.4) 不满足 > 要求。

    2020/05/08 12:38:42.162732 [INFO] 执行清理逻辑

    2020/05/08 12:38:42.162814 [INFO] CommandService 响应:{"status":"FAILURE","api_version":"1.0","re​​sults":[{"status":"FAILURE","msg" :"Engine >执行遇到错误。","re​​turncode":1,"events":[]}]}

    那是我的错误,它停止 代码管道部署过程并抛出了错误。 我希望这可以帮助某人。

    【讨论】:

    • @Cunchal Raj 我将 composer.json 中的 PHP 版本更改为 7.4。所以下次我部署我的项目时,composer 安装了 7.4,它现在与我的 Elastic Beanstalk PHP 版本匹配。
    【解决方案3】:

    就我而言,这是Microsoft.Powershell.Archive 的错误。

    https://superuser.com/questions/1382839/zip-files-expand-with-backslashes-on-linux-no-subdirectories

    我从日志文件中找到这些消息:/var/log/eb-engine.log

    An error occurred during execution of command [app-deploy] - [StageJavaApplication]. Stop running the command. Error: Command /bin/sh -c /usr/bin/unzip -q -o /opt/elasticbeanstalk/deployment/app_source_bundle -d /tmp/extracted_app_source_bundle failed with error exit status 1. Stderr:warning:  /opt/elasticbeanstalk/deployment/app_source_bundle appears to use backslashes as path separators
    

    我可以成功部署 zip 文件 - 由其他程序存档。

    【讨论】:

      【解决方案4】:

      就我而言,我使用 Code PipelineGitHub 部署 Node.js 时遇到了这个错误:

      2020-12-28 14:39:30 UTC+0900    
      ERROR
      During an aborted deployment, some instances may have deployed the new application version. To ensure all instances are running the same version, re-deploy the appropriate application version.
      2020-12-28 14:39:29 UTC+0900    
      ERROR
      Failed to deploy application.
      2020-12-28 14:39:29 UTC+0900    
      ERROR
      Encountered AccessDeniedException: User: ..... is not authorized to perform: logs:DescribeLogGroups on resource: arn:aws:logs:ap-northeast-2:...
      

      即使我得到了服务器更新的错误,所以我添加了代码管道的权限以查看日志并且一切正常

      修复我所做的:

      1. IAM
      2. 角色
      3. 选择了代码管道规则
      4. 添加 AWSElasticBeanstalkFullAccess 策略

      【讨论】:

        【解决方案5】:

        我知道这是一个老问题,但问题可能永远不会老,因为它可能会由于几个问题而再次出现。 当我使用 Docker 容器托管基于 HTML 的网站时,我遇到了同样的问题。

        我通过暴露端口号修复了它

        以前是:

        From nginx
        
        WORKDIR '/app'
        
        COPY ./html/ /usr/share/nginx/html/
        

        这在本地工作,但在 AWS Elasticbeanstalk 上部署期间失败。

        我下载了日志,发现问题可能是由于没有暴露 nginx 服务器的端口。所以我暴露了默认的 nginx 服务器 80 端口,并再次将其部署在 AWS Elasticbeanstalk 上。

        这一次,它成功了!

        帮助成功部署的 Dockerfile 如下:

        From nginx
        
        EXPOSE 80
        
        WORKDIR '/app'
        
        COPY ./html/ /usr/share/nginx/html/
        

        【讨论】:

          猜你喜欢
          • 2020-02-18
          • 2021-01-24
          • 1970-01-01
          • 1970-01-01
          • 2013-03-08
          • 1970-01-01
          • 2012-07-15
          • 2013-10-29
          • 1970-01-01
          相关资源
          最近更新 更多