Barındırılan Hedefler görevleri

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
info

Barındırılan Hedefler proxy'sinin dağıtımını kaldırma

Barındırılan Hedefler uygulaması içeren bir Edge proxy'sinin dağıtımını kaldırdığınızda, ilişkili Barındırılan Hedefler uygulamasının dağıtımı kaldırılır ancak temel uygulama görüntüsü silinmez. Proxy'yi yeniden dağıtırsanız Barındırılan Hedefler uygulaması yeniden dağıtılır.

Barındırılan hedefler proxy'sini silme

Barındırılan Hedefler proxy'sini sildikten sonra temel çalışma zamanı örnekleri belirli bir süre içinde çalışmayı durdurur. Ancak uygulama kodu değişmeden kalır.

Günlük dosyalarına erişme

Günlük dosyaları, hata ayıklama ve sorun giderme için faydalıdır. Barındırılan hedefler dağıtımı için iki tür günlük dosyası görüntüleyebilirsiniz:

  • Derleme günlüğü: Barındırılan Hedefler uygulamasının dağıtılması ve derlenmesiyle ilgili çıkışı gösterir.
  • Çalışma zamanı günlüğü: Çalışan Barındırılan Hedefler uygulamasıyla ilgili çıktınızı gösterir. Çalışma zamanı günlükleri, ortama göre belirlenir ve şu anda dağıtılan proxy düzeltmesi için günlük bilgilerini gösterir.

Edge kullanıcı arayüzünden günlüklere erişme

  1. apigee.com/edge adresine gidin.
  2. Giriş kimlik bilgilerinizi girip Oturum Aç'ı tıklayın.
  3. Yan gezinme menüsünde Geliştir > API Proxy'leri seçeneğini belirleyin.
  4. Günlüklerini görüntülemek istediğiniz proxy'yi seçin.
  5. Geliştir sekmesini tıklayın.
  6. Derleme günlüğünü görmek için Derleme Günlükleri'ni tıklayın.
  7. Çalışma zamanı günlüğünü görmek için Çalışma Zamanı Günlükleri'ni tıklayın.

API ile günlüklere erişme

Barındırılan hedefler günlüklerini almak için bir Edge API'si de kullanabilirsiniz. Ayrıntılar için Önbelleğe Alınan Node.js Günlüklerini Alma başlıklı makaleyi inceleyin.

Özel bir npm deposu kullanma

Bu bölümde, geliştirme ortamınızda özel NPM deposu kullandığınız durumlarda, Barındırılan Hedeflere Node.js proxy'sinin nasıl dağıtılacağı açıklanmaktadır.

Gizli depo kullanma hakkında bilmeniz gerekenler

Edge'e bir Node.js uygulaması dağıttığınızda projenizin tüm bağımlılıkları, dağıtım sürecinin bir parçası olarak otomatik olarak içe aktarılır. Barındırılan Hedefler, dağıtıldığında kodunuzda npm install çalıştırır. Ancak geliştirme ortamınızda özel bir NPM deposu kullanıyorsanız özel bağımlılıklar Cloud'da çözülemez. Bu durumda, çözüm, dağıtım yardımcı programı apigeetool'u kullanırken --bundled-dependencies seçeneğini kullanmaktır. Ayrıca Node.js'yi sisteminizden Edge'e dağıtma başlıklı makaleyi de inceleyin.

apigeetool adresinde --bundled-dependencies işaretini kullandığınızda, Node.js uygulamanız Barındırılan Hedeflere yüklenir. package.json bölgesindeki bundledDependencies dizisinde listelenen yerel/özel dosyalar sıkıştırılır ve paketle birlikte yüklenir.

Sık karşılaşılan bir durum olmasa da herkese açık bir NPM deposunu dahili olarak yansıtırsanız dağıtım paketiniz, özel yansıtmanıza işaret eden .npmrc veya package-lock.json dosyası içeriyorsa dağıtımınızın başarısız olacağını unutmayın. Bu durumda, dağıtmayı planladığınız proxy paketinizden .npmrc veya package-lock.json değerini çıkardığınızdan emin olun.

Özel bir NPM deposuyla dağıtma

