Barındırılan Hedefler eğitimleri

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

Aşağıdaki eğitimlerde, Apigee tarafından barındırılan yerel bir Node.js çalışma zamanı ortamı olan Barındırılan Hedefler'i kullanarak Node.js uygulamalarının Edge'e nasıl dağıtılacağı açıklanmaktadır.

Eğitimlerde aşağıdaki görevler adım adım açıklanmaktadır:

  • Edge kullanıcı arayüzünü kullanarak Node.js uygulamasını barındırılan hedeflere dağıtma.
  • Yerel geliştirme makinenizden barındırılan hedeflere Node.js uygulaması dağıtma.
  • Geleneksel Edge Node.js hedef uygulaması olan mevcut bir proxy'yi barındırılan hedeflere taşıma.

Edge kullanıcı arayüzünü kullanarak Node.js uygulamasını barındırılan hedeflere dağıtma

Bu eğiticide, Edge kullanıcı arayüzünü kullanarak basit bir Node.js uygulamasını barındırılan hedeflere dağıtacaksınız. Eğitimi tamamladığınızda, barındırılan hedefler proxy'sinin temel yapısını ve içeriğini, ayrıca dağıtım ve derleme günlük dosyalarına nasıl erişeceğinizi öğreneceksiniz.

Oturum aç

  1. apigee.com/edge adresine gidin.
  2. Oturum açmak için Apigee giriş kimlik bilgilerinizi girin.

