Barındırılan Hedefler görevleri

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

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

Barındırılan Hedefler uygulaması içeren bir Edge proxy'sini dağıtımdan kaldırdığınızda ilişkili Barındırılan Hedefler uygulaması dağıtımdan kaldırılır ancak temel uygulama resmi silinmez. Proxy'yi yeniden dağıtırsanız Hosted Targets uygulaması yeniden dağıtılır.

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

Barındırılan Hedefler proxy'sini sildiğinizde, temel alınan çalışma zamanı örnekleri belirli bir süre içinde çalışmayı durdurur. Ancak uygulama kodu kalıcı olur.

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 oluşturulmasıyla ilgili çıkışı gösterir.
  • Çalışma zamanı günlüğü: Barındırılan Hedefler uygulamasının çalıştırılmasıyla ilgili çıkışı gösterir. Çalışma zamanı günlükleri, ortamla sınırlıdır ve şu anda dağıtılan proxy düzeltmesiyle ilgili 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 Proxies'i (API Proxy'leri) seçin.
  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 de kullanabilirsiniz. Ayrıntılar için Önbelleğe Alınmış 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 bir NPM deposu kullandığınız durumlarda, barındırılan hedeflere bir Node.js proxy'sinin nasıl dağıtılacağı açıklanmaktadır.

Özel 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 bulutta çözümlenemez. Bu durumda, çözüm olarak dağıtım yardımcı programı apigeetool'u kullanırken --bundled-dependencies seçeneğini kullanabilirsiniz. Ayrıca Node.js'yi sisteminizden Edge'e dağıtma başlıklı makaleyi de inceleyin.

apigeetool üzerinde --bundled-dependencies işaretini kullandığınızda Node.js uygulamanız Hosted Targets'a yüklenir ve package.json içindeki bundledDependencies dizisinde listelenen tüm yerel/özel dosyalar paketlenip paketle birlikte yüklenir.

Yaygın bir durum olmasa da herkese açık bir NPM deposunu dahili olarak yansıtırsanız dağıtım paketiniz özel yansıtmanızı işaret eden bir .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 karakterlerini kaldırmayı unutmayın.

