#ミッション
以前、Cloud Storageにアップされたファイルを検知してCloud Functionsを実行を記載しましたが、
どこからかプルしたいので、その通知をTopicにプールしておきたくなりました。
#作戦
いわゆるGCPコンソールでできる設定はワンボタンで出る通常技のようなもので、
立ち回りで勝っている案件なら充分ですが、少し込み入ったものになると物足りなく思うことがあります。
そもそもがあくまでGCPコンソールはその機能は日々増えているとはいえ、管理ツールなので、
より細かい設定はコマンドでできることがあります。
実はCloud StorageからTopic通知もその一つで、
コンソールからはできないけど(2021/12現在)、特殊技(コマンド)で設定できます。
アップ通知とその場所だけが必要でそれをプールしておきたい場合、便利ですね。
立ち回りを強化するためにぜひ習得しておきたい技術ですね。
#実行
コマンドは以下です。
gsutil notification create -f json -t sample-topic -e OBJECT_FINALIZE -p path/ gs://sample-log
「gs://sample-log/path/」にアップされたファイルを
「sample-topic」に通知してます。
送られるデータ内容は以下です。
{
"kind": "storage#object",
"id": "sample-log/sample/sample.log/1639472654343175",
"selfLink": "https://www.googleapis.com/storage/v1/b/sample-log/sample/sample.log",
"name": "sample/sample.log",
"bucket": "sample-log",
"generation": "1639472654343175",
"metageneration": "1",
"contentType": "application/octet-stream",
"timeCreated": "2021-12-14T09:04:14.348Z",
"updated": "2021-12-14T09:04:14.348Z",
"storageClass": "STANDARD",
"timeStorageClassUpdated": "2021-12-14T09:04:14.348Z",
"size": "2724327",
"md5Hash": "lVd13h0377Jg2hzM0OXo2w==",
"mediaLink": "https://www.googleapis.com/download/storage/v1/b/sample-log/sample/sample.log?generation=1639472654343175&alt=media",
"crc32c": "RCJMTQ==",
"etag": "CIe4ucn34vQCEAE="
}
bucketとnameからどこに上げられたのかわかります。
後はデータをダウンロードするなり、その後、加工するなりして、連続技につなげます。
現場からは以上です。