Google Cloud Pub/Sub एक्सटेंशन

यहां Apigee Edge के दस्तावेज़ देखे जा रहे हैं.
पर जाएं Apigee X दस्तावेज़.
info

वर्शन: 1.5.1

Google Cloud की Pub/Sub सेवा में किसी विषय पर मैसेज पब्लिश करें.

इस कॉन्टेंट में, इस एक्सटेंशन को कॉन्फ़िगर करने और इस्तेमाल करने के बारे में जानकारी दी गई है.

ज़रूरी शर्तें

ExtensionCallout नीति का इस्तेमाल करके, एपीआई प्रॉक्सी से एक्सटेंशन का इस्तेमाल करने से पहले, आपको ये काम करने होंगे:

  1. Cloud Pub/Sub विषय बनाएं. इसके लिए, कंसोल का इस्तेमाल करना: क्विकस्टार्ट लेख पढ़ें.

  2. विषय बनाने के बाद, पब्लिश करने की अनुमति दें अपने Cloud Pub/Sub विषय पर. उदाहरण के लिए, विषयों पर पब्लिश करने के लिए, roles/pubsub.publisher भूमिका का इस्तेमाल किया जा सकता है. Cloud Pub/Sub की भूमिकाओं के बारे में ज़्यादा जानने के लिए, ऐक्सेस कंट्रोल करना लेख पढ़ें.

  3. सेवा खाते के लिए कुंजी जनरेट करने के लिए, GCP कंसोल का इस्तेमाल करें.

  4. कॉन्फ़िगरेशन के रेफ़रंस का इस्तेमाल करके, एक्सटेंशन को जोड़ने और कॉन्फ़िगर करने के दौरान, जनरेट हुई कुंजी वाली JSON फ़ाइल के कॉन्टेंट का इस्तेमाल करें.

Cloud Pub/Sub के बारे में जानकारी

Cloud Pub/Sub, कई लोगों के बीच एसिंक्रोनस मैसेजिंग की सुविधा देता है. इससे भेजने वाले और पाने वाले अलग-अलग हो सकते हैं. Cloud Pub/Sub, कम-लेटेंसी वाली और टिकाऊ मैसेजिंग की सुविधा देता है. इससे डेवलपर, Google Cloud Platform और बाहरी तौर पर होस्ट किए गए सिस्टम को तेज़ी से इंटिग्रेट कर पाते हैं.

अगर आपने Cloud Pub/Sub का इस्तेमाल करना अभी शुरू किया है, तो Cloud Pub/Sub के दस्तावेज़ में दिए गए क्विकस्टार्ट देखें.

सैंपल

यहां दिए गए उदाहरणों से पता चलता है कि ExtensionCallout नीति का इस्तेमाल करके, Cloud Pub/Sub एक्सटेंशन की कार्रवाइयों के लिए सहायता को कैसे कॉन्फ़िगर किया जाता है.

मैसेज

इस उदाहरण में, publish कार्रवाई, एक्सटेंशन के कॉन्फ़िगरेशन में बताए गए विषय पर, एक सामान्य स्ट्रिंग के तौर पर मैसेज पब्लिश करती है. publish कार्रवाई, पब्लिश किए गए मैसेज की आईडी को उस विषय में दिखाती है जिस पर उसे पब्लिश किया गया था. साथ ही, इसे <Output> टैग में बताए गए वैरिएबल में लिखती है:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Publish-Message">
    <DisplayName>Publish Message</DisplayName>
    <Connector>cloud-pub-sub-extension-example</Connector>
    <Action>publish</Action>
    <Input><![CDATA[
      {
          "message" : "My test message."
      }
    ]]></Input>
    <Output>topic.message</Output>
</ConnectorCallout>

यहां दी गई Assign Message नीति, रिस्पॉन्स पेलोड असाइन करने के लिए, एक्सटेंशन के रिस्पॉन्स को सेव करने वाले वैरिएबल की वैल्यू का इस्तेमाल करती है. मैसेज की आईडी, आउटपुट वैरिएबल की messageId प्रॉपर्टी में सेव होती है:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Topic-Message-ID">
    <DisplayName>Get Topic Message ID</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{topic.message.messageId}</Payload>
    </Set>
</AssignMessage>

रिस्पॉन्स डेटा, JSON के तौर पर मिलता है:

{"messageId":"165918654986954"}

इसलिए, topic.message.messageId की वैल्यू 165918654986954 है.

JSON फ़ॉर्मैट में मैसेज

इस उदाहरण में, publish कार्रवाई, एक्सटेंशन के कॉन्फ़िगरेशन में बताए गए विषय पर, JSON के तौर पर मैसेज पब्लिश करती है. publish कार्रवाई, पब्लिश किए गए मैसेज की आईडी को उस विषय में दिखाती है जिस पर उसे पब्लिश किया गया था. साथ ही, इसे <Output> टैग में बताए गए वैरिएबल में लिखती है:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Publish-Message">
    <DisplayName>Publish Message</DisplayName>
    <Connector>cloud-pub-sub-extension-example</Connector>
    <Action>publish</Action>
    <Input><![CDATA[
      {
          "message" : { "info" : "My test message" }
      }
    ]]></Input>
    <Output>topic.message</Output>
