TIPCommon.adapters
class TIPCommon.adapters.pubsub.pubsub.PubSubAdapter
類別 TIPCommon.adapters.pubsub.pubsub.PubSubAdapter(session, project_id=None, logger=None, region=None)
基地:object
用於管理 Google Cloud 專案 Pub/Sub 主題和訂閱項目的介面卡類別。
ack
ack(sub_name, ack_ids)
確認 PubSubAdapter.pull() 傳回的 AcknowledgeRequest 回應中,與 ackIds 相關聯的訊息。
| 參數 | |
|---|---|
sub_name |
str訂閱項目名稱。 |
ack_ids |
list[str]
要確認的訊息確認 ID 清單。Pub/Sub 系統會在 |
static build_pubsub_message
static build_pubsub_message(message_content, encoding='utf-8', ordering_key=None, **attr)
建立 PubSubMessage 物件。
| 參數 | |
|---|---|
message_content |
str
訊息內容。 |
encoding |
str
用於編碼或解碼訊息文字的編碼類型。 預設值為 |
ordering_key |
str
選填。 如果已設定,這個參數會識別所有相關訊息,這些訊息必須遵循發布順序。 |
**attr |
str
選填。 要以訊息物件屬性形式傳遞的屬性。 |
傳回
TIPCommon.adapters.pubsub.PubSubMessage 物件。
傳回類型
create_subscription
create_subscription(sub_name, topic, **attr)
為指定主題建立 Pub/Sub 訂閱項目。
| 參數 | |
|---|---|
sub_name |
str
訂閱項目名稱。 |
topic |
str
要建立訂閱項目的 Pub/Sub 主題名稱。 |
**attr |
要傳遞至訂閱要求的其他參數。 |
傳回
所建立訂閱項目的 TIPCommon.adapters.pubsub.Subscription 物件。
傳回類型
Subscription
create_topic
create_topic(topic_name)
在 Google Cloud 專案中建立 Pub/Sub 主題。
| 參數 | |
|---|---|
topic_name |
str
主題名稱。 名稱必須符合 Google Cloud 資源名稱規則。 |
傳回
所建立主題的 TIPCommon.adapters.pubsub.Topic 物件。
傳回類型
Topic
delete_subscription
delete_subscription(sub_name)
從 Google Cloud 專案中刪除 Pub/Sub 訂閱項目。
| 參數 | |
|---|---|
sub_name |
str
要移除的訂閱項目名稱。 |
delete_topic
delete_topic(topic_name)
從 Google Cloud 專案中刪除 Pub/Sub 主題。
| 參數 | |
|---|---|
topic_name |
str要移除的主題。 |
from_credentials static
static from_credentials(credentials, project_id=None, verify_ssl=True, quota_project=None, logger=None, region=None)
從 google.oauth2.credentials.Credentials 物件建立 PubSubAdapter 物件。
| 參數 | |
|---|---|
credentials |
google.oauth2.credentials.Credentials
|
project_id |
選填。
專案 ID。 Google Cloud 如未提供,函式預設會嘗試使用憑證物件中設定的專案。 |
verify_ssl |
選填。
指定是否為 HTTP 工作階段啟用 SSL 憑證驗證。 |
quota_project |
選填。
用於配額和帳單的專案。 |
logger |
選填。
|
region |
str
Pub/Sub 的運作區域。 |
傳回
PubSubAdapter 物件。
傳回類型
from_service_account_info 的 static
static subscription_name(user_service_account, project_id=None, verify_ssl=True, quota_project=None, logger=None)
從 service_account JSON 建立 PubSubAdapter 物件。
| 參數 | |
|---|---|
user_service_account |
str
文字格式的 Google Cloud 服務帳戶 JSON。 |
project_id |
選填。
專案 ID。 Google Cloud 如未提供,函式預設會嘗試使用憑證物件中設定的專案。 |
verify_ssl |
選填。
指定是否為 HTTP 工作階段啟用 SSL 憑證驗證。 |
quota_project |
選填。
用於配額和帳單的專案。 |
logger |
選填。
|
傳回
PubSubAdapter 物件。
傳回類型
get_subscription
get_subscription(sub_name, topic=None, create_if_not_exist=False, **attr)
擷取 Pub/Sub 訂閱項目。
| 參數 | |
|---|---|
sub_name |
str
訂閱項目名稱。 |
topic |
str
要建立訂閱項目的 Pub/Sub 主題名稱。 如果 |
create_if_not_exist |
如果 Google Cloud 中沒有 Pub/Sub 訂閱項目,則會建立該項目。 |
**attr |
要傳遞至訂閱項目建立要求的其他參數。 |
傳回
擷取訂閱項目的 TIPCommon.adapters.pubsub.Subscription 物件。
傳回類型
Subscription
get_topic
get_topic(topic_name, create_if_not_exist=False)
從已設定的 Google Cloud專案擷取 Pub/Sub 主題物件。
| 參數 | |
|---|---|
topic_name |
str主題名稱 (簡化版,不含 |
create_if_not_exist |
boolCreates the Pub/Sub topic in Google Cloud if it doesn't exist. |
傳回
接收到的主題的 TIPCommon.adapters.pubsub.Topic 物件。
傳回類型
Topic
patch_subscription
patch_subscription(sub_name, topic_name, push_config=None, bigquery_config=None, cloud_storage_config=None, ack_deadline_seconds=None, retain_acked_messages=None, retention_duration=None, labels=None, enable_message_ordering=None, expiration_policy=None, query_filter=None, dead_letter_policy=None, return_policy=None, detached=None, enable_once_delivery=None)
更新現有訂閱項目。
| 參數 | |
|---|---|
sub_name |
str訂閱項目名稱。 |
topic_name |
str訂閱項目接收訊息的主題名稱。 |
push_config |
dict選用。推送傳送端點的設定。 |
bigquery_config |
dict選用。BigQuery 訂閱項目的設定。 |
cloud_storage_config |
dict選用。Cloud Storage 訂閱項目的設定。 |
ack_deadline_seconds |
int選用。Pub/Sub 大約會等待多久時間,才會重新傳送訊息給訂閱者,請訂閱者確認收到訊息。 |
retain_acked_messages |
bool選用。指出是否要保留已確認的訊息。 |
retention_duration |
str選用。從訊息發布當下起算,在訂閱項目的待處理事項中保留未確認訊息的時間長度。 |
labels |
dict選用。用來整理訂閱項目的鍵/值組合。 |
enable_message_ordering |
bool選用。如果 |
expiration_policy |
dict選用。這項訂閱方案的到期條件政策。 |
query_filter |
str選用。以 Pub/Sub 篩選器語言撰寫的運算式,用於指定要傳送至訂閱項目的訊息。 |
dead_letter_policy |
dict選用。這項政策會指定此訂閱項目中無效信件的條件。 |
return_policy |
dict選用。指定訊息退回條件的政策。 |
detached |
bool選用。指出訂閱項目是否已從主題卸離。 |
enable_once_delivery |
bool選用。如果 |
傳回
收到的訂閱項目 TIPCommon.adapters.pubsub.Subscription 物件。
傳回類型
Subscription
patch_topic
patch_topic(topic_name, labels=None, message_storage_policy=None, kms_key_name=None, schema_settings=None, satisfies_pzs=None, retention_duration=None)
更新現有主題。
| 參數 | |
|---|---|
topic_name |
str主題名稱。 |
labels |
dict選用。用來整理主題的鍵/值組合。 |
message_storage_policy |
dict選用。這項政策會限制訊息儲存的靜態區域。 |
kms_key_name |
str選用。Cloud Key Management Service CryptoKey 的資源名稱,用於保護發布至這個主題的訊息。 |
schema_settings |
dict選用。用來驗證訊息是否符合結構定義的設定。 |
satisfies_pzs |
bool選用。保留供日後使用。如果主題符合實體可用區分隔規定,這個欄位會設為 |
retention_duration |
str選用。發布的訊息在主題中保留的時間長度。如果已設定,系統會保留訊息一段時間,不受任何訂閱設定影響。 |
傳回
接收到的主題的 TIPCommon.adapters.pubsub.Topic 物件。
傳回類型
Topic
publish
publish(topic_name, messages)
將 PubSubMessage 物件清單發布至主題。
| 參數 | |
|---|---|
topic_name |
str訊息發布的目標主題名稱。 |
messages |
list包含
|
傳回
訊息 ID 清單。
傳回類型
list[str]
提取
pull(sub_name, limit, timeout=60, encoding='utf-8')
從 Pub/Sub 訂閱項目提取訊息。
| 參數 | |
|---|---|
sub_name |
str訂閱項目名稱。 |
limit |
int這項要求傳回的訊息數量上限。 |
timeout |
intHTTP 要求逾時時間 (以秒為單位)。 預設值為 |
encoding |
strPub/Sub 訊息編碼。 預設值為 |
傳回
TIPCommon.adapters.pubsub.ReceivedMessage 物件的清單。
傳回類型
ReceivedMessage
static subscription_name
static subscription_name(project_id, sub_name)
以「projects/{project_id}/subscriptions/{subscription_id}」格式擷取完整訂閱項目名稱。projects/project_id/topics/topic_name
| 參數 | |
|---|---|
project_id |
str包含資源的專案名稱。 |
sub_name |
strPub/Sub 訂閱項目名稱。 |
傳回
完整訂閱項目名稱,格式如下:
projects/project_id/topics/topic_name。
傳回類型
str
static topic_name
static topic_name(project_id, topic)
以 projects/project_id/topics/topic_name 格式擷取完整主題名稱。
| 參數 | |
|---|---|
project_id |
str包含資源的專案名稱。 |
topic |
strPub/Sub 主題名稱。 |
傳回
完整主題名稱:
projects/project_id/topics/topic_name。
傳回類型
str
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。