【GCP】CloudStorageにファイルが入ったらPub/Subに通知をする設定の仕方
わたしへ
どうせまた公式ドキュメントの場所から忘れるんでしょう
わたしより
とにかくここを読め。
Pub/Sub Notifications for Cloud Storage の使用法 | Google Cloud
準備
・Pub/Subにトピック立てる権限とメッセージパブリッシュする権限を貰っておく
・監視するバケットに対するstorage.buckets.update 権限を貰っておく
設定する
gsutil notification create -t [TOPIC_NAME] -f json gs://[BUCKET_NAME]
TOPIC-NAMEは既存のものでも新規でもOK。新規トピック名を指定すると自動的にトピックが作成される。
設定されたか確認する
gsutil notification list gs://[BUCKET_NAME]
その他細かいことは公式ドキュメントを読む。
メッセージはこんな感じで届く
属性キー:
bucketId(バケット名が入ってくる)
eventTime
eventType
notificationConfig
objectGeneration
objectId(ファイル名が入ってくる)
payloadFormat
本文:
{
"kind": "storage#object",
"id": "[BUCKET-NAME]/test.txt/[GENERATION(16桁の数字)]",
"selfLink": "https://www.googleapis.com/storage/v1/b/[BUCKET-NAME]/o/test.txt",
"name": "test.txt",
"bucket": "[BUCKET-NAME]",
"generation": "[GENERATION(16桁の数字)]",
"metageneration": "1",
"contentType": "text/plain",
"timeCreated": "2020-08-25T02:59:35.884Z",
"updated": "2020-08-25T02:59:35.884Z",
"storageClass": "STANDARD",
"timeStorageClassUpdated": "2020-08-25T02:59:35.884Z",
"size": "5",
"md5Hash": "[MD5-HASH]",
"mediaLink": "https://www.googleapis.com/download/storage/v1/b/[BUCKET-NAME]/o/test.txt?generation=[GENERATION(16桁の数字)]&alt=media",
"crc32c": "[CRC32C]",
"etag": "[ETAG]"
}
とりあえずこれでバケット名とblobの名前取れるので、後はfunction側でstorageにアクセスしにいけばOK。
この記事が気に入ったらサポートをしてみませんか?