Google Cloud Pub/Sub
publisher, subscriber, topic
subscriptionを試す
例えば、logsink-subというsubscribeがあるとして(topicsをつくって Google Cloud loggingから publishしたイメージ)、
gcloud pubsub subscriptions pull logsink-sub --format=json|jq '.[0]|.message.data'|tr -d '"'|base64 --decode|jq .
jsonで出力して、最初のmessage(デフォルトで1つのmessageを返す , gcloudコマンド)の
jqで、message.dataを 出して、
trで double quoteを除いて、
base64でdecode
フィルタ
pull サブスクリプションと push サブスクリプションにはフィルタを含めることができます
正常を返しておかずに、retryが続くと、subscription側で課金が膨れ上がる可能性があるので、注意。pub/subの通信量(スループット)もあがるけど。
コスト
スループット(パブリッシュ、サブスクライブのデータ通過量)
ストレージ
未確認状態であれば、最大7日間は無料
確認済みも保持すれば課金対象。
サブスクリプションのスナップショットでの未確認も課金対象
下り料金
リージョン間通信も下り
pubsub Liteを使えばやすい。
1region service
スループット量は事前予約
いつか検討する。
個々のサブスクリプションに確認済みメッセージを保持すると、
サブスクリプション オーナーに対しては最も柔軟に対応できますが、通常これは最も高価な保存方法です。
最も費用がかからない保存方法はトピック保持です。
トピックに対して保持されるメッセージは、トピックに結び付けられたすべてのサブスクリプションで、サブスクリプションごとに追加料金なし
また、スナップショットも、1 つのスナップショットが複数のサブスクリプションで使用できるため、経済的オプションになります。
参考:
メッセージングということで、当然1:N(ファンアウト)、N:1(ファンイン)、N:Nなどの通信が可能です
今回のメッセージスキーマ機能を用いると、Publisher側が明らかに契約違反のメッセージを連携した場合に早期にNGを返すことができる
2つのpython libraryについて
回答は、参考になるが、自分の頭で整理しきれてない。
統合されてると考えていいのかな。
futureの使い方で、
callbackで処理するのは書けるけど、スキル不足で、それ以上がうまく書けなさそう。
エラー処理とか、、
cancelとか、、timeout時?