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 ortamı olan Barındırılan Hedefler kullanılarak Node.js uygulamalarının Edge'e nasıl dağıtılacağı açıklanmaktadır.
Eğiticiler aşağıdaki görevlerde size yol gösterir:
- Edge kullanıcı arayüzünü kullanarak bir 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ına sahip mevcut bir proxy'yi Barındırılan Hedefler'e taşıma.
Edge kullanıcı arayüzünü kullanarak bir Node.js uygulamasını barındırılan hedeflere dağıtma
Bu eğitimde, 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, dağıtıma ve derleme günlük dosyalarına nasıl erişeceğinizi anlayacaksınız.
Oturum aç
- apigee.com/edge adresine gidin.
- Oturum açmak için Apigee giriş kimlik bilgilerinizi girin.
Yeni bir proxy oluşturma
- Yan gezinme menüsünde Geliştir > API Proxy'leri seçeneğini belirleyin.
- + Proxy'yi tıklayın.
- Proxy Oluştur sayfasında, Barındırılan Hedef'i seçin.
- İleri'yi tıklayın.
- Proxy Adı alanına
hello-hosted-targets
yazın. - "Hello World" Sample'ın seçili olduğundan emin olun.
- İleri'yi tıklayın.
- Security (Güvenlik) sayfasında, Yetkilendirme için Pass via (none) (Geçiş) seçeneğini belirleyin.
- İleri'yi tıklayın.
- İleri'yi tıklayın.
- 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.
- Build and Deploy (Derleme ve Dağıt) seçeneğini tıklayın. Proxy dağıtımının tamamlanması birkaç dakika sürebilir.
- Proxy başarıyla dağıtıldıktan sonra sayfanın en altında hello-hosted-targets proxy'yi görüntüle seçeneğini tıklayın.
- API proxy'sini çağırın. Bunu yapmanın en kolay yolu Trace sekmesine gidip bir Trace oturumu başlatmak ve Gönder'i tıklamaktır. Aşağıdaki yanıtı içeren 200 durumu alırsınız:
{"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}
Proxy'yi inceleyin
- Edge kullanıcı arayüzünde Develop (Geliştirme) sekmesini tıklayın.
- Navigator'da Hedef Uç Noktaları altında varsayılan'ı seçin.
- Kod düzenleyicide,
<TargetEndpoint>
öğesinin altında boş bir<HostedTarget/>
alt öğesi olduğuna dikkat edin. Bu boş etiket zorunludur. Edge'e, proxy hedefinin Barındırılan Hedefler ortamına dağıtılan bir uygulama olduğunu bildirir. - Gezinme Aracı'nda Komut Dosyaları bölümündeki içeriklere dikkat edin. Node.js uygulama dosyaları, barındırılan etiketi altında listelenir.
- Edge kullanıcı arayüzünde, Komut Dosyaları'ndaki Barındırılan dosyaların 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ılabilecek 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 ortaya çıkan sorunların hata ayıklamasında yararlı olabilir.
- Edge kullanıcı arayüzünde Geliştir sekmesini tıklayın.
- Derleme günlüğünü görmek için Derleme Günlükleri'ni tıklayın.
- Dağıtım günlüğünü görmek için Çalışma Zamanı Günlükleri'ni tıklayın.
Günlük dosyalarına erişme başlıklı makaleyi de inceleyin.
Özet
- Barındırılan Hedefler ortamına basit bir Node.js uygulamasını dağıttınız ve bu uygulamayı Edge kullanıcı arayüzünde test ettiniz.
- Barındırılan Hedefler proxy'sinin, Hedef Uç Noktasında
<HostedTarget/>
adlı özel bir boş etiket gerektirdiğini öğrendiniz. - 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 öğrendiniz.
Node.js'yi sisteminizden Edge'e dağıtma
Bu bölümde, apigeetool aracını kullanarak yerel sisteminizden Barındırılan Hedeflere bağımsız bir Node.js uygulamasını nasıl dağıtacağınız açıklanmaktadır. apigeetool
yardımcı programı, Node.js uygulamasını yeni bir Barındırılan Hedefler proxy'sinde paketler ve Edge'e dağıtır.
apigeetool'u yükleme
Geliştiricilerin Edge'e proxy kodunu dağıtmaları için apigeetool uygulamasını kullanmanız ö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
İşinizi kolaylaştırmak için basit bir Node.js uygulamasının kodu sizin için sağlanmıştır.
- Node.js uygulaması için bir dizin oluşturun. Dizini node-hosted-express olarak adlandırın.
- Yeni dizine cd komutunu kullanarak gidin.
- index.js adlı bir dosya oluşturun ve bu kodu içine kopyalayın.
- package.json adlı bir dosya oluşturun ve bu kodu içine kopyalayın. Ekspres modülün bir bağımlılık olarak listelendiğine dikkat edin.
- app.yaml adında bir dosya oluşturun ve bu kodu dosyaya kopyalayın:
- Dizininiz şu şekilde görünmelidir:
ls app.yaml index.js package.json
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) })
{ "name": "hello-world", "version": "1.0.0", "main": "index.js", "scripts": { "start": "node index.js --use_strict" }, "author": "", "license": "", "dependencies": { "express": "^4.16.0" } }
runtime: node runtimeVersion: 8 application: my-express-app env: - name: NODE_ENV value: production - name: LOG_LEVEL value: 3
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 Edge'e apigeetool
ile dağıtmadan önce aşağıdaki şartlara uyduğunuzdan 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 ihtiyaç duyduğu tüm bağımlılıklarını listelemelidir.
- node_modules klasörü gerekli değildir. Edge, Node.js uygulaması dağıtıldığında sizin için npm install komutunu çalıştırır. Bağımlılıkları package.json dosyasından alır. node_modules parametresini açıkça belirtmeniz gereken tek durum, npm üzerinden kullanılamayan özel modülleriniz varsa
Proxy'yi dağıtma
- Bir terminal penceresine cd komutunu Node.js uygulamanızın kök dizinine ekleyin.
- apigeetool'u deployhostedtarget komutuyla çalıştırın:
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 kullanabileceğiniz karakterler şu şekilde kısıtlanmıştı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 bkz. https://github.com/apigee/apigeetool-node.
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. 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ımı ve oluşturulmasıyla ilgili çıkışlarınızı gösterir. Ayrıca Günlük dosyaları başlıklı makaleyi de inceleyin.
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 göre belirlenir ve şu anda dağıtılan proxy düzeltmesi için günlükleri döndürür. Günlük dosyaları başlıklı makaleyi de inceleyin.
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 Edge kullanıcı arayüzünün API Proxy'leri bölümünde proxy'nizi 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 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'yi nasıl dağıtacağınız da açıklanmaktadır.
Taşıma adımları, API proxy yapısını, politikaları, akışları ve diğer yapılandırma öğelerini korur. Taşıma işlemini aşağıda açıklandığı gibi dört adımda gerçekleştirebilir ve 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'sinin yerel dosya sisteminizde olması gerekir. Proxy, Edge'de dağıtılmışsa 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/hosted adlı yeni bir dizin oluşturup resources/node
içeriğini bu dizin içine 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 bunu
apiproxy/resources/hosted
dizinine yerleştirin.
Aşağıda, örnek bir app.yaml
dosyası gösterilmektedir. Çalışma zamanının Node.js olduğunu belirtir (zorunlu). 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 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ın bulunduğ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. Bu dosyada, uygulamanız için gerekli tüm bağımlılıkları belirttiğinizden emin olun.
4. Adım: Proxy'nin hedef uç noktasını değiştirin
Geleneksel Node.js proxy'si, hedef uç nokta dosyasında <ScriptTarget>
adlı bir etiketin (genellikle /apiproxy/targets/default.xml
) bulunmasını gerektirir. Barındırılan Hedefler için <HostedTarget/> adlı boş bir etiket eklemeniz gerekir. Dosyada ScriptTarget
etiketi varsa bunu 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.
- cd'yi proxy'nizin kök dizinine kopyalayın: /apiproxy
- Proxy'yi dağıtmak için şu komutu kullanın:
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:
https://github.com/apigee/apigeetool-node/blob/master/README.md adresine bakın.
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. Aşağıda örnek bir cURL komutu verilmiştir:
curl http://myorg-test.apigee.net/hello-world Hello,World!