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

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

वर्शन: 1.5.1

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

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

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

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

  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 दस्तावेज़ में क्विकस्टार्ट की सुविधा देखें.

सैंपल

नीचे दिए गए उदाहरणों में, एक्सटेंशन कॉलआउट नीति का इस्तेमाल करके, 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 है.

कार्रवाइयाँ

publish

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

सिंटैक्स

<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>

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

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