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

आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है इस पेज पर जाएं Apigee X दस्तावेज़.
जानकारी

वर्शन: 1.3.0

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 है.

कार्रवाइयां

प्रकाशित करें

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

सिंटैक्स

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