Closed2

TerraformでCloud StorageのCORSとかバックアップとかを設定する

catnosecatnose

以下のような設定を行う。バケット名とクライアントの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にクローズされました