2014-04-27 33 views
9

我在Django上开发了一个应用程序,并配置为在AWS Elastic Beanstalk上部署它。该应用的早期版本已启用管理。我在新应用中禁用了相同的功能。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')), 
) 

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

弹性魔豆ENV的网址是: http://secondapp-env.elasticbeanstalk.com/

管理面板,可以访问这里: http://secondapp-env.elasticbeanstalk.com/admin/ 理论上讲,该网址应导致404

的问题是,在整个AWS EB控制台我看到部署和服务的应用程序的新版本(我已经尝试通过使用git aws.push推送代码以及在aws eb控制台上上传),但驻留在ec2服务器上的实际代码仍旧是较旧的代码应用程序的版本。

我该如何强制上传代码?有没有在代码的实际部署 延迟(虽然已经过了一个小时,因为我部署的新 版本的代码是相当小)

+0

我正在为http://secondapp-env.elasticbeanstalk.com/admin/获取404状态码,这是否意味着您的问题已经解决了? –

+1

现在我们遇到了同样的问题,有一个转折:我们第一次部署新版本的应用程序,它是正确的。但是,当自动缩放启动时,它会将以前的版本部署到新机器上。无需说这可能会很麻烦,因为它随时可能发生,而且您不知道部署了什么(或者通过在所有机器上重新部署最新版本来解决问题)。我想知道是否有人知道为什么会发生这种情况,或者谁写这个。 – lucke84

+0

这个错误依然存在。我在进行需要新实例的UpdateEnvironment调用时会注意到它。 EB正确替换实例,但随后部署旧版本。我已经向AWS企业支持部门报告过了,希望我们能够解决它。 –

回答

0

如果AWS Management Console被显示为部署新AWS Elastic Beanstalk程序版本事实上,事实上总是如此,其他一切都将是AWS方面的一个严重错误,因此有些疑问。

从这个角度来看,我认为您可能不会以某种方式查看正确的资源 - 例如,您是否意外地将一个版本部署到了不同的地区? (在使用AWS时,几乎每个人都会看到错误的地区)

当然,您不能有两个部署的应用具有相同的环境URL,因此需要部署一个带有不同的一个事实上(自动也许弹性魔豆已经选择之一,它可以发生取决于部署方案) - 这里有一些事情要尝试:

  1. 验证新的一个,你所看到的环境网址是实际上是你想要它的一个,而不是自动生成的一个
  2. 鉴于这只是一个测试部署,我只是简单地删除一个新的,并预计t旧的仍然可以在那个URL

两者都会证实你怀疑你正在运行两个环境,事实上,发现另一个应该是简单的那一点。

祝你好运!

0

这很可能是您引用了两个不同的文件或结构。

根据您使用的API,它们中的很多都具有npm build功能。您可能正在编辑“原始”代码,而不是编译,然后部署相同的内置文件。如果是这种情况,您需要运行构建工具:gulp,webpack或grunt,然后重新部署。

相关问题