Barındırılan Hedefler eğitimleri

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

Aşağıdaki eğiticilerde, 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ğiticilerde aşağıdaki görevler ele alınır:

  • Edge kullanıcı arayüzünü kullanarak bir Node.js uygulamasını Barındırılan Hedeflere dağıtma.
  • Bir Node.js uygulamasını yerel geliştirme makinenizden Barındırılan Hedeflere dağıtma.
  • Geleneksel Edge Node.js hedefi uygulamasına sahip mevcut bir proxy'yi Barındırılan Hedeflere taşıma.

Edge kullanıcı arayüzünü kullanarak bir Node.js uygulamasını Barındırılan Hedeflere dağıtma

Bu eğiticide, Edge kullanıcı arayüzünü kullanarak Barındırılan Hedeflere basit bir Node.js uygulamasını dağıtacaksınız. Eğiticiyi tamamladığınızda, Barındırılan Hedefler proxy'sinin temel yapısı ve içeriğini; dağıtıma erişme ve günlük dosyaları oluşturma işlemlerini öğreneceksiniz.

Oturum aç

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

Yeni proxy oluştur

  1. Yan gezinme menüsünde Geliştirme > API Proxy'leri seçeneğini belirleyin.
  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çildiğinden emin olun.
  7. İleri'yi tıklayın.
  8. Güvenlik sayfasında, Yetkilendirme için Geçiş (yok) seçeneğini belirleyin.
  9. İleri'yi tıklayın.
  10. İleri'yi tıklayın.
  11. Derleme sayfasında test ortamının seçildiğinden emin olun. Proxy Türünün Barındırılan Hedefler olduğuna dikkat edin.
  12. Derleme 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 hello-Barındırılan-hedefler proxy'sini görüntüle'yi tıklayın.
  14. API proxy'sini çağırın. Bunu yapmanın en kolay yolu İzleme sekmesine gitmek, bir Trace oturumu başlatmak ve Gönder'i tıklamaktır. Aşağıdaki yanıtla birlikte bir 200 durumu alırsınız:
    {"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}

Proxy'yi inceleyin

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

  4. Gezgin'de, Komut Dosyaları bölümünün altındaki içeriğe dikkat edin. Node.js uygulama dosyaları, barındırılan etiketi altında listelenir.

  5. Edge kullanıcı arayüzünde, Komut Dosyaları'nda barındırılan bölümünde listelenen dosyaları inceleyin:
    • app.yaml dosyası, yapılandırma bilgilerini içerir. Örneğin, çalışma zamanında Node.js uygulamasının kullanımına sunulacak ortam değişkenlerini ekleyebilirsiniz. Bu örnek için bu dosyayı değiştirmenize gerek yoktur.
    • index.js dosyası, Node.js uygulamasının ana dosyasıdır.
    • Uygulamanızda modül bağımlılıkları varsa bunların package.json dosyasında listelenmesi gerekir.

Günlük dosyalarını göster

Uygulama günlük dosyaları, derleme aşamasında ve ayrıca çalışma zamanında ortaya çıkan sorunların giderilmesi 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 Günlük Derleme seçeneğini 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 bkz. Günlük dosyalarına erişme.

Özet

  • Barındırılan Hedefler ortamına basit bir Node.js uygulamasını dağıttınız ve bunu Edge kullanıcı arayüzünde test ettiniz.
  • Barındırılan Hedefler proxy'sinin, Hedef Uç Noktada <HostedTarget/> adlı özel bir boş etiket gerektirdiğini öğrendiniz.
  • Edge'in sizin için modül bağımlılıklarını 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 öğrendiniz.

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

Bu bölümde, Apigeetool aracılığıyla bağımsız bir Node.js uygulamasının yerel sisteminizden Barındırılan Hedefler'e nasıl dağıtılacağı açıklanmaktadır. apigeetool yardımcı programı, Node.js uygulamasını yeni bir Barındırılan Hedefler proxy'sinde gruplandırır ve Edge'e dağıtır.

Apigeetool'u yükleyin

Geliştiricilerin Edge'e proxy kodu dağıtması için Apigeetool aracısını kullanmak önerilen yöntemdir. Apigeetool aracını yüklemek için aşağıdaki NPM komutunu çalıştırın:

npm install -g apigeetool

Node.js uygulamasını oluşturma

İşlerinizi kolaylaştırmak için size basit bir Node.js uygulamasının kodu sağlanmıştır.

  1. Node.js uygulaması için bir dizin oluşturun. Dizini node-host-express olarak çağırın.
  2. cd öğesini yeni dizine ekleyin.
  3. index.js adlı bir dosya oluşturun ve bu kodu içine 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 içine kopyalayın. Ekspres modülün bağımlılık olarak listelendiğine dikkat edin.
  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 aşağıdaki kodu bu 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 aşağıdaki gibi göründüğünden emin olun:
    ls
    app.yaml index.js package.json
    

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

Node.js uygulamanız, standart bir Node.js uygulamasıyla aynı yapıya sahip olmalıdır. Ancak apigeetool ile Edge'e dağıtımdan önce aşağıdaki gereksinimleri uyguladığı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ına bakın.
  • package.json dosyası gereklidir. Uygulamanızın gerektirdiği tüm bağımlılıklar listelenmelidir.
  • node_modules klasörü değildir zorunlu. 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. Yalnızca npm aracılığıyla kullanılamayan özel modülleriniz varsa açık bir şekilde node_modules sağlamanız gerekir.

Proxy'yi dağıtma

  1. Bir terminalde, cd komutunu Node.js uygulamanızın kök dizinine yapıştırın.
  2. DistributionBarındırılantarget komutuyla Apigeetool komutunu çalıştırı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. Adda kullanmanıza izin verilen karakterler şu şekilde 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 aracını kullanma hakkında daha fazla bilgi için https://github.com/apigee/apigeetool-node sayfasını inceleyin.

Proxy'yi test etme

Proxy'yi cURL komutuyla, Postman gibi bir REST istemcisiyle veya İzleme aracındaki Edge kullanıcı arayüzünde test edebilirsiniz. Burada, örnek bir cURL komutu görebilirsiniz.

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ı dağıtma ve derlemeyle ilgili çıkışları gösterir. Ayrıca Günlük dosyaları konusuna 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 çıktıları gösterir. Çalışma zamanı günlükleri ortama dahil edilir ve dağıtılmış olan proxy düzeltmesinin günlüklerini döndürür. Ayrıca, Günlük dosyaları bölümüne de bakı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ımdan sonra proxy'nizi Edge kullanıcı arayüzünün API Proxy'leri bölümünde görüntüleyebilir ve düzenleyebilirsiniz.

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

Bu bölümde, geleneksel Node.js hedefi uygulamasını kullanan mevcut bir Edge API proxy'sinin, Barındırılan Hedeflere manuel olarak nasıl 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ında API proxy yapısı, politikalar, akışlar ve diğer yapılandırma öğeleri korunur. Taşımayı aşağıda açıklandığı gibi dört adımda gerçekleştirebilir ve ardından taşınan proxy'yi Apigeetool aracılığıyla 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'de dağıtıldıysa devam etmeden önce indirmeniz gerekir. Geleneksel yapılandırmada ve Node.js kodunu içeren 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 dizinin altına yerleştirmeniz gerekir. resources/host (kaynaklar/barındırma) 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 adında bir manifest dosyası oluşturun ve bu dosyayı apiproxy/resources/hosted dizinine yerleştirin.

Aşağıda örnek bir app.yaml dosyası gösterilmektedir. Ç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 ayrıntı 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 olan bir Node.js proje yapısı gösterilmektedir:

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

3. Adım: Bundle.json dosyanızın 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 hedef belirlemeniz gerekir. Uygulamanız için gerekli olan tüm 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 olmasını gerektirir. Barındırılan Hedefler için <HostedTarget/> adlı boş bir etiket eklemeniz gerekir. Dosyada ScriptTarget etiketi varsa bu etiketi kaldırmanız yeterlidir. Ö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. cd'i proxy'nizin kök dizinine ekleyin: /apiproxy
  2. Proxy'yi dağıtmak için şu 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 bkz. https://github.com/apigee/apigeetool-node/blob/master/README.md.

Proxy'yi test etme

Proxy'yi cURL komutuyla, Postman gibi bir REST istemcisiyle veya İzleme aracındaki Edge kullanıcı arayüzünde test edebilirsiniz. Burada, örnek bir cURL komutu görebilirsiniz:

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