คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ
Apigee X info
เวอร์ชัน: 1.5.1
เผยแพร่ข้อความไปยังหัวข้อในบริการ Google Cloud Pub/Sub
เนื้อหานี้เป็นข้อมูลอ้างอิงสำหรับการกำหนดค่าและการใช้ส่วนขยายนี้
ข้อกำหนดเบื้องต้น
ก่อนใช้ส่วนขยายจากพร็อกซี API โดยใช้นโยบาย ExtensionCallout คุณต้องทำดังนี้
สร้างหัวข้อ Cloud Pub/Sub ตามที่อธิบายไว้ในการเริ่มต้นอย่างรวดเร็ว: การใช้คอนโซล
เมื่อมีหัวข้อแล้ว ให้ให้สิทธิ์ในการเผยแพร่ไปยังหัวข้อ Cloud Pub/Sub เช่น คุณสามารถใช้บทบาท
roles/pubsub.publisherเพื่อเผยแพร่ไปยังหัวข้อต่างๆ ได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับบทบาทของ Cloud Pub/Sub ได้ที่การควบคุมการเข้าถึงใช้เนื้อหาของไฟล์ JSON คีย์ที่ได้เมื่อเพิ่มและกำหนดค่าส่วนขยายโดยใช้ข้อมูลอ้างอิงการกำหนดค่า
เกี่ยวกับ Cloud Pub/Sub
Cloud Pub/Sub มีการรับส่งข้อความแบบไม่พร้อมกันแบบหลายต่อหลายข้อความที่แยกผู้ส่งและผู้รับออกจากกัน Cloud Pub/Sub มีการรับส่งข้อความที่มีความหน่วงต่ำและทนทาน ซึ่งช่วยให้นักพัฒนาแอปผสานรวมระบบที่โฮสต์ใน Google Cloud Platform และภายนอกได้อย่างรวดเร็ว
หากเพิ่งเริ่มต้นใช้งาน Cloud Pub/Sub โปรดดูการเริ่มต้นใช้งานฉบับย่อในเอกสารประกอบของ Cloud Pub/Sub
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงวิธีกำหนดค่าการรองรับการดำเนินการของส่วนขยาย Cloud Pub/Sub โดยใช้นโยบาย ExtensionCallout
ข้อความ
ในตัวอย่างนี้ publish การดำเนินการจะเผยแพร่ข้อความเป็นสตริงอย่างง่ายไปยังหัวข้อที่ระบุไว้ในการกำหนดค่าของส่วนขยาย publish การดำเนินการจะแสดงรหัสของข้อความที่เผยแพร่ในหัวข้อที่เผยแพร่ และเขียนลงในตัวแปรที่ระบุโดยแท็ก <Output>
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
ConnectorCallout async="false" continueOnError=&quo>t;tru<e" ena>bled="true<" name=>"<;Publish->Message"
DisplayNamePu<blish Mess>age/D<isplay>Name
< Connectorc<loud-><pub-sub-extension-example/Connector
Actionpublish/Action
Input![><CDATA[>
< {
> "<;messag>e<" : "My> test message."
}
]]/Input
Outputtopic.message/Output
/ConnectorCallout
นโยบายกำหนดข้อความต่อไปนี้ใช้ค่าของตัวแปรที่จัดเก็บการตอบกลับของส่วนขยายเพื่อกำหนดเพย์โหลดการตอบกลับ ระบบจะจัดเก็บรหัสข้อความไว้ในพร็อพเพอร์ตี้ messageId ของตัวแปรเอาต์พุต
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
AssignMessage async="false" continueOnError="fals>e&quo<t; enabled=>"true" nam<e="Get->Topic<-Message-ID"
DisplayNameGet Topic >Messa<ge >ID/Displa<yName
AssignTo type="response>" createNew="fa<lse">;/
< >span>Set<
Paylo>ad 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&quo>t<; standalone="yes"?
ConnectorCallout async="false" continueOnError=&quo>t;tru<e" ena>bled="true<" name=>"<;Publish->Message"
DisplayNamePu<blish Mess>age/D<isplay>Name
< Connectorc<loud-><pub-sub-extension-example/Connector
Actionpublish/Action
Input![CDATA[
>< {
> < "message&quo<t; : { >&<quot;info" :> "My test message" }
}
]]/Input
Outputtopic.message/Output
/ConnectorCallout
นโยบายกำหนดข้อความต่อไปนี้ใช้ค่าของตัวแปรที่จัดเก็บการตอบกลับของส่วนขยายเพื่อกำหนดเพย์โหลดการตอบกลับ ระบบจะจัดเก็บรหัสข้อความไว้ในพร็อพเพอร์ตี้ messageId ของตัวแปรเอาต์พุต
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
AssignMessage async="false" continueOnError="fals>e&quo<t; enabled=>"true" nam<e="Get->Topic<-Message-ID"
DisplayNameGet Topic >Messa<ge >ID/Displa<yName
AssignTo type="response>" createNew="fa<lse">;/
< >span>Set<
Paylo>ad 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,
"customAt><tribut>es": JSON-array
}]]/Input
ตัวอย่างสตริง
<Action>publish</Action>
<Input><![CDATA[
{
"message" : "My test m><essage>."
}
]]/Input
ตัวอย่าง Structured Data JSON
<Action>publish</Action>
<Input><![CDATA[
{
"message" : { "info" : "><My tes>t message" }
}
]]/Input
ตัวอย่างแอตทริบิวต์ที่กำหนดเอง
<Action>publish</Action>
<Input><![CDATA[
{
"message" : { "info" : "My test message" },
"customAttributes":>< {&quo>t;attr1": "foo", "attr2": "bar"}
}
]]/Input
พารามิเตอร์คำขอ
| พารามิเตอร์ | คำอธิบาย | ประเภท | ค่าเริ่มต้น | ต้องระบุ |
|---|---|---|---|---|
| ข้อความ | ข้อความที่จะเผยแพร่ คุณสามารถใช้สตริงธรรมดาหรือจัดโครงสร้างข้อความด้วย 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 นี่คือเนื้อหาของไฟล์คีย์บัญชีบริการ เมื่อส่งผ่าน Management API ค่าจะเป็นค่าที่เข้ารหัส Base64 ซึ่งสร้างจากไฟล์คีย์บัญชีบริการ | ไม่มี | ได้ |