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

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

वर्शन: 1.2.1

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

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

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

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

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

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

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

  4. कॉन्फ़िगरेशन के रेफ़रंस का इस्तेमाल करके, एक्स0}एक्सटेंशन को जोड़ने और कॉन्फ़िगर करने के दौरान, जनरेट हुई कुंजी की 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
}]]></Input>

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

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

JSON का उदाहरण

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

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

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