为什么AWS Elastic Beanstalk会继续提供旧的应用版本?

Sid*_*ant 10 git amazon-ec2 amazon-web-services amazon-elastic-beanstalk

我在Django上开发了一个应用程序,并配置为在AWS Elastic Beanstalk上部署它.该应用的早期版本已启用管理员.我在新的应用程序中禁用了相同的功能.

这是应用程序的url.py.

from django.conf.urls import patterns, include, url
#from django.contrib import admin
#from django.contrib import admin.site.urls
#admin.autodiscover()
urlpatterns = patterns('',
    # Examples:
    url(r'^$', 'firstapp.views.home', name='home'),
    url(r'^jd/', include('jd.urls')),
   # url(r'^admin/', include('admin.site.urls')),
)
Run Code Online (Sandbox Code Playgroud)

但是当我浏览应用程序的URL时,所提供的应用程序仍然是旧版本.我ssh-ed到服务器并检查文件.这些文件是旧应用程序的文件.AWS EB控制台显示部署到环境的新应用程序版本.我还从AWS EB面板下载了代码,代码属于新应用程序.

Elastic Beanstalk env的URL是:http: //secondapp-env.elasticbeanstalk.com/

可以在此处访问管理面板:http: //secondapp-env.elasticbeanstalk.com/admin/ 理想情况下,此网址应为404.

问题是,在整个AWS EB控制台中,我看到新版本的应用程序已部署并投放(我已尝试使用git aws.push推送代码以及在aws eb控制台上传)但是实际代码位于ec2服务器仍然是旧版本的应用程序.

如何强制上传代码?代码的实际部署是否存在延迟(尽管自部署新版本以来已经超过一个小时且代码非常小)

Ste*_*pel 0

如果AWS 管理控制台显示已部署的新AWS Elastic Beanstalk应用程序版本,则实际上应该始终如此,其他所有内容都将是 AWS 方面的严重错误,因此有点值得怀疑。

从这个角度来看,我预计您可能不会以一种或另一种方式查看正确的资源 - 例如,您是否可能不小心将一个版本部署到不同的区域?(在使用 AWS 时,几乎每个人都可能在某个时候看到错误的区域;)

当然,您不能拥有两个具有相同环境 URL 的已部署应用程序,因此实际上需要使用不同的应用程序来部署一个应用程序(也许 Elastic Beanstalk 已自动选择一个应用程序,这可能会发生,具体取决于部署场景) - 此处有几件事可以尝试:

  1. 验证您看到的新环境 URL 是否确实是您想要的环境 URL,而不是自动生成的环境 URL
  2. 鉴于这只是一个测试部署,我只需删除新的部署,并希望旧的部署仍然可以在该 URL 上使用

两者都会证实您实际上正在运行两个环境的怀疑,此时找到另一个环境应该很简单。

祝你好运!