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ç
- apigee.com/edge sayfasına gidin.
- Oturum açmak için Apigee giriş kimlik bilgilerinizi girin.
Yeni proxy oluştur
- Yan gezinme menüsünde Geliştirme > 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
girin. - "Hello World" Sample'ın (Merhaba Dünya Örneği) seçildiğinden emin olun.
- İleri'yi tıklayın.
- Güvenlik sayfasında, Yetkilendirme için Geçiş (yok) 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.
- Derleme ve Dağıt'ı 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 alt kısmındaki hello-Barındırılan-hedefler proxy'sini görüntüle'yi tıklayın.
- 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
- Edge kullanıcı arayüzünde Geliştir sekmesini tıklayın.
- Gezgin'de, Hedef Uç Noktalar bölümünde varsayılan'ı seçin.
- 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. - 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.
- 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.
- Edge kullanıcı arayüzünde Geliştir sekmesini tıklayın.
- Derleme günlüğünü görmek için Günlük Derleme seçeneğini tıklayın.
- 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.
- Node.js uygulaması için bir dizin oluşturun. Dizini node-host-express olarak çağırın.
- cd öğesini yeni dizine ekleyin.
- 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 bağımlılık olarak listelendiğine dikkat edin.
- app.yaml adlı bir dosya oluşturun ve aşağıdaki kodu bu dosyaya kopyalayın:
- Dizininizin aşağıdaki gibi göründüğünden emin olun:
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ı 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
- Bir terminalde, cd komutunu Node.js uygulamanızın kök dizinine yapıştırın.
- DistributionBarındırılantarget komutuyla Apigeetool komutunu ç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 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.
- cd'i proxy'nizin kök dizinine ekleyin: /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 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!