Özel bir NPM deposundan sağlanan modülleri kullanmak için şu adımları uygulayın:

  1. npm'ye giriş yapın:
    npm login
  2. npm kimlik doğrulama jetonu alın:
    1. .npmrc dosyanızı bulun (~/.npmrc içinde olmalıdır).
    2. .npmrc'nizde satırın sonundaki jetona dikkat edin:

      //registry.npmjs.org/:_authToken=****
    3. Dilerseniz kimlik doğrulama jetonu listelemek, oluşturmak veya iptal etmek için npm token <list | create | revoke> komutlarını da kullanabilirsiniz. Daha ayrıntılı bilgi için npm-token dokümanlarına bakın.
  3. Aşağıda açıklandığı şekilde Anahtar/Değer Eşlemeleri yapılandırma sayfasına erişin.

    Edge

    Edge kullanıcı arayüzünü kullanarak Anahtar/Değer Eşlemesi yapılandırma sayfasına erişmek için:

    1. apigee.com/edge adresinde oturum açın.
    2. Soldaki gezinme çubuğunda Yönetici > Ortamlar > Anahtar Değer Haritaları'nı seçin.

    Klasik Edge (Private Cloud)

    Klasik Edge kullanıcı arayüzünü kullanarak Anahtar/Değer Eşlemeleri yapılandırma sayfasına erişmek için:

    1. http://ms-ip:9000 adresinde oturum açın. ms-ip, Yönetim Sunucusu düğümünün IP adresi veya DNS adıdır.
    2. Üst gezinme çubuğunda API'ler > Ortam Yapılandırması > Anahtar/Değer Eşlemeleri'ni seçin.
  4. + Anahtar Değer Haritası'nı tıklayın.
  5. Yeni Anahtar/Değer Eşleme iletişim kutusunda bir ad girin ve Şifrelenmiş'i seçin.
  6. Ekle'yi tıklayın.
  7. Daha önce bulduğunuz veya oluşturduğunuz kimlik doğrulama jetonunu, yeni oluşturduğunuz KVM'lerin her birine yeni bir giriş olarak ekleyin.
  8. app.yaml dosyanıza, npm kimlik doğrulama jetonuyla ilişkili KVM'ye ve anahtara referans veren bir giriş ekleyin. Şuna benzer bir görünümde olacaktır:
  9. env:
    - name: NPM_TOKEN
     valueRef:
       name: npm_store
       key: private_token

    Burada:

    • Üst düzey ad özelliği, oluşturulacak ortam değişkeninin adına karşılık gelir.
    • valueRef altındaki ad, daha önce oluşturduğunuz KVM'ye karşılık gelir.
    • Anahtar özelliği, KVM'ye eklediğiniz npm jetonuyla eşleşen anahtara karşılık gelir.
  10. Bundle.json'unuzla aynı dizinde bir .npmrc dosyası oluşturun. Bu dosya şuna benzer:
    //registry.npmjs.org/:_authToken=${NPM_TOKEN}
    veya registry.npmjs.org kullanmıyorsanız .npmrc dosyasında şuna benzer bir satır ekleyerek kapsamı ayarlayabilirsiniz:@myscope:registry=https://mycustomregistry.example.org npmrc dokümanlarına da göz atın.
  11. Node.js proxy'nizi .npmrc ve app.yaml dosyalarını ekleyerek yükleyin veya güncelleyin.
  12. Yeni veya güncellenmiş proxy'nizin, istenen özel depolama alanı modülüyle dağıtıldığından ve çalıştığından emin olun.
  13. Proxy dağıtılmıyorsa özel npm modülünün yüklenmesi sırasında başarısız olup olmadığını görmek için derleme günlüklerini kontrol edin. Böyle bir durumda:
    1. Geliştirme sekmesinde .npmrc öğesinin bulunduğundan emin olun.
    2. Jetonunuzun geçerli olduğundan emin olun (kvm'de bulunan jetonla modülü yerel olarak yüklemeyi deneyin).
    3. Özel kapsam kullanıyorsanız bunun ayarlandığından emin olun.

Paketlenmiş bağımlılar için NPM sürümünü belirtme

Barındırılan Hedefler ortamına paketlenmiş bağımlılıkları yüklemek için varsayılan olarak NPM v4 kullanılır. Ancak farklı bir NPM sürümü kullanmak istiyorsanız bunu NPM_VERSION ortam değişkeninde belirtebilirsiniz. Bu değişkeni uygulamanın manifest dosyasında ayarlayabilirsiniz. Ayrıntılar için Manifest dosyası öğeleri bölümüne bakın.

Paketlenmiş bağımlılık kullanıyorsanız ve NPM_VERSION belirtmezseniz barındırılan hedefler varsayılan olarak NPM v4'ü kullanır. Paketlenmiş bağımlılıkları kullanmıyorsanız belirtilen Node.js çalışma zamanına dahil edilen NPM sürümü kullanılır.

Gruplandırılmış bağımlılık örneği

Barındırılan Hedeflerle gruplandırılmış bağımlılıklar özelliğinin gösterildiği bir örnek için Özel modüller kullanarak Barındırılan İşlevler ile Node.js uygulaması oluşturma başlıklı makaleye bakın.

Durum denetimi uç noktası ekleyin

Node.js uygulamanız için durum denetimi uç noktası uygulama seçeneğiniz vardır. Apigee, Node.js uygulamanız, uygulamanın container'da çalışıp çalışmadığını kontrol etmeye başladığında bu uç noktayı kullanır.

Apigee'nin beklediği uç nokta varsayılan olarak /health şeklindedir. Varsayılan uç noktasını, HOSTED_TARGET_HEALTH_CHECK_PATH adlı bir ortam değişkeninde belirterek değiştirebilirsiniz. Bu değişkeni uygulamanın manifest dosyasında ayarlayabilirsiniz. Ayrıntılar için Manifest dosyası öğeleri bölümüne bakın.

Durum denetimi uç noktası uygulamak gerekli değildir. Ancak durum denetimi uç noktası uygularsanız aşağıdakileri göz önünde bulundurun:

  • Apigee uç noktaya ulaştığında uygulamanız çıkarsa uygulama beklendiği gibi başlamaz.
  • Uç noktanız 404 Bulunamadı HTTP durumu döndürüyorsa sorun yoktur. /health veya HOSTED_TARGET_HEALTH_CHECK_PATH yalnızca uygulamanızın çalışıp çalışmadığını kontrol etmek için kullanılır. Gerçek yanıt yoksayılır.

NPM önbellek konumunu değiştirme

Node.js'nin yeni sürümleri, NPM önbelleği için /root/.npm kullanan bir NPM sürümünü kullanır. Barındırılan Hedef çalışma zamanı yalnızca /tmp dosyasının yazılabilir olduğu bir tmpfs dosya sistemi kullandığından, bu dizin konumu salt okunur olduğu için Barındırılan Hedefler için sorun teşkil eder. Bu sorunu çözmek için uygulamanızın app.yaml dosyasındaki (manifest dosyası) npm_config_cache ortam değişkenini /tmp içindeki bir dizine ayarlayabilirsiniz. Örneğin:

  runtime: node
  application: my-express-app
  env:
    - name: npm_config_cache
      value: /tmp/.npm
    - name: NODE_ENV
      value: production
    - name: LOG_LEVEL
      value: 3
  

Uygulamanızı NPM olmadan çalıştırma

Barındırılan Hedefler, varsayılan olarak Barındırılan Hedef uygulamanızı çalıştırmak için npm start'ü kullanır. Ancak önceki görevde, yeni sürümler NPM önbelleği için /root/.npm kullanmaya çalışacağı için NPM kullanımıyla ilgili bir sorunu ele almıştık. Bu önbellek yazılamaz ve Barındırılan Hedefinizin başlatılamamasına neden olur. Önceki görev bu sorunu çözse de uygulamanızı NPM olmadan çalıştırmak da bir seçenektir. Bunu yapmak için, barındırılan hedefinizi doğrudan node index.js kullanarak çalıştırmak üzere uygulamanızın app.yamldosyasındaki (manifest dosyası) command ve args değerlerini kullanabilirsiniz. Örneğin:

  runtime: node
  application: my-express-app
  command: node
  args:
    - index.js
  env:
    - name: NODE_ENV
      value: production
    - name: LOG_LEVEL
      value: 3
  
Elbette, uygun gördüğünüz herhangi bir komutu kullanabilirsiniz. node index.js yalnızca bir örnektir.