Closed2
TerraformでCloud StorageのCORSとかバックアップとかを設定する
毎回似たような設定をしているのでメモしておく。
TerraformのGoogle Cloud Storageについてのドキュメントはこちら
以下のような設定を行う。バケット名とクライアントのURLを変数として渡すことで、本番環境とステージング環境などで同一の設定が適用されるようにしている。
resource "google_storage_bucket" "foo-bar" {
name = var.bucket_name # バケット名をここに
location = "ASIA-NORTHEAST1" # リージョンをここに
storage_class = "STANDARD"
# CORS設定
# 署名付きURLを使ってブラウザから直接ファイルをアップロードする場合に必要
cors {
origin = [var.client_url] # クライアントのURL
method = ["GET", "POST", "PUT", "DELETE"] # 必要に応じて書き換え
response_header = ["Content-Type", "Access-Control-Allow-Origin"] # 必要に応じて書き換え
max_age_seconds = 3600
}
# オブジェクトのバージョニングを有効にする。
# これによりオブジェクトが上書き or 削除されるたびに
# Cloud Storage によってオブジェクトのアーカイブ済みバージョンが作成される(バックアップ)
versioning {
enabled: true
}
# 古いバージョンは削除するようにしておく(新しいバージョンを1つだけ残す)
lifecycle_rule {
action {
type = "Delete"
}
condition {
num_newer_versions: 2
with_state: "ARCHIVED"
}
}
}
このスクラップは2022/05/19にクローズされました