2014-04-27 5 views
9

मैंने 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')), 
) 

लेकिन जब मैं ऐप के यूआरएल को ब्राउज़ करता हूं तो ऐप परोसने वाला ऐप अभी भी पुराना संस्करण है। मैं सर्वर में ssh-ed और फ़ाइलों की जांच की है। फाइलें पुराने ऐप के हैं। एडब्ल्यूएस ईबी कंसोल पर्यावरण के लिए तैनात नए ऐप संस्करण को दिखाता है। मैंने एडब्ल्यूएस ईबी पैनल से कोड भी डाउनलोड किया और कोड नए ऐप से संबंधित है।

लचीला बीनस्टॉक env का URL है: http://secondapp-env.elasticbeanstalk.com/

व्यवस्थापक पैनल यहाँ पहुँचा जा सकता है: http://secondapp-env.elasticbeanstalk.com/admin/ आदर्श रूप में इस यूआरएल एक 404.

में परिणाम चाहिए समस्या यह है कि पूरे एडब्ल्यूएस में ईबी कंसोल मैं ऐप का नया संस्करण तैनात और सेवा के रूप में देखता हूं (मैंने गिट aws.push का उपयोग करके कोड को दबाकर और aws eb कंसोल पर अपलोड करके दोनों को कोशिश करके कोशिश की है) हालांकि ec2 सर्वर पर मौजूद वास्तविक कोड अभी भी पुराना है ऐप का संस्करण

मैं कोड अपलोड करने के लिए कैसे मजबूर कर सकता हूं? वहाँ कोड की वास्तविक तैनाती में विलंब हुआ है (यह एक घंटे से अधिक कर दिया गया है हालांकि बाद से मैं नए संस्करण तैनात और कोड काफी छोटा होता है) के रूप में तैनात

+0

मुझे इस बीच http://secondapp-env.elasticbeanstalk.com/admin/ के लिए 404 स्टेटस कोड प्राप्त हो रहा है, क्या इसका मतलब है कि आपकी समस्या पहले ही हल हो गई है? –

+1

हम मोड़ के साथ आजकल एक ही समस्या का सामना कर रहे हैं: पहली बार जब हम ऐप का एक नया संस्करण तैनात करते हैं, तो यह सही हो जाता है। जब ऑटोस्केलिंग में लाता है, हालांकि, यह पिछले संस्करण को नई मशीनों पर तैनात करता है। यह कहने की कोई ज़रूरत नहीं है क्योंकि यह किसी भी समय परेशानी हो सकती है और आप कभी भी सुनिश्चित नहीं हैं कि क्या तैनात किया गया है (या सभी मशीनों पर नवीनतम संस्करणों को फिर से तैनात करके समस्या को ठीक करने के लिए वहां रहें)। मुझे आश्चर्य है कि किसी के पास कोई विचार है कि ऐसा क्यों होता है या इसके बारे में कौन लिखना है। – lucke84

+0

यह बग अभी भी मौजूद है। मैं इसे अद्यतन करता हूं जब एक अद्यतन एंटरप्राइज़ कॉल करता है जिसके लिए नए उदाहरण की आवश्यकता होती है। ईबी घटनाओं को सही ढंग से बदल देता है, लेकिन फिर पुराने संस्करण को तैनात करता है। मैंने इसे एडब्ल्यूएस एंटरप्राइज़ समर्थन की सूचना दी है, इसलिए उम्मीद है कि हम इसे हल कर लेंगे। –

उत्तर

0

तो AWS Management Console अपने नए AWS Elastic Beanstalk एप्लिकेशन संस्करण दिखाया जा रहा है , वास्तव में यह हमेशा मामला होना चाहिए, बाकी सब कुछ एडब्ल्यूएस पक्ष पर एक गंभीर त्रुटि होगी और तदनुसार थोड़ा सा संदिग्ध है।

उस कोण से मुझे उम्मीद है कि आप सही संसाधनों को एक तरफ या दूसरे तरीके से नहीं देख पाएंगे - उदाहरण के लिए, क्या यह हो सकता है कि आपने गलती से एक संस्करण को एक अलग क्षेत्र में तैनात किया हो? (गलत क्षेत्र को देखते हुए शायद किसी भी समय एडब्ल्यूएस के साथ काम करते समय लगभग हर किसी के साथ होता है;)

बेशक, आपके पास समान पर्यावरण यूआरएल के साथ दो तैनात एप्स नहीं हो सकते हैं, इसलिए किसी को तैनात करने की आवश्यकता होगी

  1. सत्यापित करें कि नया एक आप देख रहे हैं के वातावरण यूआरएल है: - वास्तव में अलग से एक (एक स्वचालित रूप से हो सकता है लचीला बीनस्टॉक चुना गया है, तैनाती परिदृश्य के आधार पर हो सकता है जो) कुछ बातें यहां की कोशिश कर रहे हैं असल में वह जिसे आप चाहते हैं और स्वचालित रूप से जेनरेट नहीं किया गया है
  2. यह सिर्फ एक परीक्षण तैनाती है, मैं बस नया हटा दूंगा और expec उस यूआरएल पर अभी भी उपलब्ध नहीं है

दोनों संदेह की पुष्टि करेंगे कि आप वास्तव में दो वातावरण चला रहे हैं, दूसरे को ढूंढना उस बिंदु पर सरल होना चाहिए।

शुभकामनाएं!

0

यह काफी संभव है कि आप दो अलग-अलग फाइलों या संरचनाओं का संदर्भ दे रहे हैं।

आप जिस एपीआई का उपयोग कर रहे हैं उसके आधार पर, उनमें से बहुत से npm build विशेषताएं हैं। यह संभव है कि आप "कच्चे" कोड को संपादित कर रहे हों, भवन न बनाएं, और फिर उसी निर्मित फ़ाइलों को तैनात कर रहे हों। यदि ऐसा है, तो आपको अपना बिल्ड टूल चलाने की आवश्यकता होगी: गल्प, वेबपैक या ग्रंट, और फिर फिर से तैनात करें।

संबंधित मुद्दे