2017-03-11 21 views
17

मेरे पास एक जावा वेब ऐप है जिसे मैं एक एज़ूर ऐप सेवा उदाहरण पर चलाता हूं। इसे तैनात करने के लिए, मैं इसके अंदर एक .war फ़ाइल के साथ बिटबकेट रेपो का उपयोग करता हूं। जब मैं इस रेपो में एक नई .war फ़ाइल करता हूं, तो इसे सेवा द्वारा स्वचालित रूप से तैनात किया जाना चाहिए। हालांकि, अधिकांशतः, मुझे या तो तैनाती के लिए सफलतापूर्वक पूरा होने के लिए एफ़टीपी के माध्यम से .war फ़ाइल को पुनरारंभ करना, पुनः तैनाती करना या अपलोड करना होगा।एज़ूर ऐप सेवा पर जेटी परिनियोजन कैसे काम करता है?

मेरे पास इस सेवा में रहने वाला एक जेटी उदाहरण है, इसलिए मेरी .war फ़ाइल का नाम ROOT.war है। AFAIK, जब सेवा पर अपलोड किया गया (चाहे बिटबकेट या एफ़टीपी के माध्यम से), यह .war फ़ाइल उसी निर्देशिका में अनारक्षित होनी चाहिए, जो /site/wwwroot/webapps है। मेरे मामले में, ऐसा नहीं होता है। वेब ऐप फ़ाइल के साथ /site/wwwroot/webapps के अंदर अकेले बैठा हुआ फ़ाइल के साथ काम करता है। और हर बार थोड़ी देर में, मुझे ROOT फ़ोल्डर /site/wwwroot/webapps के तहत मिलता है, जिसमें दो डिफ़ॉल्ट फ़ाइलें index.jsp और background.png होती हैं। मेरे पास इन डिफ़ॉल्ट फ़ाइलों के साथ ROOT फ़ोल्डर का कारण बनने का मामूली विचार नहीं है। मेरे पास एकमात्र सुराग यह है कि पर्यावरण परिवेश को बदलने के बाद यह दो बार हुआ।

इसके अलावा के बाद ROOT फ़ोल्डर रिक्त सर्वर फ़ाइलों के साथ प्रकट होता है, एक ही रास्ता मैं अपने को फिर से तैनाती को फिर से तैनात कर सकते हैं एप्लिकेशन को मैन्युअल FTP के माध्यम से इस ROOT फ़ोल्डर या पोर्टल में प्रदान की सांत्वना नष्ट करने के लिए है, और उसके बाद ही अनुरोध मेरे वेब ऐप के साथ सफल होता है।

तो, यदि यह पर्याप्त स्पष्ट नहीं है, तो मेरा प्रश्न यह है कि यहां क्या हो रहा है? मैं जिन व्यवहारों का सामना कर रहा हूं उनमें से कुछ भी नहीं कर सकता। मुझे लगता है कि मैं इस Azure सेवा का अंधाधुंध उपयोग कर रहा हूं, और कुछ गलत होने पर कुछ भी ठीक नहीं कर सकता। क्या कोई संसाधन है जो बता सकता है कि जब वेब ऐप तैनात किया जाता है तो पृष्ठभूमि में क्या होता है?

+0

क्या आप इसके बारे में जिथब पर कोई समस्या उठा सकते हैं? मेरा मानना ​​है कि भंडार यह हो सकता है: https://github.com/Azure/azure-sdk-for-java –

+0

@ थिगोगो कस्टोडियो मैं वास्तव में Azure Search REST API का उपयोग कर रहा हूं, इसलिए मैं बस अपने आवेदन से अनुरोध भेज रहा हूं किसी भी लाइब्रेरी का उपयोग करने के बजाय Azure प्रदान किया गया है। – halileohalilei

+0

@ halileohalilei मेरा सुझाव है कि आप अपने ऐप को तैनात करने के लिए बिटबकेट रेपो में पूर्ण फ़ाइल संरचना को जोड़ने का प्रयास करें, न कि 'वेबएप' के तहत युद्ध फ़ाइल, जैसे 'वेबपैप/<आपका ऐप नाम> /' रेपो में। –

उत्तर

0

तो, एज़ूर एपीआई ऐप्स एक पीएएएस हैं, आईएएएस सेवा नहीं। आप yoursite.scm.azurewebsites.net पर जाकर पैस प्लेटफ़ॉर्म तक पहुंच सकते हैं, जहां आप सीएमडी या पावरहेल में फ़ाइल सिस्टम ब्राउज़ कर सकते हैं, और आप चल रही प्रक्रियाओं को देख सकते हैं। ऐसा लगता है कि आप एक ही वीएम पर हैं, लेकिन आप नहीं हैं। यहां जो डेटा आप देखते हैं उसे आपके एपीआई ऐप उदाहरणों में दोहराया जाता है। आप अपने एपीआई ऐप को स्केल करके कितने उदाहरणों को नियंत्रित कर सकते हैं।

मैंने आमतौर पर तैनाती के साथ आपकी समस्या देखी है, तो रूट खाली हो रहा है (यह तय करने के लिए आंतरिक रूप से काम कर रहा है ...)। मेरे लिए हर बार काम करने वाली सबसे अच्छी विधि, अपने एपीआई ऐप को रोकना है, मैन्युअल रूप से अपने ROOT.war को अनजिप करें। अपनी एपीआई ऐप शुरू करने के लिए फ़ाइलों को/रूट/में ले जाएं।

आप बस ROOT.war रख सकते हैं, और इसे चालू करते समय सिस्टम को अनपैक कर सकते हैं, लेकिन यह कभी-कभी उस खाली रूट निर्देशिका का कारण बन सकता है, फिर एक और पुनरारंभ करने की आवश्यकता होती है।

यह सब मुझे इसके बजाय स्प्रिंग-बूट में स्थानांतरित कर रहा है। कोई अनपॅकिंग की आवश्यकता नहीं है। बस अपने web.config को कॉन्फ़िगर करें और जार फ़ाइल ड्रॉप करें।

https://docs.microsoft.com/en-us/azure/app-service-web/web-sites-java-custom-upload#springboot

1

मैं एक ही समस्या थी। समाधान तैनाती के बाद एंडपॉइंट को कॉल करना है।

  1. Azure ऐप सेवा को रोकें।
  2. /webapps फ़ोल्डर में ROOT.war आर्टिफैक्ट को तैनात करें।
  3. Azure ऐप सेवा शुरू करें।
  4. एक बार ऐप सेवा के यूआरएल को कॉल करें।

चार-चरण बहुत महत्वपूर्ण है और आपने जिस प्रक्रिया का उल्लेख किया है (स्वचालित रूप से तैनाती) शुरू करें।

मुझे समस्या का पता लगाने में बहुत समय लगता है।

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