Özel bir NPM deposuyla dağıtma

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

  1. npm'ye giriş yapın:
    npm login
  2. npm yetkilendirme jetonu alma:
    1. .npmrc dosyanızı bulun (~/.npmrc içinde olmalıdır).
    2. .npmrc dosyanızda, şu şekilde görünen satırın sonundaki jetonu not edin:

      //registry.npmjs.org/:_authToken=****
    3. Alternatif olarak, kimlik doğrulama jetonu oluşturmak, listelemek veya iptal etmek için npm token <list | create | revoke> komutlarını kullanın. Daha fazla bilgi için npm-token belgelerini inceleyin.
  3. Aşağıda açıklandığı gibi, Anahtar/Değer Eşlemeleri yapılandırma sayfasına erişin.

    Edge

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

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

    Classic 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. Burada 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 Haritaları'nı seçin.
  4. + Anahtar Değer Haritası'nı tıklayın.
  5. Yeni Anahtar Değeri Haritası 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 her bir KVM'ye yeni bir giriş olarak ekleyin.
  8. app.yaml dosyanıza, KVM'ye ve npm kimlik doğrulama jetonuyla ilişkili 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:

    • En üst düzey ad özelliği, oluşturulacak ortam değişkeninin adıyla eşleşir.
    • valueRef altındaki name, daha önce oluşturduğunuz KVM'ye karşılık gelir.
    • Anahtar özelliği, KVM'ye eklediğiniz npm jetonuna eşlenen anahtara karşılık gelir.
  10. package.json dosyanızla aynı dizinde bir .npmrc dosyası oluşturun. Bu dosya aşağıdaki gibi görünmelidir:
    //registry.npmjs.org/:_authToken=${NPM_TOKEN}
    veya registry.npmjs.org kullanmıyorsanız kapsamı .npmrc dosyasında şu gibi bir satır ekleyerek ayarlayabilirsiniz: @myscope:registry=https://mycustomregistry.example.org Ayrıca npmrc belgelerine de göz atın.
  11. Node.js proxy'nizi .npmrc ve app.yaml dosyalarıyla birlikte yükleyin veya güncelleyin.
  12. Yeni veya güncellenmiş proxy'nizin dağıtıldığından ve istenen özel depo modülüyle çalıştığından emin olun.
  13. Proxy dağıtılmazsa özel npm modülünün yüklenmesi sırasında hata oluşup oluşmadığını görmek için derleme günlüklerini kontrol edin. Bu durumda:
    1. Geliştirme sekmesinde .npmrc dosyasının bulunduğundan emin olun.
    2. Jetonunuzun geçerli olduğundan emin olun (modülü, kvm'de jeton varken yerel olarak yüklemeyi deneyin).
    3. Özel kapsam kullanıyorsanız bunun ayarlandığından emin olun.

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

Varsayılan olarak, barındırılan hedefler ortamında paketlenmiş bağımlılıkları yüklemek için 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 dosya öğeleri başlıklı makaleyi inceleyin.

Paketlenmiş bağımlılıklar kullanıyorsanız ve NPM_VERSION belirtmiyorsanız Hosted Targets varsayılan olarak NPM v4'ü kullanır. Paketlenmiş bağımlılıklar kullanmıyorsanız belirtilen Node.js çalışma zamanınızda bulunan NPM sürümü kullanılır.

Paketlenmiş bağımlılık örneği

Paketlenmiş bağımlılıklar özelliğini barındırılan hedeflerle gösteren bir örnek için Özel modüller kullanarak barındırılan işlevlerle Node.js uygulaması oluşturma başlıklı makaleye bakın.

Durum denetimi uç noktası ekleme

Node.js uygulamanız için bir durum denetimi uç noktası uygulayabilirsiniz. Apigee, Node.js uygulamanız başladığında uygulamanın kapsayıcıda çalışır durumda olduğunu kontrol etmek için bu uç noktayı kullanır.

Apigee'nin beklediği uç nokta varsayılan olarak /health'dır. HOSTED_TARGET_HEALTH_CHECK_PATH adlı bir ortam değişkeninde uç noktayı belirterek varsayılan uç noktayı değiştirebilirsiniz. Bu değişkeni uygulamanın manifest dosyasında ayarlayabilirsiniz. Ayrıntılar için Manifest dosya öğeleri başlıklı makaleyi inceleyin.

Durum denetimi uç noktası uygulamak gerekli değildir. Ancak bir durum denetimi uç noktası uygularsanız aşağıdakilere dikkat edin:

  • Apigee, uç noktaya ulaştığında uygulamanız çıkarsa uygulama beklendiği gibi başlatılmaz.
  • Uç noktanızın 404 Bulunamadı HTTP durumu döndürmesi sorun yaratmaz. /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 yok sayılır.

NPM önbellek konumunu değiştirme

Node.js'nin daha yeni sürümlerinde, NPM önbelleği için /root/.npm kullanan bir NPM sürümü kullanılır. Bu konum, barındırılan hedef çalışma zamanı yalnızca /tmp yazılabilir olan bir tmpfs dosya sistemi kullandığından, dizin konumu salt okunur olduğundan barındırılan hedefler için bir sorun teşkil eder. Bu sorunu gidermek için uygulamanızın app.yamldosyasında (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, barındırılan hedef uygulamanızı çalıştırmak için varsayılan olarak npm start kullanır. Ancak önceki görevde, NPM'nin kullanılmasının bir sorun olduğu ele alınmıştı. Bunun nedeni, daha yeni sürümlerin NPM önbelleği için /root/.npm kullanmaya çalışmasıdır. Bu önbellek yazılabilir değildir ve Hosted Target'ın başlatılamamasına neden olur. Önceki görev bu sorunu çözse de başka bir seçenek olarak uygulamanızı NPM olmadan çalıştırabilirsiniz. Bunu yapmak için, uygulamanızın app.yaml dosyasındaki (manifest dosyası) command ve args değerlerini kullanarak node index.js ile doğrudan barındırılan hedefinizde çalıştırabilirsiniz. Ö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 komutları kullanabilirsiniz. node index.js yalnızca bir örnektir.