Google Cloud Pub/Sub
#Pub/Sub #GCP_Dataflow #pub/sub_snapshot
Pub/Sub とは  |  Cloud Pub/Sub ドキュメント  |  Google Cloud
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
jqで表示
フィルタ
メッセージをフィルタする  |  Cloud Pub/Sub  |  Google Cloud
pull サブスクリプションと push サブスクリプションにはフィルタを含めることができます
Cloud RunをCloud PubSubと組み合わせて無料枠の範囲でお試しで使うつもりが一瞬で課金発生してヒヤッとした話 - Qiita
正常を返しておかずに、retryが続くと、subscription側で課金が膨れ上がる可能性があるので、注意。pub/subの通信量(スループット)もあがるけど。
コスト
スループット(パブリッシュ、サブスクライブのデータ通過量)
ストレージ
未確認状態であれば、最大7日間は無料
確認済みも保持すれば課金対象。
サブスクリプションのスナップショットでの未確認も課金対象
下り料金
リージョン間通信も下り
pubsub Liteを使えばやすい。
1region service
スループット量は事前予約
いつか検討する。
料金  |  Cloud Pub/Sub  |  Google Cloud
個々のサブスクリプションに確認済みメッセージを保持すると、
サブスクリプション オーナーに対しては最も柔軟に対応できますが、通常これは最も高価な保存方法です。
最も費用がかからない保存方法はトピック保持です。
トピックに対して保持されるメッセージは、トピックに結び付けられたすべてのサブスクリプションで、サブスクリプションごとに追加料金なし
また、スナップショットも、1 つのスナップショットが複数のサブスクリプションで使用できるため、経済的オプションになります。
参考:
Apache Kafka & Google Cloud Pub/Sub 主要機能の比較
Cloud IoT Core  |  Google Cloud Platform GCP IoTCore
Apache Kafka
Google Cloud PlatformのPub/SubからDataflow経由でBigQueryにデータを流す。 - Qiita
PubSubのメッセージスキーマを試してみる | フューチャー技術ブログ
メッセージングということで、当然1:N(ファンアウト)、N:1(ファンイン)、N:Nなどの通信が可能です
今回のメッセージスキーマ機能を用いると、Publisher側が明らかに契約違反のメッセージを連携した場合に早期にNGを返すことができる
スキーマの作成と管理  |  Cloud Pub/Sub ドキュメント  |  Google Cloud
2つのpython libraryについて
What is the difference between google.cloud.pubsub_v1 and google.cloud.pubsub? - Stack Overflow
回答は、参考になるが、自分の頭で整理しきれてない。
統合されてると考えていいのかな。
futureの使い方で、
callbackで処理するのは書けるけど、スキル不足で、それ以上がうまく書けなさそう。
エラー処理とか、、
cancelとか、、timeout時?
google-cloud-pubsub · PyPI
#gcp