Barındırılan Hedefler referansı

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

Ortam değişkeni sınırları

Barındırılan Hedefler, Barındırılan Hedefler çalışma zamanı ortamında ayarlayabileceğiniz ortam değişkenlerinin boyutunu ve sayısını sınırlar.

  • 1000: Tek bir ortam değişkeninin maksimum uzunluğu.
  • 100: Ayarlayabileceğiniz maksimum ortam değişkeni sayısı.

Ortam değişkenlerini ayarlama hakkında bilgi edinmek için Manifest dosyası bölümüne bakın.

Uygulama çalışma zamanında ayarlanan ortam değişkenleri

Bir Barındırılan Hedefler uygulamasını dağıttığınızda, aşağıdaki ortam değişkenleri ayarlanır ve uygulamanız tarafından çalışma zamanında kullanılabilir:

  • APIGEE_ENVIRONMENT: Barındırılan hedef proxy'nin dağıtıldığı ortam.
  • APIGEE_ORGANIZATION: Barındırılan hedef proxy'nin dağıtıldığı kuruluş.
  • PORT: Barındırılan hedef uygulamanın dinleme yapması gereken bağlantı noktası.

Sistem kaynağı tahsisi

Her barındırılan hedefler örneği aşağıdaki kaynakları alır:

  • 256 MB bellek
  • 1,2 GHz CPU

Ölçeklendirme

Bu bölümde, sahip olduğunuz Edge hesabının türüne bağlı olarak Barındırılan Hedefler uygulamalarının nasıl ölçeklendirildiği açıklanmaktadır.
  • Apigee Edge'in Deneme sürümü, proxy başına bir Barındırılan Hedefler örneğiyle sınırlıdır.
  • Ücretli Apigee Edge hesapları; istek hızı, yanıt gecikmeleri ve proxy başına diğer uygulama metriklerine dayalı olarak otomatik ölçeklendirme yapar.
  • Apigee Edge'in hem ücretli hem de deneme sürümlerine dağıtılan barındırılan hedefler uygulamaları, etkin olmayan dönemlerde sıfıra ölçeklenir. Bu durumda, kısa bir süreliğine yanıt sürelerinin daha yavaş olduğunu fark edebilirsiniz. Ayrıca şu makaleyi inceleyin: Bilinen sorunlar

Manifest dosyası

Edge, barındırılan uygulamayı derlemek ve dağıtmak için çalışma zamanı bilgilerini toplamak amacıyla resources/hosted dizininde app.yaml adlı bir manifest dosyası arar. Bu dosya, Barındırılan Hedefler uygulamasını oluşturmak ve dağıtmak için gereken bilgileri içerir.

Manfiest dosyası söz dizimi

runtime: node
runtimeVersion: version_number
command: command_name
args: argument_array
env:
  - name: variable_name
    value: literal_value
  - name: variable_name
    valueRef:
      name: kvm_name
      key: kvm_value

Manifest dosyası öğeleri

