Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về
Apigee X. thông tin
Phiên bản: 1.5.1
Đăng thông báo cho một chủ đề trong dịch vụ Google Cloud Pub/Sub.
Nội dung này cung cấp tài liệu tham khảo để định cấu hình và sử dụng tiện ích này.
Điều kiện tiên quyết
Trước khi sử dụng tiện ích từ proxy API bằng Chính sách chú thích tiện ích, bạn phải:
Tạo một chủ đề trên Cloud Pub/Sub như mô tả trong phần Bắt đầu nhanh: Sử dụng bảng điều khiển.
Sau khi đã có chủ đề, hãy cấp quyền xuất bản lên chủ đề Cloud Pub/Sub của bạn. Ví dụ: bạn có thể dùng vai trò
roles/pubsub.publisher
để xuất bản lên các chủ đề. Để biết thêm thông tin về các vai trò trên Cloud Pub/Sub, hãy xem phần Kiểm soát quyền truy cập.Sử dụng Bảng điều khiển của GCP để tạo khoá cho tài khoản dịch vụ.
Sử dụng nội dung của tệp JSON chứa khoá thu được khi thêm và định cấu hình tiện ích bằng cách sử dụng tài liệu tham khảo về cấu hình.
Giới thiệu về Cloud Pub/Sub
Cloud Pub/Sub cung cấp thông báo không đồng bộ, từ nhiều đến nhiều, giúp phân tách người gửi và người nhận. Cloud Pub/Sub cung cấp thông điệp bền vững và có độ trễ thấp, giúp nhà phát triển nhanh chóng tích hợp các hệ thống được lưu trữ trên Google Cloud Platform và ra bên ngoài.
Nếu bạn mới bắt đầu sử dụng Cloud Pub/Sub, hãy xem các hướng dẫn bắt đầu nhanh trong tài liệu về Cloud Pub/Sub.
Mẫu
Các ví dụ sau minh hoạ cách định cấu hình tính năng hỗ trợ các hành động đối với tiện ích Cloud Pub/Sub bằng cách sử dụng Chính sách Chú thích phần mở rộng.
Tin nhắn văn bản
Trong ví dụ này, hành động publish
sẽ xuất bản một thông báo dưới dạng chuỗi đơn giản tới một chủ đề được chỉ định trong cấu hình của tiện ích. Thao tác publish
sẽ trả về mã nhận dạng của thông báo đã đăng trong chủ đề mà thông báo được xuất bản và ghi thông tin đó vào biến do thẻ <Output>
chỉ định:
<?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>
Chính sách Chỉ định thông báo sau đây sử dụng giá trị của biến lưu trữ phản hồi của tiện ích để chỉ định tải trọng phản hồi. Mã thông báo được lưu trữ trong thuộc tính messageId
của biến đầu ra:
<?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>
Dữ liệu phản hồi được trả về dưới dạng JSON:
{"messageId":"165918654986954"}
Do đó, giá trị của topic.message.messageId
là 165918654986954.
Thông báo JSON
Trong ví dụ này, hành động publish
sẽ xuất bản một thông báo dưới dạng JSON cho một chủ đề được chỉ định trong cấu hình của tiện ích. Thao tác publish
sẽ trả về mã nhận dạng của thông báo đã đăng trong chủ đề mà thông báo được xuất bản và ghi thông tin đó vào biến do thẻ <Output>
chỉ định:
<?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>
Chính sách Chỉ định thông báo sau đây sử dụng giá trị của biến lưu trữ phản hồi của tiện ích để chỉ định tải trọng phản hồi. Mã thông báo được lưu trữ trong thuộc tính messageId
của biến đầu ra:
<?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>
Dữ liệu phản hồi được trả về dưới dạng JSON:
{"messageId":"165918654986954"}
Do đó, giá trị của topic.message.messageId
là 165918654986954.
Thao tác
publish
Xuất bản một thông báo theo chủ đề được chỉ định trong cấu hình của tiện ích này.
Cú pháp
<Action>publish</Action>
<Input><![CDATA[{
"message" : "message-to-publish" | JSON-structured-data,
"customAttributes": JSON-array
}]]></Input>
Ví dụ về chuỗi
<Action>publish</Action>
<Input><![CDATA[
{
"message" : "My test message."
}
]]></Input>
Ví dụ về dữ liệu có cấu trúc JSON
<Action>publish</Action>
<Input><![CDATA[
{
"message" : { "info" : "My test message" }
}
]]></Input>
Ví dụ về thuộc tính tùy chỉnh
<Action>publish</Action>
<Input><![CDATA[
{
"message" : { "info" : "My test message" },
"customAttributes": {"attr1": "foo", "attr2": "bar"}
}
]]></Input>
Thông số yêu cầu
Thông số | Nội dung mô tả | Loại | Mặc định | Bắt buộc |
---|---|---|---|---|
tin nhắn | Thông báo cần xuất bản. Bạn có thể sử dụng một chuỗi đơn giản hoặc dùng cấu trúc cho thông điệp bằng JSON do bạn thiết kế. | Chuỗi hoặc JSON | Không có | Có |
customAttributes | Các thuộc tính tuỳ chỉnh cần thêm vào thư trong biểu mẫu: "customAttributes": {"attr1": "foo", "attr2": "bar"} . |
Mảng JSON | Không có | Không |
Phản hồi
Tệp JSON chứa mã nhận dạng của thông báo là đã xuất bản cho chủ đề. Ví dụ:
{"messageId":"165918654986954"}
Tài liệu tham khảo về cấu hình
Sử dụng các đoạn mã sau khi bạn định cấu hình và triển khai tiện ích này để sử dụng trong các proxy API.
Thuộc tính tiện ích phổ biến
Các thuộc tính sau có sẵn cho mỗi tiện ích.
Tài sản | Mô tả | Mặc định | Bắt buộc |
---|---|---|---|
name |
Tên mà bạn đang đặt cho cấu hình của tiện ích này. | Không có | Có |
packageName |
Tên của gói tiện ích do Apigee Edge cung cấp. | Không có | Có |
version |
Số phiên bản của gói tiện ích mà bạn đang định cấu hình tiện ích. | Không có | Có |
configuration |
Giá trị cấu hình cụ thể cho tiện ích bạn đang thêm. Xem Thuộc tính cho gói tiện ích này | Không có | Có |
Các thuộc tính cho gói tiện ích này
Tài sản | Nội dung mô tả | Mặc định | Bắt buộc |
---|---|---|---|
topic |
Chủ đề sẽ xuất bản. Nhận giá trị này từ dịch vụ Pub/Sub, chẳng hạn như từ bảng điều khiển GCP cho dịch vụ này. Ví dụ: tên chủ đề có thể có dạng projects/GCP-PROJECT-ID/topics/TOPIC-NAME |
Không nội dung nào. | Có. |
credentials |
Khi được nhập vào bảng điều khiển Apigee Edge, đây là nội dung của tệp khoá tài khoản dịch vụ của bạn. Khi được gửi qua API quản lý, giá trị này là giá trị được mã hoá base64 từ tệp khoá tài khoản dịch vụ. | Không nội dung nào. | Có. |