Yeni bir proxy oluşturma

  1. Yan gezinme menüsünde Geliştir > API Proxies'i (API proxy'leri) seçin.
  2. + Proxy'yi tıklayın.
  3. Proxy Oluştur sayfasında Barındırılan Hedef'i seçin.
  4. İleri'yi tıklayın.
  5. Proxy Adı alanına hello-hosted-targets girin.
  6. "Hello World" Sample'ın (Merhaba Dünya Örneği) seçili olduğundan emin olun.
  7. İleri'yi tıklayın.
  8. Güvenlik sayfasında, Yetkilendirme için Geçiş (yok)'u seçin.
  9. İleri'yi tıklayın.
  10. İleri'yi tıklayın.
  11. Oluşturma sayfasında test ortamının seçili olduğundan emin olun. Proxy Türü'nün Barındırılan Hedefler olduğunu unutmayın.
  12. Build and Deploy'u (Derle ve Dağıt) tıklayın. Proxy dağıtımının tamamlanması birkaç dakika sürebilir.
  13. Proxy başarıyla dağıtıldıktan sonra sayfanın alt kısmındaki View hello-hosted-targets proxy'yi (Hello tarafından barındırılan hedeflerin proxy'sini görüntüle) tıklayın.
  14. API proxy'sini çağırın. Bu işlemi yapmanın en kolay yolu İzleme sekmesine gidip bir İzleme oturumu başlatmak ve Gönder'i tıklamaktır. Aşağıdaki yanıtla birlikte 200 durumunu almanız gerekir:
    {"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}

Proxy'yi inceleme

  1. Edge kullanıcı arayüzünde Geliştir sekmesini tıklayın.
  2. Gezgin'de, Hedef Uç Noktalar bölümünde default'u seçin.
  3. Kod düzenleyicide, <TargetEndpoint> öğesinin altında boş bir <HostedTarget/> alt öğesi olduğunu fark edin. Bu boş etiket zorunludur. Bu, Edge'e proxy'nin hedefinin, Hosted Targets ortamına dağıtılan bir uygulama olduğunu bildirir.

  4. Gezgin'de Komut dosyaları bölümündeki içeriklere dikkat edin. Node.js uygulama dosyaları hosted (barındırılan) etiketi altında listelenir.

  5. Edge kullanıcı arayüzünde, Scripts (Komut Dosyaları) bölümündeki hosted (barındırılan) altında listelenen dosyaları inceleyin:
    • app.yaml dosyası yapılandırma bilgilerini içerir. Örneğin, çalışma zamanında Node.js uygulamasında kullanılacak ortam değişkenleri ekleyebilirsiniz. Bu örnek için bu dosyayı değiştirmeniz gerekmez.
    • index.js dosyası, Node.js uygulamasının ana dosyasıdır.
    • Uygulamanızda modül bağımlılıkları varsa bunlar package.json dosyasında listelenmelidir.

Günlük dosyalarını görüntüleme

Uygulama günlük dosyaları, derleme aşamasında ve çalışma zamanında oluşan sorunları ayıklamak için yararlı olabilir.

  1. Edge kullanıcı arayüzünde Geliştir sekmesini tıklayın.
  2. Derleme günlüğünü görmek için Derleme Günlükleri'ni tıklayın.
  3. Dağıtım günlüğünü görmek için Çalışma Zamanı Günlükleri'ni tıklayın.

    Ayrıca Günlük dosyalarına erişme başlıklı makaleyi inceleyin.

Özet

  • Barındırılan hedefler ortamına basit bir Node.js uygulaması dağıttınız ve bu uygulamayı Edge kullanıcı arayüzünde test ettiniz.
  • Barındırılan hedefler proxy'sinin, Target Endpoint'te <HostedTarget/> adlı özel bir boş etiket gerektirdiğini öğrenmiştiniz.
  • Edge'in modül bağımlılıklarını sizin için otomatik olarak yüklediğini ve bağımlılıkların package.json dosyasında listelenmesi gerektiğini öğrendiniz.
  • Ayrıca derleme ve çalışma zamanı günlük dosyalarını nasıl kontrol edeceğinizi de öğrendiniz.

Node.js'yi sisteminizden Edge'e dağıtma

Bu bölümde, apigeetool kullanarak yerel sisteminizden barındırılan hedeflere bağımsız bir Node.js uygulamasının nasıl dağıtılacağı açıklanmaktadır. apigeetool yardımcı programı, Node.js uygulamasını yeni bir Hosted Targets proxy'sine paketler ve Edge'e dağıtır.

apigeetool'u yükleme

Geliştiricilerin proxy kodunu Edge'e dağıtması için apigeetool kullanması önerilir. apigeetool'u yüklemek için aşağıdaki NPM komutunu çalıştırın:

npm install -g apigeetool

Node.js uygulamasını oluşturma

İşleri kolaylaştırmak için basit bir Node.js uygulamasının kodu sizinle paylaşılmıştır.

  1. Node.js uygulaması için bir dizin oluşturun. Dizine node-hosted-express adını verin.
  2. Yeni dizine gitmek için cd komutunu kullanın.
  3. index.js adlı bir dosya oluşturun ve bu kodu dosyaya kopyalayın.
  4. var express = require('express')
    var app = express()
    
    app.get('/', function(req, res) {
        res.json({
            hello: "Hello World!"
        })
    })
    
    app.get('/hello/:name', function(req, res) {
        var name = req.params.name
        res.json({
            hello: "hello " + name
        })
    })
    
    var server = app.listen(process.env.PORT || 9000, function() {
        console.log('Listening on port %d', server.address().port)
    })
  5. package.json adlı bir dosya oluşturun ve bu kodu dosyaya kopyalayın. Express modülünün bağımlılık olarak listelendiğini unutmayın.
  6. {
        "name": "hello-world",
        "version": "1.0.0",
        "main": "index.js",
        "scripts": {
            "start": "node index.js --use_strict"
        },
        "author": "",
        "license": "",
        "dependencies": {
            "express": "^4.16.0"
        }
    }
  7. app.yaml adlı bir dosya oluşturun ve bu kodu dosyaya kopyalayın:
  8. runtime: node
    runtimeVersion: 8
    application: my-express-app
    env:
      - name: NODE_ENV
        value: production
      - name: LOG_LEVEL
        value: 3
  9. Dizininizin şu şekilde göründüğünden emin olun:
    ls
    app.yaml index.js package.json
    

Uygulama kodu için gerekli dizin yapısının incelenmesi

Node.js uygulamanız, standart bir Node.js uygulamasıyla aynı yapıya sahip olmalıdır. Ancak apigeetool ile Edge'e dağıtım yapmadan önce aşağıdaki koşulları karşıladığınızdan emin olun:

  • app.yaml manifest dosyası gereklidir ve uygulamanızın kök dizininde bulunmalıdır. Bu dosya hakkında daha fazla bilgi edinmek için manifest dosyası başlıklı makaleyi inceleyin.
  • package.json dosyası gereklidir. Uygulamanızın gerektirdiği tüm bağımlılıklar listelenmelidir.
  • node_modules klasörü gerekli değildir. Node.js uygulaması dağıtıldığında Edge, sizin için npm install komutunu çalıştırır. Bağımlılıkları package.json dosyasından alır. node_modules'u açıkça sağlamanız gereken tek durum, npm üzerinden kullanılamayan özel modülleriniz olmasıdır.

Proxy'yi dağıtma

  1. Bir terminalde cd komutunu kullanarak Node.js uygulamanızın kök dizinine gidin.
  2. apigeetool'u deployhostedtarget komutuyla yürütün:
  3. apigeetool deployhostedtarget -o org -e env -n proxy-name -b /node-hosted-express -u username

    Burada -n, yeni proxy'ye vermek istediğiniz addır. Kuruluş içinde benzersiz olmalıdır. Ad içinde kullanabileceğiniz karakterler şunlarla sınırlıdır: a-z0-9._\-$%

    Örneğin:

    apigeetool deployhostedtarget -o myorg -e test -n node-hosted-express -b /node-hosted-express -u jdoe@apigee.com

    apigeetool kullanımı hakkında daha fazla bilgi için https://github.com/apigee/apigeetool-node adresine bakın.

Proxy'yi test etme

Proxy'yi cURL komutuyla, Postman gibi bir REST istemcisiyle veya Edge kullanıcı arayüzündeki İzleme aracıyla test edebilirsiniz. Aşağıda bir örnek cURL komutu verilmiştir.

curl http://myorg-test.apigee.net/node-hosted-express
     {"date":1506992197427,"msg":"hello-world"}

Derleme Günlüklerini Alma

Derleme günlükleri, Node.js uygulamasının dağıtılması ve derlenmesiyle ilgili çıkışı gösterir. Ayrıca Günlük dosyaları bölümüne de bakın.

apigeetool getlogs -u username -o org -e env --hosted-build -n proxy-name

Örneğin:

apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-build -n node-hosted-express

Çalışma zamanı günlüklerini alma

Çalışma zamanı günlükleri, çalışan uygulamayla 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ükleri döndürür. Günlük dosyaları başlıklı makaleye de göz atın.

apigeetool getlogs -u username -o org -e env --hosted-runtime -n proxy-name

Örneğin:

apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-runtime -n node-hosted-express

Proxy'yi Edge kullanıcı arayüzünde görüntüleme

Başarılı bir dağıtımın ardından, Edge kullanıcı arayüzünün API Proxies (API Proxyleri) bölümünde proxy'nizi görüntüleyip düzenleyebilirsiniz.

Mevcut bir Node.js proxy'sini barındırılan hedefler proxy'sine taşıma

Bu bölümde, geleneksel Node.js hedef uygulamasını kullanan mevcut bir Edge API proxy'sinin barındırılan hedeflere nasıl manuel olarak taşınacağı açıklanmaktadır. Ayrıca, taşıma adımlarını gerçekleştirdikten sonra proxy'nin nasıl dağıtılacağı da açıklanmaktadır.

Taşıma adımları, API proxy yapısını, politikaları, akışları ve diğer yapılandırma öğelerini korur. Aşağıda belirtildiği gibi taşıma işlemini dört adımda gerçekleştirebilir, ardından taşınan proxy'yi apigeetool ile dağıtabilirsiniz.

1. adım: Proxy dosya yapısını ayarlayın

Dosya yapısını ayarlamak için API proxy'si yerel dosya sisteminizde olmalıdır. Proxy, Edge'e dağıtılmışsa devam etmeden önce indirmeniz gerekir. Geleneksel yapılandırmada, Node.js kodu içeren bir Edge proxy "paketi" bu dosya yapısını izler. Node.js uygulama kodu, resources/node dizinine yerleştirilir:

apiproxy/
    policies/
    proxies/
    targets/
    resources/
      node/
        Your application code


Barındırılan hedefler için Node.js uygulamanızın kök dizinini resources/hosted adlı bir dizine yerleştirmeniz gerekir. resources/hosted adlı yeni bir dizin oluşturup resources/node içeriğini bu dizine taşımanız yeterlidir. Ardından resources/node dizinini silebilirsiniz.

apiproxy/
     policies/
     proxies/
     targets/
     resources/
       hosted/
         Your application code

2. adım: Manifest dosyasını ekleyin

app.yaml adlı bir manifest dosyası oluşturun ve dosyayı apiproxy/resources/hosted dizinine yerleştirin.

Aşağıda bir app.yaml dosyası örneği verilmiştir. Çalışma zamanının Node.js (zorunlu) olduğunu belirtir. Ayrıca, yürütme ortamında bir ortam değişkeni (Node.js uygulaması tarafından erişilebilen bir değişken) oluşturur. Ortam değişkeni isteğe bağlıdır ve burada yalnızca örnek olarak gösterilmektedir. Daha fazla bilgi ve örnek için Manifest dosyası bölümüne bakın.

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


Aşağıdaki örnekte, barındırılan hedefler dağıtımı için proxy'de doğru konumda bulunan bir Node.js proje yapısı gösterilmektedir:

apiproxy/
   resources/
      hosted/
        index.js
        node_modules/
        app.yaml
        package.json

3. adım: package.json dosyanız olduğundan emin olun

Geleneksel Edge Node.js proxy'lerinde package.json isteğe bağlıydı. Ancak barındırılan hedefler için apiproxy/resources/hosted dizininde bir tane sağlamanız gerekir. Uygulamanız için gerekli bağımlılıkları bu dosyada belirttiğinizden emin olun.

4. adım: Proxy'nin hedef uç noktasını değiştirin

Geleneksel bir Node.js proxy'si, hedef uç nokta dosyasında (genellikle /apiproxy/targets/default.xml) <ScriptTarget> adlı bir etiketin bulunmasını gerektirir. Barındırılan hedefler için <HostedTarget/> adlı boş bir etiket eklemeniz gerekir. Dosyada ScriptTarget etiketi varsa bu etiketi kaldırabilirsiniz. Örneğin:

    <?xml version="1.0" encoding="UTF-8"?>
    <TargetEndpoint name="default">
       <Description />
       <FaultRules />
       <PreFlow name="PreFlow">
          <Request />
          <Response />
       </PreFlow>
       <PostFlow name="PostFlow">
          <Request />
          <Response />
       </PostFlow>
       <Flows />
       <HostedTarget />
    </TargetEndpoint>
    

Proxy'yi dağıtma

Artık apigeetool deployproxy komutunu kullanarak proxy'yi dağıtabilirsiniz.

  1. Proxy'nizin kök dizinine (/apiproxy) cd komutunu girin.
  2. Proxy'yi dağıtmak için bu komutu kullanın:
  3. apigeetool deployproxy -u username -o org -e env -n proxy-name -d .

    Örneğin:

    apigeetool deployproxy -u jdoe -o docs -e test -n hello-world -d .

apigeetool kullanımı hakkında daha fazla bilgi için şu adrese bakın: https://github.com/apigee/apigeetool-node/blob/master/README.md.

Proxy'yi test etme

Proxy'yi cURL komutuyla, Postman gibi bir REST istemcisiyle veya Edge kullanıcı arayüzündeki İzleme aracıyla test edebilirsiniz. Aşağıda örnek bir cURL komutu verilmiştir:

curl http://myorg-test.apigee.net/hello-world
Hello,World!