app.yaml manifest dosyaları aşağıdaki öğeleri içerir:

  • runtime (çalışma zamanı) - (Zorunlu) Dağıttığınız uygulamanın türünü belirtir. node belirtmelisiniz.
  • runtimeVersion: (İsteğe bağlı) Uygulamanızın kullandığı çalışma zamanının sürümü. Varsayılan: Node.js LTS (v10.x). Diğer seçenekler için Düğüm için resmi Docker deposu'na bakın.
  • command - (İsteğe bağlı) Uygulamanızı başlatmak için kullanılan varsayılan komut dışında çalıştırılacak bir komut belirtebilmenizi sağlar. Varsayılan: Node.js=npm
  • bağımsız değişken: (İsteğe bağlı) Uygulamaya iletilecek komut satırı bağımsız değişkenleri dizisi (standart YAML dizisi söz dizimiyle belirtilir). Bunlar genellikle varsayılan komuta eklenir. Varsayılan değer start'tır. Örneğin, varsayılan olarak Node.js uygulamasına npm start komutu aktarılır.
  • env: (İsteğe bağlı) Barındırılan Hedefler çalışma ortamına ayarlanacak bir dizi ortam değişkeni (ad/değer çiftleri). Bu değişkenler, dağıtılan Barındırılan Hedefler uygulamanızda kullanılabilir.
    • ad: Değişken adı.
    • value | valueRef - İki seçeneğiniz vardır. Kelimeli değer ayarlayabilir veya Anahtar Değer Haritası'nda saklanan bir değere referans verebilirsiniz. Anahtar/Değer Eşlemesi, Edge ortamınızda zaten bulunmalıdır. Anahtar/değer eşlemeleriyle çalışma başlıklı makaleyi inceleyin
      • value kullanırsanız bir name değişkeni ve bir değişmez değer (value) belirtmeniz gerekir. Örneğin:
        runtime: node
        env:
         - name: NODE_ENV
           value: production
      • valueRef kullanırsanız daha önce Edge'de oluşturduğunuz Anahtar/Değer Eşlemesi (KVM) adını ve bir anahtar sağlamanız gerekir. Örneğin:
        runtime: node
        env:
          - name: DB_ENV
            value: production
          - name: DB_PASSWORD
            valueRef:
              name: hosted-kvm
              key: db-password

    Örnek manifest dosyaları

    Bu bölümde, Node.js uygulamalarına ait örnek manifest dosyaları yer almaktadır. Barındırılan hedefler uygulamasını dağıtmak için manifest dosyası gereklidir. Bu dosya, apiproxy/resources/hosted dizininde bulunmalı ve dosya adı app.yaml olmalıdır.

    Aşağıda, Node.js uygulamaları için örnek app.yaml (manifest) dosyaları verilmiştir.

    Harflerden oluşan bir ortam değişkenini belirten örnek:

     runtime: node
     env:
       - name: NODE_ENV
         value: production

    Başlat komutu, komut satırı bağımsız değişkenleri ve ortam değişkeni içeren örnek.

     runtime: node
     command: ./node_modules/pm2/bin/pm2
     env:
       - name: NODE_ENV
         value: production
     args:
       - app.js


    Anahtar/Değer Haritası (KVM) referansı belirten örnek:

    KVM erişimi hakkında daha fazla bilgi için Manifest dosyası bölümüne bakın.

    runtime: node
    env:
      - name: DB_ENV
        value: production
      - name: DB_PASSWORD
        valueRef:
          name: hosted-kvm
          key: db-password

    GitHub'daki Sample Hosted Target uygulamaları

    Apigee, GitHub'da Node.js'de yazılan Barındırılan Hedefler uygulamalarıyla örnek proxy'ler sağlar. Bu repoyu klonlayabilir ve proxy'lerden herhangi birini dağıtmak için README talimatlarını uygulayabilirsiniz.

    Ön koşullar

    Sana Özel örneklerini dağıtmak için sisteminizde iki aracın yüklü olması gerekir:

    • apigeetool: Edge proxy'lerini dağıtmak için kullanılan bir komut satırı aracıdır.
    • get_token - Apigeetool tarafından zorunlu kılınan bir yetkilendirme jetonunu elde etmek için kullanılan komut satırı aracı.

    Örnekleri yerel olarak test etmek istiyorsanız Node.js'nin yüklü olması gerekir.

    Örnek deposunu alma

    1. Tarayıcıda https://github.com/apigee/api-platform-samples adresine gidin.
    2. Klonla veya indir'i tıklayın ve tercih ettiğiniz yöntemi kullanarak depoyu yerel sisteminize alın.
    3. cd'yi <your install dir>/api-platform-samples/doc-samples/hosted-targets adresine gönderin
    4. Depo indirildikten sonra örnek dizinlerden herhangi birine cd gönderebilir ve Edge'e örnek proxy dağıtmak için BENİOKU talimatlarını uygulayabilirsiniz. Dağıtım komutu aşağıda gösterilmiştir. Bunun için, belirtilen parametreleri Apigee hesabınızla ilgili parametrelerle değiştirmeniz yeterlidir:
    5. get_token && apigeetool deployproxy \
        -o YOUR_ORGANIZATION \
        -e YOUR_ENVIRONMENT \
        --json \
        --token "$(< ~/.sso-cli/valid_token.dat)"\
        --api NAME_OF_THE_PROXY \
        --directory .

    Örnek: Örnek uygulamayı çalıştırma

    Örnek deposunu klonlama

    cd ~/myhome
    git clone https://github.com/apigee/api-platform-samples.git
    cd ~/myhome/api-platform-samples/doc-samples/hosted-targets
    cd node-hosted-hello

    Uygulamayı yerel olarak test etme

    Bu yerel testi yapmak için Node.js yüklü olmalıdır.

     PORT=8081 node apiproxy/resources/hosted/index.js
     curl http://localhost:8081
    

    Örnek çıkış:

    {"date":"2018-03-12T21:45:22.161Z","msg":"Hello, World!"}

    Proxy'yi dağıtma

     get_token && apigeetool deployproxy \
       -o myorg \
       -e test \
       --json \
       --token "$(< ~/.sso-cli/valid_token.dat)"\
       --api node-hosted-hello \
       --directory .

    Dağıtımı test etme

    Dağıtım işleminin tamamlanması birkaç dakika sürebilir. Dağıtım hatası alırsanız dağıtım komutunu tekrar yürütün.

    curl http://myorg-test.apigee.net/node-hosted-hello

    Örnek çıkış:

    {"date":"2018-03-23T18:59:18.668Z","msg":"Hello, World!"

    Bilinen sorunlar

    • Ağ Gecikmeleri: Node.js uygulaması artık MP'nin JVM'sinde çalışmadığından, MP ile dağıtım arasında bir ağ geçişi bulunmaktadır. Elbette bunun bir maliyeti vardır ancak ilk karşılaştırmalara göre makul bir süre içinde iyi performans göstermiş.
    • Yavaş API Yanıtları: Uygulamalarınızı çalıştıran altyapı ihtiyaca göre otomatik olarak ölçeklendirilir. Bu, uygulamanızın gerçekte sıfır örneğe indirilebileceği ve böyle bir durumda, altyapı, istekleri işlemek için örnekleri döndürdüğünden bir sonraki API isteğinin normal API isteklerinden biraz daha uzun süreceği anlamına gelir.
    • Dağıtım hatası: Barındırılan Hedefler proxy'sini dağıtırken dağıtım hatası alırsanız proxy'yi yeniden dağıtmayı deneyin. Bazı durumlarda dağıtım zaman aşımına uğrayabilir ve yeniden dağıtırsanız sorun kendiliğinden çözülür.