Barındırılan Hedefler referansı

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

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

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

  • 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ı.

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 için 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 uygulamasının dinlemesi gereken bağlantı noktası.

Sistem kaynağı ayırma

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, Barındırılan Hedefler uygulamalarının, Edge hesabının türüne bağlı olarak nasıl ölçeklendirildiği açıklanmaktadır yükseltmeye çalışıyor.
  • 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ına, yanıt gecikmelerine, ve diğer uygulama metriklerini görebilirsiniz.
  • Apigee Edge'in hem ücretli hem de deneme sürümlerine dağıtılan Barındırılan Hedefler uygulamaları, işlem yapılmadığında sıfıra ölçeklenir. Bu durumda, kısa bir süreliğine yanıt sürelerinin daha yavaş olduğunu fark edebilirsiniz. Şu kaynakları da inceleyin Bilinen sorunlar

Manifest dosyası

Barındırılan uygulamayı derlemek ve dağıtmak için çalışma zamanı bilgilerini toplamak amacıyla Edge resources/hosted dizininde app.yaml adlı bir manifest dosyası oluşturun. 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ı) Çalışma zamanının, bazı işaretler bulabilirsiniz. Varsayılan: Node.js LTS (v10.x). Düğüm için resmi Docker deposu'na göz atın diğer seçenekler için.
  • command - (İsteğe bağlı) Şu komuttan farklı çalıştırılacak bir komut belirtmenizi sağlar: uygulamanızı başlatmak için kullanılan varsayılan komuttur. Varsayılan: Node.js=npm
  • bağımsız değişken - (İsteğe bağlı) uygulaması (standart YAML dizisi söz diziminde 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
  • env - (İsteğe bağlı) Ortam değişkenleri dizisi (ad/değer çiftleri) Barındırılan Hedefler çalışma zamanı ortamında ayarlanır. Bu değişkenler, Barındırılan Hedefler uygulaması.
    • ad: Değişken adı.
    • değer | valueRef - İki seçeneğiniz vardır. Değişmez değer ayarlayabilirsiniz veya Anahtar/Değer Eşleme'de depolanan bir değere başvurun. Anahtar/Değer Eşlemesi, Edge ortamınızda zaten mevcut. Bkz. Anahtar/Değer Eşlemeleriyle çalışma
      • value kullanıyorsanız name değişkenini ve bir değişmez değer value belirtin. Örneğin:
        runtime: node
        env:
         - name: NODE_ENV
           value: production
      • valueRef kullanırsanız daha önce Edge'de oluşturduğunuz bir 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 için örnek manifest dosyaları yer alır izin verir. Barındırılan hedefler uygulamasını dağıtmak için manifest dosyası gereklidir ve dosyanın konumu olmalıdır. apiproxy/resources/hosted dizininde yer almalı ve dosya adı app.yaml olmalıdır.

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

    Değişmez 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 Eşleme (KVM) referansını belirten örnek:

    KVM erişimi hakkında daha fazla bilgi için Manifest dosyasını inceleyin.

    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 yazılmış Barındırılan Hedefler uygulamalarıyla örnek proxy'ler sağlar. Node.js'de görünür. Bu depoyu klonlayıp README talimatlarını uygulayarak proxy'leri dağıtabilirsiniz.

    Ön koşullar

    Örnekleri dağıtmak için sisteminizde iki araç yüklü olmalıdır:

    • Apigeetool -- Bir komut satırı aracını kullanın.
    • 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 depo edinme

    1. Tarayıcıda https://github.com/apigee/api-platform-samples adresine gidin.
    2. Klonla veya indir'i tıklayın ve aşağıdakileri kullanarak depoyu yerel sisteminize çekin: tercih ettiğiniz yöntemi seçin.
    3. cd'yi <your install dir>/api-platform-samples/doc-samples/hosted-targets adresine gönderin
    4. Depo indirildikten sonra örnek dizinlerden istediğiniz cd'ye gidip Edge'e örnek proxy dağıtmak için BENİOKU talimatları. Dağıtma komutu aşağıda gösterilmektedir. Simply belirtilen parametreleri Apigee hesabınız için olan parametrelerle değiştirin:
    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 uygulama yürütme

    Ö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 yapabilmek 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ın tamamlanması birkaç dakika sürebilir. Dağıtım hatası alırsanız komutu tekrarlamanız gerekir.

    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 çalışmadığından artık MP'deki MP ve dağıtım arasında bir ağ geçişi bulunmaktadır. Tabii ki bunun bir maliyeti vardır ancak ilk karşılaştırmalar bunun makul bir tutar dahilinde olduğunu gösteriyor
    • Yavaş API Yanıtları: Uygulamalarınızı çalıştıran altyapı ihtiyaca göre otomatik olarak ölçeklendirilir. Bu, uygulamanızın gerçekte 2003'e kadar sıfır örnektir. Bu durumda bir sonraki API isteğinin tamamlanması altyapı, örnek işlemeye hızlı bir şekilde odaklanıyor. Bunun nedeni, istek.
    • Dağıtım hatası - Bir Barındırılan Hedefler proxy'si varsa proxy'yi yeniden dağıtmayı deneyin. Bazı durumlarda dağıtım zaman aşımına uğrayabilir ve yeniden dağıtım yaparsanız sorun kendi kendine çözülür.