Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Özel eklenti ekleme
Özel etiketler yazarak mikro ağ geçidine yeni özellikler ve yetenekler ekleyebilirsiniz: ekleyebilirsiniz. Özel eklentiler, isteklerle programlı bir şekilde etkileşimde bulunmanıza olanak tanır. ve yanıtlarla mikro ağ geçidinden geçtiğini düşünelim.
Bu bölümde, eklentilerin bir Edge Microgateway'de nasıl paketleneceği ve dağıtılacağı açıklanmaktadır örneğinin çalışmaya hazır olması gerekir.
Bu bölümün geri kalanında, bildiğinizi belirtmelisiniz. eklentilerine sahip olması gerekir. Yoksa Özel eklentiler geliştirme başlıklı makaleye bakın.
Eklentilerinizi paketleyin
Özel eklentileri paketlemek için aşağıdaki adımları uygulayın:
Eklentinizi Basit bir eklenti yazma başlıklı makaledeki talimatlara göre yazın ve test edin.
Eklenti kodunuzu doğru dizin yapısına yerleştirin. Eklenti dizinleri belirli bir yapıya uygun olmalıdır. Aşağıdaki örnekte, Burada
response-uppercase
verequest-headers
, izlemeniz gereken yapıyı temsil eder özel eklenti kodu içeren klasörlerin adları (bu adlar yalnızca örnektir, klasör adlarınız farklı olabilir):plugin | |-- plugins | |- response-uppercase | |- index.js | |- package.json |- request-headers | | - index.js | - package.json
plugin
klasörünecd
.plugin
klasöründeplugins
klasörünün tamamını sıkıştırın:zip -r plugins.zip plugins/
Docker görüntüsü oluşturma
- ZIP dosyasının bulunduğu dizinde,
Dockerfile
adında yeni bir dosya oluşturun. Şu kodu
Dockerfile
içine ekleyin ve dosyayı kaydedin:FROM gcr.io/apigee-microgateway/edgemicro:latest RUN apt-get install unzip COPY plugins.zip /opt/apigee/ RUN chown apigee:apigee /opt/apigee/plugins.zip RUN su - apigee -c "unzip /opt/apigee/plugins.zip -d /opt/apigee" EXPOSE 8000 EXPOSE 8443 ENTRYPOINT ["entrypoint"]
Eklentilerinizle yeni bir Edge Microgateway Docker görüntüsü oluşturun ve Docker kayıt defterinize eklemeniz gerekir. İstediğiniz kayıt defterini kullanabilirsiniz.
docker.io
veyagcr.io
olarak:docker build -t edgemicroplugins .
docker tag edgemicroplugins container-registry/your-project/edgemicroplugins
docker push container-registry/your-project/edgemicroplugins
Örneğin:
docker build -t edgemicroplugins .
docker tag edgemicroplugins gcr.io/my-project/edgemicroplugins
docker push gcr.io/my-project/edgemicroplugins
Edge Microgateway yapılandırmasını güncelleme
Eklentileri Edge Microgateway yapılandırma dosyanıza ekleyin. Daha fazla yapılandırma dosyasını burada bulabilirsiniz:
$HOME/.edgemicro/org-env-config.yaml
Örneğin:
$HOME/.edgemicro/myorg-test-config.yaml
Aşağıdaki örnek yapılandırmada response-uppercase
özel eklentisi eklenmiştir.
oauth
eklentisi varsayılan olarak bu bölümde mevcuttu.
edgemicro:
...
plugins:
sequence:
- oauth
- response-uppercase
Kubernetes kümenizi güncelleme
Son adım, yapılandırma değişikliğini Kubernetes kümenize uygulamaktır. Kubernetes yeni görüntüyü, container kayıt defterine aktardığınız eklenti koduyla alır ve yeni görüntüler için kullanır. oluşturulan kapsüller.
Edge Microgateway'i hizmet olarak dağıttıysanız
Güncellenen Edge Microgateway yapılandırmasını eklemek için edgemicroctl
komutunu kullanın:
Edge Microgateway dağıtımını yeni görüntüyle güncelleyin. Örneğin:
kubectl apply -f <(edgemicroctl -org=your_organization -env=your_environment -key=configuration_key -sec=configuration_secret -conf=config_file_path -img=container-registry/your_project_name/image_name:latest)
Bu örnekte:
your_organization
-edgemicro configure
komutunda belirttiğiniz Apigee kuruluşu.your_environment
-edgemicro configure
komutunda belirttiğiniz ortam.configuration_key
-edgemicro configure
komutundan döndürülen anahtar.configuration_secret
-edgemicro configure
komutundan döndürülen gizli anahtar.config_file_path
:edgemicro configure
komutundan döndürülen Edge Micro yapılandırma dosyasının yolu.container-registry
: Görüntüyü aktardığınız Docker kaydı. Örneğin,gcr.io
veyadocker.io
your_project_name
- Docker görüntüsünü aktardığınız Docker deposunun proje adı.image_name
- Aktardığınız Docker görüntüsünün adı.
Örnek:
kubectl apply -f <(edgemicroctl -org=jdoe -env=test -key=f2d2eaa52b758493d00cec656e574ac947bee1d701c5c5f3295e5eaa39a3b -sec=0c38cda3fac6c59152f15657052ba1728f8003c1a763cf08da2a -conf=/Users/jdoe/.edgemicro/apigeesearch-test-config.yaml -img=gcr.io/jdoe-project/edgemicroplugins:latest)
Eklentiyi test edin. Beklenen davranışı elde edip etmediğinizi görmek için API'yi çağırın. Örneğin, örneğin, "yanıt büyük harfli" eklentisine geçtiğinizde yanıt metni büyük harfle yazılmalıdır:
curl $GATEWAY_IP -H 'x-api-key:3eqeedJRFLlCshwWBiXq4xKFoH1Se3xR'
Çıkış:
HELLO WORLD
Yeni yapılandırmayı manuel olarak ekleme
Manuel yerleştirme, yeni konfigürasyonu eklemeniz gereken basit bir yaklaşımdır. komutunu çalıştırın.
Aşağıdaki komutu yürütün:
kubectl apply -f <(edgemicroctl -org=your_org -env=your_env -key=your_key -sec=your_secret -conf=config_file_path -img=container-registry/your_project_name/image_name:latest -svc=service_deployment_file)
Bu örnekte:
your_org
-edgemicro configure
komutunda belirttiğiniz Apigee kuruluşu.your_env
-edgemicro configure
komutunda belirttiğiniz ortam.your_key
-edgemicro configure
komutundan döndürülen anahtar.your_secret
-edgemicro configure
komutundan döndürülen gizli anahtar.config_file_path
:edgemicro configure
komutundan döndürülen Edge Micro yapılandırma dosyasının yolu.container-registry
: Görüntüyü aktardığınız Docker kaydı. Örneğin,gcr.io
veyadocker.io
your_project_name
- Docker görüntüsünü aktardığınız Docker deposunun proje adı.image_name
- Aktardığınız Docker görüntüsünün adı.service_deployment_file
- İlgili hizmetin dağıtım dosyasının yolu Eklentilerin uygulanacağı. Örnek:samples/helloworld/helloworld.yaml
.
Örneğin:
kubectl apply -f <(edgemicroctl -org=myorg -env=test-key=0e3ecea28a64099410594406b30e54439af5265f8 -sec=e3919250bee37c69cb2e5b41170b488e1c1d -conf=/Users/jdoe/.edgemicro/myorg-test-config.yaml -img=gcr.io/myproject/edgemicroplugins:latest -svc=samples/helloworld/helloworld.yaml)
Eklentiyi test edin. Hizmet API'sini çağırarak görmek için ne yapmanız gerektiğini öğrenebilirsiniz. Örneğin, "yanıt büyük harfle" için eklenti, yanıt metni, aşağıda gösterildiği gibi tamamen büyük harfe dönüştürülür:
curl $GATEWAY_IP -H 'x-api-key:3eqeedJRFLlCshwWBiXq4xKFoH1Se3xR'
Çıkış:
HELLO WORLD
Edge Mikro Ağ Geçidi yapılandırma değişiklikleri yapma
Bazı durumlarda Edge Microgateway yapılandırmanızı değiştirmeniz gerekebilir. Örneğin, Edge Microgateway'e yeni bir eklenti eklemek veya bir yapılandırma parametresini değiştirmek isteyebilirsiniz. Bu Bu bölümde, Edge Microgateway'de yapılandırma değişikliklerinin nasıl yapılacağı ve uygulanacağı açıklanmaktadır. nasıl kullanacağınızı göstereceğim.
secret.yaml
yapılandırma dosyasını aşağıda gösterildiği gibi oluşturun:apiVersion: v1 kind: Secret metadata: name: mgwsecret type: Opaque data: mgorg: EDGEMICRO_ORG mgenv: EDGEMICRO_ENV mgkey: EDGEMICRO_KEY mgsecret: EDGEMICRO_SECRET mgconfig: EDGEMICRO_CONFIG
EDGEMICRO_ORG
,EDGEMICRO_ENV
,EDGEMICRO_KEY
,EDGEMICRO_SECRET
öğelerinin base64 olarak kodlanmış değerini belirtin:echo -n "your-org" | base64 | tr -d '\n'
echo -n "your-org-env" | base64 | tr -d '\n'
echo -n "your-mg-key" | base64 | tr -d '\n'
echo -n "your-mg-secret" | base64 | tr -d '\n'
Kuruluşunuz için Edge Microgateway yapılandırma dosyasında değişikliklerinizi yapın ve ortam:
$HOME/.edgemicro/your_org-your_env-config.yaml
Base64 Kodlaması yapılandırma dosyasının içeriği:
cat $HOME/.edgemicro/org-env-config.yaml | base64 | tr -d '\n' | base64 | tr -d '\n'
Yaptığınız değişiklikleri, hizmetinizin çalıştığı ad alanındaki Kubernetes'e uygulayın.
kubectl apply -f secret.yaml -n
Bu yeni değişiklikler, mevcut mikro ağ geçidi kapsülleri tarafından otomatik olarak alınmaz. ancak, yeni kapsüllerde değişiklikler yapılacak. Mevcut kapsülü silebilirsiniz. Böylece dağıtımı, değişikliği yakalayan yeni bir kapsül oluşturur.
Hizmet örneği
Aşağıdaki örnek, bir hizmet dağıtımının yeni bir
Kapsülleri alın.
kubectl get pods
Örnek çıkış:
NAME READY STATUS RESTARTS AGE edge-microgateway-57ccc7776b-g7nrg 1/1 Running 0 19h helloworld-6987878fc4-cltc2 1/1 Running 0 1d
edge-microgateway
kapsülünü silin.kubectl delete pod edge-microgateway-57ccc7776b-g7nrg
Örnek çıkış:
pod "edge-microgateway-57ccc7776b-g7nrg" deleted
Kapsülleri tekrar alın. Yeni bir kapsül açılır ve yapılandırma değişikliklerinizi alır.
kubectl get pods
Örnek çıkış:
NAME READY STATUS RESTARTS AGE edge-microgateway-57ccc7776b-7f6tc 1/1 Running 0 5s helloworld-6987878fc4-cltc2 1/1 Running 0 1d
Dağıtımınızı ölçeklendirme
Bu bölümde, aşağıdaki işlemleri gerçekleştirmek için Kubernetes ölçeklendirme ilkelerini nasıl kullanabileceğiniz açıklanmaktadır: dağıtımlarınızı ölçeklendirmek için kullanır.
Hizmet dağıtımını ölçeklendirme
Dağıtımları kontrol edin:
kubectl get deployments
Örnek çıkış:
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE edge-microgateway 1 1 1 1 18h helloworld 1 1 1 1 1d
Çıkış, bir replikanın dağıtıldığını gösteriyor.
Dağıtımı 1 replikadan istediğiniz sayıda replikaya kadar ölçeklendirin. Bu örnekte
edge-microgateway
hizmeti ölçeklendirilmiştir.kubectl scale deployment edge-microgateway --replicas=2
(İsteğe bağlı) Otomatik ölçeklendirmeyi kullanmak istiyorsanız şu komutu kullanın:
kubectl autoscale deployment edge-microgateway --cpu-percent=50 --min=1 --max=10
Ölçeklendirmenin etkin olduğunu doğrulamak için dağıtımları kontrol edin:
kubectl get deployments
Örnek çıkış:
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE edge-microgateway 2 2 2 2 18h helloworld 1 1 1 1 1d
Durum, iki replika içerecek şekilde değiştirildi.
Kapsülleri kontrol edin:
kubectl get pods
Örnek çıkış:
NAME READY STATUS RESTARTS AGE edge-microgateway-57ccc7776b-g7nrg 1/1 Running 0 18h edge-microgateway-57ccc7776b-rvfz4 1/1 Running 0 41s helloworld-6987878fc4-cltc2 1/1 Running 0 1d
Çıkış, her iki replikanın da çalışır durumda olduğunu gösteriyor.
Birden fazla Edge Microgateway yapılandırması için ad alanları kullanma
Edge Mikro Ağ Geçidi hizmetlerinin birden fazla örneğini şu hesabınıza dağıtabilir ve yapılandırabilirsiniz: Kubernetes kümesi. Bu kullanım alanı, her bir mikro ağ geçidi örneğini yapılandırmanıza olanak tanır kendi eklenti ve parametre grubuna sahip. Örneğin:
- Edge Microgateway Hizmeti A için yalnızca artış durdurma eklentisi gerekir.
- Edge Microgateway Hizmeti B, kota ve OAuth eklentisi gerektirir ancak ani artış önlemeyi gerektirmez.
Bu kullanım alanını ele almak için Kubernetes ad alanlarını kullanın. Örneğin,
Edge Mikro Ağ Geçidi Hizmeti A'dan foo
ad alanına ve Edge Mikro Ağ Geçidi Hizmeti B'ye
bar
ad alanını kullanır.
Aşağıdaki örnekte, OrgA
kuruluşunda yapılandırılan Edge Mikro Ağ Geçidi, ad alanına bir hizmet olarak dağıtılmıştır
-n
seçeneği ile foo
:
kubectl apply -f <(edgemicroctl -org=myorgA -env=test-key=0e3ecea28a64099410594406b30e54439af5265f8 -sec=e3919250bee37c69cb2e5b41170b488e1c1d -conf=/Users/joed/.edgemicro/orgA-test-config.yaml -svc=samples/helloworld/helloworld.yaml) -n foo
Benzer şekilde, aşağıdaki örnekte Edge Mikro Ağ Geçidi, OrgB
kuruluşunda yapılandırılmıştır
, -n
seçeneği kullanılarak bar
ad alanına bir hizmet olarak dağıtılır:
kubectl apply -f <(edgemicroctl -org=myorgB -env=test-key=0e3ecea28a64099410594406b30e54439af5265f8 -sec=e3919250bee37c69cb2e5b41170b488e1c1d -conf=/Users/joed/.edgemicro/orgB-test-config.yaml -svc=samples/helloworld/helloworld.yaml) -n bar