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

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

वर्शन: 2.0.0

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

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

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

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

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

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

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

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

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

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

अगर आपने 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>

नीचे दी गई असाइन मैसेज नीति, रिस्पॉन्स पेलोड असाइन करने के लिए, एक्सटेंशन के रिस्पॉन्स को सेव करने वाले वैरिएबल की वैल्यू का इस्तेमाल करती है. मैसेज आईडी, आउटपुट वैरिएबल की 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>

नीचे दी गई असाइन मैसेज नीति, रिस्पॉन्स पेलोड असाइन करने के लिए, एक्सटेंशन के रिस्पॉन्स को सेव करने वाले वैरिएबल की वैल्यू का इस्तेमाल करती है. मैसेज आईडी, आउटपुट वैरिएबल की 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 सेवा से पाएं. जैसे, सेवा के लिए Google Cloud Console से. उदाहरण के लिए, विषय का नाम projects/GCP-PROJECT-ID/topics/TOPIC-NAME फ़ॉर्मैट में हो सकता है कोई नहीं. हां.
credentials Apigee Edge कंसोल में डालने पर, यह आपके सेवा खाते की कुंजी वाली फ़ाइल का कॉन्टेंट होता है. मैनेजमेंट एपीआई का इस्तेमाल करके भेजने पर, यह सेवा खाते की कुंजी वाली फ़ाइल से जनरेट की गई, base64 में एनकोड की गई वैल्यू होती है. कोई नहीं. हां.