</ConnectorCallout>

यहां दी गई Assign Message नीति, रिस्पॉन्स पेलोड असाइन करने के लिए, एक्सटेंशन के रिस्पॉन्स को सेव करने वाले वैरिएबल की वैल्यू का इस्तेमाल करती है. मैसेज की आईडी, आउटपुट वैरिएबल की messageId प्रॉपर्टी में सेव होती है:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Topic-Message-ID">
    <DisplayName>Get Topic Message ID</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{topic.message.messageId}</Payload>
    </Set>
</AssignMessage>

रिस्पॉन्स डेटा, JSON के तौर पर मिलता है:

{"messageId":"165918654986954"}

इसलिए, topic.message.messageId की वैल्यू 165918654986954 है.

कार्रवाइयां

पब्लिश करें

इस एक्सटेंशन के कॉन्फ़िगरेशन में बताए गए विषय पर मैसेज पब्लिश करता है.

सिंटैक्स

<Action>publish</Action>
<Input><![CDATA[{
  "message" : "message-to-publish" | JSON-structured-data,
  "customAttributes": JSON-array
}]]></Input>

स्ट्रिंग का उदाहरण

<Action>publish</Action>
<Input><![CDATA[
  {
      "message" : "My test message."
  }
]]></Input>

JSON फ़ॉर्मैट में स्ट्रक्चर्ड डेटा का उदाहरण

<Action>publish</Action>
<Input><![CDATA[
  {
      "message" : { "info" : "My test message" }
  }
]]></Input>

कस्टम एट्रिब्यूट का उदाहरण

<Action>publish</Action>
<Input><![CDATA[
  {
      "message" : { "info" : "My test message" },
      "customAttributes": {"attr1": "foo", "attr2": "bar"}
  }
]]></Input>

अनुरोध के पैरामीटर

पैरामीटर ब्यौरा टाइप डिफ़ॉल्ट ज़रूरी है
मैसेज पब्लिश किया जाने वाला मैसेज. आपके पास सामान्य स्ट्रिंग का इस्तेमाल करने या अपने डिज़ाइन के JSON का इस्तेमाल करके मैसेज को स्ट्रक्चर करने का विकल्प है. स्ट्रिंग या JSON कोई नहीं हां
customAttributes

मैसेज में जोड़ने के लिए कस्टम एट्रिब्यूट. इनका फ़ॉर्मैट यह होना चाहिए:

"customAttributes": {"attr1": "foo", "attr2": "bar"}.
JSON ऐरे कोई नहीं नहीं

जवाब

JSON में, मैसेज की आईडी शामिल होती है. यह आईडी, विषय पर पब्लिश किए गए मैसेज की होती है. उदाहरण के लिए:

{"messageId":"165918654986954"}

कॉन्फ़िगरेशन का रेफ़रंस

एपीआई प्रॉक्सी में इस एक्सटेंशन को कॉन्फ़िगर और डिप्लॉय करते समय, यहां दी गई जानकारी का इस्तेमाल करें.

एक्सटेंशन की सामान्य प्रॉपर्टी

हर प्रॉपर्टी के लिए नीचे दी गई प्रॉपर्टी मौजूद हैं.

प्रॉपर्टी जानकारी डिफ़ॉल्ट ज़रूरी है
name वह नाम, जिसे आप एक्सटेंशन का यह कॉन्फ़िगरेशन दे रहे हैं. कभी नहीं हां
packageName एक्सटेंशन पैकेज का नाम, जो Apigee Edge से दिया गया है. कभी नहीं हां
version उस एक्सटेंशन पैकेज का वर्शन नंबर जिससे आपको एक्सटेंशन कॉन्फ़िगर करना है. कभी नहीं हां
configuration आप जिस एक्सटेंशन को जोड़ रहे हैं उसके लिए खास तौर पर कॉन्फ़िगरेशन वैल्यू. इस एक्सटेंशन पैकेज के लिए प्रॉपर्टी देखें कभी नहीं हां

इस एक्सटेंशन पैकेज की प्रॉपर्टी

प्रॉपर्टी ब्यौरा डिफ़ॉल्ट ज़रूरी है
topic वह विषय जिस पर पब्लिश करना है. यह वैल्यू, Pub/Sub सेवा से पाएं. जैसे, सेवा के लिए GCP कंसोल से. उदाहरण के लिए, विषय का नाम projects/GCP-PROJECT-ID/topics/TOPIC-NAME फ़ॉर्मैट में हो सकता है कोई नहीं. हां.
credentials Apigee Edge कंसोल में डालने पर, यह आपके सेवा खाते की कुंजी वाली फ़ाइल का कॉन्टेंट होता है. मैनेजमेंट एपीआई के ज़रिए भेजने पर, यह सेवा खाते की कुंजी वाली फ़ाइल से जनरेट की गई, base64 में एनकोड की गई वैल्यू होती है. कोई नहीं. हां.