ส่วนขยาย Google Cloud Pub/Sub

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X
ข้อมูล

เวอร์ชัน: 1.5.1

เผยแพร่ข้อความไปยังหัวข้อในบริการ Google Cloud Pub/Sub

เนื้อหานี้ให้ข้อมูลอ้างอิงสำหรับการกำหนดค่าและใช้ส่วนขยายนี้

ข้อกำหนดเบื้องต้น

ก่อนที่จะใช้ส่วนขยายจากพร็อกซี API โดยใช้นโยบาย Extension), คุณต้องทำดังนี้

  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 โดยใช้นโยบาย Extension โปรดเลือก

SMS

ในตัวอย่างนี้ การดำเนินการ 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>

ตัวอย่าง Structured Data ของ 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"}

ข้อมูลอ้างอิงการกำหนดค่า

ใช้ข้อมูลต่อไปนี้เมื่อคุณกำหนดค่าและทำให้ส่วนขยายนี้ใช้งานได้ เพื่อใช้ในพร็อกซี API

คุณสมบัติส่วนขยายที่พบบ่อย

พร็อพเพอร์ตี้ต่อไปนี้มีอยู่ในส่วนขยายทุกรายการ

พร็อพเพอร์ตี้ คำอธิบาย ค่าเริ่มต้น ต้องระบุ
name ชื่อที่คุณกําหนดให้การกําหนดค่านี้ของส่วนขยาย ไม่มี ได้
packageName ชื่อแพ็กเกจส่วนขยายที่ระบุโดย Apigee Edge ไม่มี ได้
version หมายเลขเวอร์ชันของแพ็กเกจส่วนขยายที่คุณกําหนดค่าส่วนขยาย ไม่มี ได้
configuration ค่าการกําหนดค่าเฉพาะสําหรับส่วนขยายที่คุณกําลังเพิ่ม ดูพร็อพเพอร์ตี้สําหรับแพ็กเกจส่วนขยายนี้ ไม่มี ได้

พร็อพเพอร์ตี้สำหรับแพ็กเกจส่วนขยายนี้

พร็อพเพอร์ตี้ คำอธิบาย ค่าเริ่มต้น จำเป็น
topic หัวข้อที่จะเผยแพร่ รับค่านี้จากบริการ Pub/Sub เช่น จากคอนโซล GCP สำหรับบริการ ตัวอย่างเช่น ชื่อหัวข้ออาจอยู่ในรูปแบบ projects/GCP-PROJECT-ID/topics/TOPIC-NAME ไม่มี ใช่
credentials เมื่อป้อนในคอนโซล Apigee Edge คือเนื้อหาของไฟล์คีย์บัญชีบริการ เมื่อส่งผ่าน API การจัดการ ค่าดังกล่าวคือค่าที่เข้ารหัสแบบ Base64 ซึ่งสร้างขึ้นจากไฟล์คีย์บัญชีบริการ ไม่มี ใช่