#実現してみたい構成
https://cloud.google.com/solutions/processing-marketing-submissions-using-video-intelligence?hl=ja
#公式ドキュメント
https://cloud.google.com/storage/docs/pubsub-notifications?hl=ja
#参考URL
https://qiita.com/hnw/items/b5d992f7bd2c64ee51a2
https://qiita.com/sinmetal/items/0438203034a0cb448448
https://qiita.com/t-yotsu/items/c6d3f6899a34caa60764
#参考記事
https://cloud.google.com/blog/ja/products/gcp/cloud-storage-introduces-cloud-pub-sub-notifications
#GCSにファイルを置いたら通知がくる設定
gsutil notification create -f json -t projects/PJ名/topics/example-topic gs://storage-lab-consle-mune
・上記のように入力すればOK
・topicsは入力すれば自動で作られる
・ストレージは作成済みのものを指定しないとエラーが出る
AccessDeniedException: 403 メアド does not have storage.buckets.get access to the Google Cloud Storage bucket.
・以下が成功メッセージ
Created Cloud Pub/Sub topic projects/PJ名/topics/example-topic
Created notification config projects/_/buckets/バケット名/notificationConfigs/3
・pub/subのトピックをみると作成されている
・-f jsonはJsonファイルで通知を受け取れますよということだと思う
・一度チュートリアルをやって基本はわかったので、以下の流れで試す。
https://qiita.com/Mune_robo/items/1f1046f8551cb2a7cebf
・storageを作成した時に作ったtopicにもメッセージは格納できる
gcloud pubsub topics publish トピック名 --message hello
gcloud pubsub topics publish example-topic --message hello
messageIds:
- 'xxxxxxxxxxxxxxxxxx'
格納された↑
gcloud pubsub subscriptions pull --auto-ack --limit=2 サブスクリプション名
┌───────┬──────────────────┬────────────┬──────────────────┐
│ DATA │ MESSAGE_ID │ ATTRIBUTES │ DELIVERY_ATTEMPT │
├───────┼──────────────────┼────────────┼──────────────────┤
│ hello │ 1558007170896672 │ │ │
└───────┴──────────────────┴────────────┴──────────────────┘
⇓
ということは、storageにいれた際のメッセージは上記でみれるはず。
storageにデータをいれたあと、上記のコマンドでみれた!
┌────────────────────────┬──────────────────┬──────────────────────────┬──────────────────┐
│ DATA │ MESSAGE_ID │ ATTRIBUTES │ DELIVERY_ATTEMPT │
│ { │ 1522743331216371 │ bucketId=xxxxxxxxxxxxxxx
〜〜〜〜
│ "etag": "xxxxxxxxxE="
pub/subとfunctionsの連携
・pubsub⇛トピック⇛functionsへのトリガー⇛functionsの設定画面に行く⇛とりあえずデフォルトで作成してみてしまう。
Functionsに関数が作成される。(少し時間がかかる。うまく連携できてないとエラーが出る。)
Storageにデータを格納して、Functions⇛ログを表示をみると格納したデータの詳細がみれる。
エラー
・app engine を起動して、pub/subのサブスクリプション作成からエンドポイントURLにapp engineのURLを入れたが、
エラーになって登録できなかった。
「エンドポイント URL が無効です」とのこと。
・gcloud beta pubsub subscriptions pull xxx
を打ったら以下のエラーが出た
ERROR: (gcloud.beta.pubsub.subscriptions.pull) HTTPError 404: