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'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ı tekrar dağıtılır.

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

Barındırılan Hedefler proxy'sini sildikten sonra, temeldeki çalışma zamanı örnekleri bir süre içinde çalışmayı durdurur. Ancak uygulama kodu geçerliliğini korur.

Günlük dosyalarına erişme

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

  • Derleme günlüğü: Barındırılan Hedefler uygulamasının dağıtımı ve oluşturulmasıyla ilgili çıktınızı 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 odaklanır ve hâlihazırda dağıtılmış olan proxy düzeltmesinin günlük bilgilerini gösterir.

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

  1. apigee.com/edge sayfasına gidin.
  2. Giriş kimlik bilgilerinizi girin ve Oturum Aç'ı tıklayın.
  3. Yan gezinme menüsünde Geliştirme > API Proxy'leri'ni 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 Günlük Derleme seçeneğini 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 Edge API'si de kullanabilirsiniz. Ayrıntılar için Önbelleğe Alınan Node.js Günlüklerini Alma bölümüne bakın.

Ö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 nasıl Node.js proxy'nin dağıtılacağı açıklanmaktadır.

Özel bir depoyu kullanma hakkında bilmeniz gerekenler

Bir Node.js uygulamasını Edge'e dağıttığınızda, projenizin tüm bağımlılıkları dağıtım süreci kapsamında 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 NPM deposu kullanıyorsanız özel bağımlılıklar Cloud'da çözülemez. Bu durumda çözüm, Apigeetool dağıtım yardımcı programını kullanırken --bundled-dependencies seçeneğini kullanmaktır. Node.js'yi sisteminizden Edge'e dağıtma konusuna da bakın.

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

Sık karşılaşılan bir durum olmasa da, herkese açık bir NPM deposunu dahili olarak yansıttığınızda, dağıtım paketinizde özel yansıtmanıza işaret eden bir .npmrc veya package-lock.json dosyası olduğu takdirde dağıtımınızın başarısız olacağını unutmayın. Bu durumda, dağıtmayı düşündüğünüz proxy paketinden .npmrc veya package-lock.json öğelerini çıkarmayı unutmayın.

Özel bir NPM deposuyla dağıtım

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

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

      //registry.npmjs.org/:_authToken=****
    3. Yetkilendirme jetonunu 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 Haritaları yapılandırma sayfasına erişin.

    Edge

    Edge kullanıcı arayüzünü kullanarak Anahtar/Değer Haritaları 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 Eşlemeleri'ni seçin.

    Klasik Edge (Private Cloud)

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

    1. http://ms-ip:9000 üzerinde 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 Eşleme'yi tıklayın.
  5. Yeni Anahtar/Değer Eşlemesi 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 az önce oluşturduğunuz her bir KVM'ye yeni bir giriş olarak ekleyin.
  8. app.yaml dosyanıza, KVM'ye ve npm yetkilendirme 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:

    • Üst düzey name özelliği, oluşturulacak ortam değişkeninin adına karşılık gelir.
    • valueRef'in altındaki ad, daha önce oluşturduğunuz KVM'ye karşılık gelir.
    • key özelliği, KVM'ye eklediğiniz npm jetonuyla eşlenen anahtara karşılık gelir.
  10. Bundle.json dosyanızla aynı dizinde bir .npmrc dosyası oluşturun. Bu dosya şuna benzer olmalıdır:
    //registry.npmjs.org/:_authToken=${NPM_TOKEN}
    veya registry.npmjs.org kullanmıyorsanız şuna benzer bir satır ekleyerek .npmrc dosyasında kapsamı ayarlayabilirsiniz @myscope:registry=https://mycustomregistry.example.org npmrc dokümanlarına da bakın.
  11. Node.js proxy'nizi, eklenen .npmrc dosyası ve app.yaml dosyalarıyla 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ılmıyorsa özel npm modülünü yüklemede 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 (modülü kvm'de bulunan jetonla yerel olarak yüklemeyi deneyin).
    3. Özel bir kapsam kullanıyorsanız bunun ayarlandığından emin olun.

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

Varsayılan olarak NPM v4, Barındırılan Hedefler ortamında paketlenmiş bağımlılıkları yüklemek için kullanılır. Ancak farklı bir NPM sürümü kullanmak isterseniz 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 bölümüne bakın.

Paketlenmiş bağımlılıklar kullanıyorsanız ve NPM_VERSION değerini belirtmezseniz Barındırılan Hedefler, varsayılan olarak NPM v4'ü kullanır. Paketlenmiş bağımlılıkları kullanmıyorsanız belirttiğiniz Node.js çalışma zamanına dahil olan NPM sürümü kullanılır.

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

Barındırılan Hedeflerle paketlenmiş bağımlılıklar özelliğini gösteren bir örnek için Özel modüller kullanarak Barındırılan İşlevlerle Node.js uygulaması oluşturma bölümüne bakın.

Durum denetimi uç noktası ekleyin

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

Varsayılan olarak Apigee'nin beklediği uç nokta /health şeklindedir. Uç noktayı HOSTED_TARGET_HEALTH_CHECK_PATH adlı bir ortam değişkeninde 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 bölümüne bakın.

Durum denetimi uç noktası uygulanması gerekmez. Ancak bir 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ı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 yoksayılır.

NPM önbellek konumunu değiştirme

Node.js'nin daha yeni sürümleri, NPM önbelleği için /root/.npm kullanan bir AİOY sürümünü kullanır. Barındırılan Hedef çalışma zamanı, yalnızca /tmp yazılabilir olan bir tmpfs dosya sistemi kullandığından bu konum, Barındırılan Hedefler için bir sorun oluşturur. Bu sorunu çözmek için uygulamanızın app.yamlmanifest dosyasındaki 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ı AİOY olmadan çalıştırın

Barındırılan Hedefler, varsayılan olarak Barındırılan Hedef uygulamanızı çalıştırmak için npm start politikasını kullanır. Ancak önceki görevde, yeni sürümler NPM önbelleği için /root/.npm kullanmaya çalışacağından ve bu durum yazılamaz ve Barındırılan Hedefinizin başlatılamamasına neden olduğundan, NPM'nin kullanılmasıyla ilgili bir sorundan bahsetmiştik. Önceki görev bu sorunla devam edecek olsa da diğer bir seçenek de uygulamanızı AİOY olmadan çalıştırmaktır. Bunun için uygulamanızın app.yamldosyasındaki (manifest dosyası) command ve args değerlerini kullanarak Barındırılan Hedefinizi doğrudan node index.js ile ç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 olduğunu düşündüğünüz herhangi bir komutu kullanabilirsiniz. node index.js örnek olarak verilmiştir.