INTEGRITY Dokumentace

Vzdálený backend R2

Cloudflare R2 a Vzdálené backendy Terraformu ↗ mohou vzájemně spolupracovat, aby poskytly bezproblémovou správu stavu Terraformu.

Cloudflare R2 je služba objektového úložiště, která poskytuje vysoce dostupný, škálovatelný a zabezpečený způsob ukládání a doručování statického obsahu, jako jsou obrázky, videa a statické webové stránky. R2 má Kompatibilita s S3 API díky čemuž se snadno integruje se stávající cloudovou infrastrukturou a aplikacemi.

Předpoklady

Vytvoření bucketu R2

Použití Wrangler, API, nebo Account View Dashboard ↗ vytvořte R2 Bucket.

wrangler r2 bucket create <YOUR_BUCKET_NAME>
 curl https://api.cloudflare.com/client/v4/accounts/{account_id}/r2/buckets \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{"name": "<YOUR_BUCKET_NAME>"}'

Vytvoření API klíčů s omezeným rozsahem pro bucket

Dále budete muset vytvořit API token R2 s přístupem omezeným na bucket hodnotou Object Read & Write oprávnění. Token API vytvoříte takto:

  1. V Domovská stránka účtu, vyberte R2.
  2. V části Podrobnosti o účtu, vyberte Správa tokenů R2 API.
  3. Vyberte Vytvoření API tokenu ↗.
  4. Vyberte R2 Token text pro úpravu názvu API tokenu.
  5. V části Oprávnění, vyberte Object Read and Write oprávnění a poté omezte rozsah tokenu na <YOUR_BUCKET_NAME> bucket.
  6. Vyberte Create API Token.

Po úspěšném vytvoření tokenu zkontrolujte Secret Access Key a Access Key ID hodnoty.

Definice backendu R2

Aktualizujte cloudflare.tf soubor tak, aby obsahoval backend ↗ pro <YOUR_BUCKET_NAME> bucket, který jste vytvořili výše.

terraform {
  backend "s3" {
    bucket = "<YOUR_BUCKET_NAME>"
    key    = "/some/key/terraform.tfstate"
    region                      = "auto"
    skip_credentials_validation = true
    skip_metadata_api_check     = true
    skip_region_validation      = true
    skip_requesting_account_id  = true
    skip_s3_checksum            = true
    use_path_style              = true
    access_key = "<YOUR_R2_ACCESS_KEY>"
    secret_key = "<YOUR_R2_ACCESS_SECRET>"
    endpoints = { s3 = "https://<YOUR_ACCOUNT_ID>.r2.cloudflarestorage.com" }
  }
  required_providers {
    cloudflare = {
      source = "cloudflare/cloudflare"
      version = "~> 4"
    }
  }
}
provider "cloudflare" {
  # token pulled from $CLOUDFLARE_API_TOKEN
}
variable "account_id" { default = "<YOUR_ACCOUNT_ID>" }

Migrace souboru stavu do backendu R2

Po aktualizaci svého cloudflare.tf souboru můžete zadat terraform init -reconfigure příkaz pro migraci z místního stavu do vzdálený stav ↗.