2013-03-17 37 views
9

Amazon Elastic Beanstalk hizmetini kullanarak bir node.js uygulamasını dağıtmaya çalışıyorum. Bu eğiticiyi (http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs.sdlc.html) takip ederek uygulamayı dağıtmayı başardım. Ancak, bir kez Amazon'a yüklendiğinde, uygulama başlatılamadı. Günlükleri incelemek bana şu hatayı gösteriyor: "npm yüklemesi çalıştırılamadı".Node.js dağıtım sorunu

Sorunun ne olabileceği konusunda iyi bir fikri olan var mı? Uygulama yerel olarak harika çalışıyor.

Yardımlarınız için şimdiden teşekkür ederiz!

cevap

14

Aynı sorunu yaşıyordum ve Kevin'ın çözümü benim için sorunu çözdü, ancak başka bir şeyi tanıttı: Otomatik ölçeklendirme için EB tarafından oluşturulan yeni örnekler de manuel yapılandırmaya ihtiyaç duyuyor. Bu, her iki sorunu çözmek için yaptığım Kevin'ın yönteminde yapılan değişikliktir:

Kevin'ın sorununu çözmenin bir diğer yolu, gerekli paketleri uygulamanız için bir yapılandırma dosyasına eklemektir. .config (ör., Myapp.config) uzantısıyla bir yapılandırma dosyası oluşturun ve kaynak paketinizin .ebextensions üst düzey dizinine yerleştirin. yapılandırma dosyası nereye ilgili ayrıntılar için

packages: 
    yum: 
     openssl-devel: [] 

: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_nodejs_custom_container.html

Ve ayrıntıları paketleri dahil (ve daha fazlası) üzerinde openssl-geliştirici paketi gerektirecek amacıyla, bu yapılandırma dosyasında satırları dahil yapılandırma dosyası: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html

+2

Mükemmel ekleme! Teşekkürler –

+0

Ayrıca şunu eklemek zorunda kaldım: 'gcc',' make', 'libxml2' ve' libxml2-devel' çalışmak için npm kurulumumu almak için, app.config dosyasındaki yum bölümü şöyle görünüyor: [npm kurulum hatası ] (https://forums.aws.amazon.com/thread.jspa?messageID=437520񪴐). – shaond

+4

Merhaba @sHz, Ben aynı sorunu yine farklı bir proje ile yaşıyorum. Tekrar ek paketler eklemem gerekiyor, ancak doğru olanları bulmak için deneme yanılmalarını ve hatalardan kaçınmayı çok isterim. İhtiyacın olan bağımlılıkları nasıl anladın? – jakeorr

1

Sorunun ne olduğunu anladım. İşte açıklama.

npm paket yöneticisinin bazı paketleri yüklememesinin nedeni, bazı paketlerin önce linux kitaplıklarının yüklenmesi (OpenSSL-devel) gerektirmesiydi. Bu sorunu gidermek için, ben gerekiyordu:

1. SSH benim node.js Elastik Beanstalk örneği

İlk ilişkili benim EC2 örneğine, (senin EC2 örneğinde "Sonlandırma Koruma" kaldır EC2 örneğinize tıklayın ve "Sonlandırma Korumasını Değiştirin" ifadesini arayın. Ardından, EC2 örneğine "KeyPair" eklemeniz gerekir, bunun için ELB yöneticisine gidin ve ELB uygulamanızın konfigürasyon dosyasını düzenleyin. bu bağlantıyı kontrol edin (SSH to Elastic Beanstalk instance)

2. Eksik kitaplıkları yükleyin bu yardımcı olur

sudo yum update 

sudo yum install openssl-devel 

Umut (benim durumumda, bcrypt npm paketi bunu gerektiren çünkü)!

+1

Tam olarak benim sorunum ve% 100 düzeltme. Bir anahtar çiftini eklerken o bayrak her şeyi eb için kırmızı normal olduğunu unutmayın ve taze bir dağıtma itti kadar pano onun ölme gibi bakmak zorunda - sorunları içinde ssh ve düzeltmek sonra. – Catalyst

+8

Bunu okuyor ve takip ediyorsanız, lütfen elastik beanstalk örneklerine paketleri manuel olarak yüklemektan kaçının; bir ortamı otomatik olarak ölçeklendirdiğinizde veya yeniden oluşturduğunuzda orada olmayacaktır. Bunun yerine, jakeorr'ın cevabını takip edin ve paketi otomatik olarak yüklenecek şekilde .ebextensions yapılandırmasına ekleyin. –

+2

reddedildi.Bu EB'yi kullanma amacını yitirir. Yeni hazırlanmış bir örnek bu değişiklikleri kaybedecek. –

1

Bu sorunla karşılaştım ve bir sonraki büyük örnek türünü seçerek çözdüm.