आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
इस पेज पर जाएं
Apigee X दस्तावेज़. जानकारी
कस्टम प्लग इन जोड़ना
आप custom लिखकर माइक्रोगेटवे में नई सुविधाएं और क्षमताएं जोड़ सकते हैं प्लगिन. कस्टम प्लगिन की मदद से, अनुरोधों के साथ प्रोग्राम के हिसाब से इंटरैक्ट किया जा सकता है और माइक्रोगेटवे से होकर गुज़रने वाली प्रतिक्रियाएं भी.
इस सेक्शन में बताया गया है कि Edge माइक्रोगेटवे पर प्लगिन कैसे पैकेज और डिप्लॉय किए जाते हैं इंस्टेंस जो आपके Kubernetes क्लस्टर में चल रहा है.
इस सेक्शन के बाकी हिस्से के लिए यह माना जाता है कि जिसे आपको लिखने और कॉन्फ़िगर करने का तरीका पता है स्टैंडर्ड Edge Microgateway सेटअप के लिए प्लगिन. अगर ऐसा नहीं है, तो कस्टम प्लगिन डेवलप करना देखें.
अपने प्लग इन पैकेज करें
कस्टम प्लगिन के पैकेज के लिए, यह तरीका अपनाएं:
कोई आसान प्लग इन लिखें में दिए गए निर्देशों के मुताबिक अपने प्लग इन लिखें और उनकी जांच करें.
अपने प्लग इन कोड को सही डायरेक्ट्री स्ट्रक्चर में रखें. प्लग इन डायरेक्ट्री को एक तय स्ट्रक्चर का पालन करना होगा. नीचे दिए गए उदाहरण में, आपको उस स्ट्रक्चर का पालन करना होगा जहां
response-uppercaseऔरrequest-headersकस्टम प्लग इन कोड वाले फ़ोल्डर के नाम (ये नाम सिर्फ़ उदाहरण हैं, आपके फ़ोल्डर के नाम अलग हो सकते हैं):plugin | |-- plugins | |- response-uppercase | |- index.js | |- package.json |- request-headers | | - index.js | - package.jsoncdकोpluginफ़ोल्डर में.pluginफ़ोल्डर में, पूरेpluginsफ़ोल्डर को ज़िप करें:zip -r plugins.zip plugins/
Docker इमेज बनाएं
- जिस डायरेक्ट्री में ZIP फ़ाइल मौजूद है उसी डायरेक्ट्री में,
Dockerfileनाम की नई फ़ाइल बनाएं. Dockerfileमें यह कोड जोड़ें और फ़ाइल सेव करें: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"]अपने प्लगिन और पुश नोटिफ़िकेशन की मदद से, Edge Microgateway Docker की नई इमेज बनाएं चित्र को आपकी Docker रजिस्ट्री में अपलोड कर सकता है. आप जो भी रजिस्ट्री चाहें, कर सकते हैं, जैसे
docker.ioयाgcr.ioके तौर पर:docker build -t edgemicroplugins .docker tag edgemicroplugins container-registry/your-project/edgemicropluginsdocker push container-registry/your-project/edgemicropluginsउदाहरण के लिए:
docker build -t edgemicroplugins .docker tag edgemicroplugins gcr.io/my-project/edgemicropluginsdocker push gcr.io/my-project/edgemicroplugins
Edge Microgateway कॉन्फ़िगरेशन को अपडेट करें
अपनी Edge Microgateway कॉन्फ़िगरेशन फ़ाइल में प्लगिन जोड़ें. आप कॉन्फ़िगरेशन फ़ाइल यहां पढ़ें:
$HOME/.edgemicro/org-env-config.yaml
उदाहरण के लिए:
$HOME/.edgemicro/myorg-test-config.yaml
नीचे दिए गए कॉन्फ़िगरेशन में, कस्टम प्लगिन response-uppercase को जोड़ा गया था.
oauth प्लगिन डिफ़ॉल्ट रूप से पहले से वहां मौजूद था.
edgemicro:
...
plugins:
sequence:
- oauth
- response-uppercase
अपने Kubernetes क्लस्टर को अपडेट करें
आखिरी चरण अपने Kubernetes क्लस्टर में कॉन्फ़िगरेशन के बदलाव को लागू करना है. कुबेरनेट्स नई इमेज को कंटेनर रजिस्ट्री में पुश किए गए प्लगिन कोड के साथ लेगा और उसका इस्तेमाल किसी भी नए पॉड बनाए.
अगर आपने एज माइक्रोगेटवे को सेवा के तौर पर डिप्लॉय किया है, तो
अपडेट किए गए Edge Microgateway कॉन्फ़िगरेशन को इंजेक्ट करने के लिए, edgemicroctl कमांड का इस्तेमाल करें:
एज माइक्रोगेटवे डिप्लॉयमेंट को नई इमेज से अपडेट करें. उदाहरण के लिए:
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)
कहां:
your_organization- Apigee संगठन जिसे आपनेedgemicro configureकमांड में बताया है.your_environment- वह एनवायरमेंट जिसे आपनेedgemicro configureनिर्देश में तय किया है.configuration_key-edgemicro configureनिर्देश से मिली कुंजी.configuration_secret-edgemicro configureनिर्देश से सीक्रेट लौटाया गया.config_file_path- एज माइक्रो कॉन्फ़िगरेशन फ़ाइल का पाथ,edgemicro configureकमांड से दिखाया गया है.container-registry- Docker रजिस्ट्री जहां आपने इमेज को पुश किया है. उदाहरण के लिए,gcr.ioयाdocker.io.your_project_name- Docker डेटा स्टोर करने की जगह के लिए प्रोजेक्ट का नाम, जहां आपने Docker इमेज को पुश किया.image_name- उस Docker इमेज का नाम जिसे आपने पुश किया है.
उदाहरण:
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)
प्लग इन की जांच करें. एपीआई को कॉल करके देखें कि आपको सही व्यवहार मिल रहा है या नहीं. इसके लिए उदाहरण के लिए, "रिस्पॉन्स अपरकेस" प्लगिन, प्रतिक्रिया टेक्स्ट सभी में बदल जाता है अंग्रेज़ी के बड़े अक्षरों का इस्तेमाल करें, जैसा कि नीचे दिखाया गया है:
curl $GATEWAY_IP -H 'x-api-key:3eqeedJRFLlCshwWBiXq4xKFoH1Se3xR'
आउटपुट:
HELLO WORLD
नया कॉन्फ़िगरेशन मैन्युअल रूप से इंजेक्ट करना
मैन्युअल तरीके से इंजेक्शन लगाना एक आसान तरीका है, जिसमें नया कॉन्फ़िगरेशन इंजेक्ट किया जा सकता है कमांड लाइन से.
नीचे दिया गया निर्देश चलाएं:
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)
कहां:
your_org- Apigee संगठन जिसे आपनेedgemicro configureकमांड में बताया है.your_env- वह एनवायरमेंट जिसे आपनेedgemicro configureनिर्देश में तय किया है.your_key-edgemicro configureनिर्देश से मिली कुंजी.your_secret-edgemicro configureनिर्देश से सीक्रेट लौटाया गया.config_file_path- एज माइक्रो कॉन्फ़िगरेशन फ़ाइल का पाथ,edgemicro configureकमांड से दिखाया गया है.container-registry- Docker रजिस्ट्री जहां आपने इमेज को पुश किया है. उदाहरण के लिए,gcr.ioयाdocker.io.your_project_name- Docker डेटा स्टोर करने की जगह के लिए प्रोजेक्ट का नाम, जहां आपने Docker इमेज को पुश किया.image_name- उस Docker इमेज का नाम जिसे आपने पुश किया है.service_deployment_file- के लिए सेवा की डिप्लॉयमेंट फ़ाइल का पाथ जिन पर प्लग इन लागू होंगे. उदाहरण के लिए:samples/helloworld/helloworld.yaml.
उदाहरण के लिए:
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)
प्लग इन की जांच करें. Service API को इस नंबर पर कॉल करें देखें कि आपको उम्मीद के मुताबिक व्यवहार मिलता है या नहीं. उदाहरण के लिए, "जवाब के लिए अपरकेस" प्लगिन, रिस्पॉन्स टेक्स्ट को अंग्रेज़ी के सभी बड़े अक्षरों में बदल दिया जाता है, जैसा कि नीचे दिखाया गया है:
curl $GATEWAY_IP -H 'x-api-key:3eqeedJRFLlCshwWBiXq4xKFoH1Se3xR'
आउटपुट:
HELLO WORLD
Edge Microgateway के कॉन्फ़िगरेशन में बदलाव करना
कुछ मामलों में आपको अपने Edge Microgateway कॉन्फ़िगरेशन को बदलना पड़ सकता है. उदाहरण के लिए, आपके EDGE Microgateway में एक नया प्लगिन जोड़ा जा सकता है या कॉन्फ़िगरेशन पैरामीटर बदला जा सकता है. यह सेक्शन में बताया गया है कि Edge माइक्रोगेटवे पर कॉन्फ़िगरेशन में बदलाव कैसे करते हैं Google Analytics 4 में भी चला जा सकता है.
नीचे दिखाए गए तरीके से
secret.yamlकॉन्फ़िगरेशन फ़ाइल बनाएं:apiVersion: v1 kind: Secret metadata: name: mgwsecret type: Opaque data: mgorg: EDGEMICRO_ORG mgenv: EDGEMICRO_ENV mgkey: EDGEMICRO_KEY mgsecret: EDGEMICRO_SECRET mgconfig: EDGEMICRO_CONFIGEDGEMICRO_ORG,EDGEMICRO_ENV,EDGEMICRO_KEY,EDGEMICRO_SECRETकी base64 कोड में बदली गई वैल्यू तय करें: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'अपने संगठन के लिए, Edge Microgateway कॉन्फ़िगरेशन फ़ाइल में बदलाव करें और वातावरण:
$HOME/.edgemicro/your_org-your_env-config.yaml
Base64 एन्कोड करें कॉन्फ़िगरेशन फ़ाइल का कॉन्टेंट:
cat $HOME/.edgemicro/org-env-config.yaml | base64 | tr -d '\n' | base64 | tr -d '\n'
उस नेमस्पेस पर कुबेरनेट्स में बदलाव लागू करें जहां आपकी सेवा चल रही है.
kubectl apply -f secret.yaml -n
ये नए बदलाव, मौजूदा माइक्रोगेटवे पॉड से अपने-आप नहीं जुड़ते; हालांकि, नए पॉड को बदलाव मिलेंगे. आप मौजूदा पॉड को मिटा सकते हैं, ताकि डिप्लॉयमेंट की मदद से एक नया पॉड बनाया जाता है, जिसमें बदलाव लागू होता है.
सेवा का उदाहरण
नीचे दिए गए उदाहरण में, सेवा के डिप्लॉयमेंट को नए
पॉड पाएं.
kubectl get pods
आउटपुट का उदाहरण:
NAME READY STATUS RESTARTS AGE edge-microgateway-57ccc7776b-g7nrg 1/1 Running 0 19h helloworld-6987878fc4-cltc2 1/1 Running 0 1dedge-microgatewayपॉड को मिटाएं.kubectl delete pod edge-microgateway-57ccc7776b-g7nrg
आउटपुट का उदाहरण:
pod "edge-microgateway-57ccc7776b-g7nrg" deletedपॉड फिर से पाएं. एक नया पॉड स्पिन होता है और उसके कॉन्फ़िगरेशन में बदलाव होता है.
kubectl get pods
आउटपुट का उदाहरण:
NAME READY STATUS RESTARTS AGE edge-microgateway-57ccc7776b-7f6tc 1/1 Running 0 5s helloworld-6987878fc4-cltc2 1/1 Running 0 1d
डिप्लॉयमेंट की संख्या बढ़ाना
इस सेक्शन में, Kubernetes स्केलिंग के सिद्धांतों का इस्तेमाल करके, अपने डिप्लॉयमेंट को बढ़ाएं.
सेवा के डिप्लॉयमेंट को स्केल करना
डिप्लॉयमेंट की जांच करें:
kubectl get deployments
आउटपुट का उदाहरण:
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE edge-microgateway 1 1 1 1 18h helloworld 1 1 1 1 1dआउटपुट में पता चलता है कि एक प्रतिकृति डिप्लॉय की गई है.
डिप्लॉयमेंट को अपनी ज़रूरत के हिसाब से एक से ज़्यादा प्रतिरूपों तक स्केल करें. इस उदाहरण में,
edge-microgatewayसेवा को स्केल किया गया है.kubectl scale deployment edge-microgateway --replicas=2
(ज़रूरी नहीं) अगर आपको ऑटो स्केलिंग की सुविधा का इस्तेमाल करना है, तो इस निर्देश का इस्तेमाल करें:
kubectl autoscale deployment edge-microgateway --cpu-percent=50 --min=1 --max=10
स्केलिंग चालू है, यह पुष्टि करने के लिए डिप्लॉयमेंट की जांच करें:
kubectl get deployments
आउटपुट का उदाहरण:
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE edge-microgateway 2 2 2 2 18h helloworld 1 1 1 1 1dदो प्रतिकृतियों को शामिल करने के लिए राज्य को बदल दिया गया है.
पॉड की जांच करें:
kubectl get pods
आउटपुट का उदाहरण:
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आउटपुट से पता चलता है कि दोनों प्रतिकृतियां चालू स्थिति में हैं.
एक से ज़्यादा Edge माइक्रोगेटवे कॉन्फ़िगरेशन के लिए नेमस्पेस इस्तेमाल करें
एज माइक्रोगेटवे सेवाओं के कई इंस्टेंस को डिप्लॉय और कॉन्फ़िगर किया जा सकता है Kubernetes क्लस्टर. इस्तेमाल का यह उदाहरण आपको हर माइक्रोगेटवे इंस्टेंस को कॉन्फ़िगर करने की अनुमति देता है प्लगिन और पैरामीटर के अपने सेट के साथ काम करता है. उदाहरण के लिए:
- Edge Microgateway Service A के लिए सिर्फ़ स्पाइक अरेस्ट प्लगिन की ज़रूरत होती है.
- Edge Microgateway Service B के लिए कोटा और oauth प्लगिन ज़रूरी है, लेकिन गिरफ़्तारी नहीं बढ़ रही है.
इस्तेमाल के इस उदाहरण को हल करने के लिए, Kubernetes namespaces का इस्तेमाल करें. उदाहरण के लिए, आपके पास इन विज्ञापनों को डिप्लॉय करने का
एज माइक्रोगेटवे सर्विस A से नेमस्पेस foo और एज माइक्रोगेटवे सर्विस B से
नेमस्पेस bar.
यहां दिए गए उदाहरण में, OrgA संगठन में कॉन्फ़िगर किए गए एज माइक्रोगेटवे को नेमस्पेस के लिए सेवा के तौर पर डिप्लॉय किया गया है
-n विकल्प का इस्तेमाल करके 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
इसी तरह, नीचे दिए गए उदाहरण में, OrgB संगठन में कॉन्फ़िगर किया गया Edge माइक्रोगेटवे है
-n विकल्प का इस्तेमाल करके, bar को नेमस्पेस के लिए एक सेवा के तौर पर डिप्लॉय किया जाता है:
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