← Cloudflare R2 / r2 / examples
Terraform (AWS)
Вы должны создать ключ доступа перед началом работы. Во всех примерах используется access_key_id и access_key_secret переменные, которые представляют Access Key ID и Secret Access Key значения, которые вы создали.
В этом примере показано, как настроить R2 с помощью Terraform, используя AWS provider ↗.
С terraform ↗ установлен:
- Создайте
main.tfфайл или отредактируйте существующую конфигурацию Terraform - Укажите URL конечной точки в
endpoints.s3с вашим Cloudflare account ID - Заполните
access_keyиsecret_keyс соответствующим Учётные данные R2 API. - Убедитесь, что
skip_region_validation = true,skip_requesting_account_id = true, а такжеskip_credentials_validation = trueзаданы в конфигурации провайдера.
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5"
}
}
}
provider "aws" {
region = "us-east-1"
access_key = <R2 Access Key>
secret_key = <R2 Secret Key>
# Required for R2.
# These options disable S3-specific validation on the client (Terraform) side.
skip_credentials_validation = true
skip_region_validation = true
skip_requesting_account_id = true
endpoints {
s3 = "https://<account id>.r2.cloudflarestorage.com"
}
}
resource "aws_s3_bucket" "default" {
bucket = "<org>-test"
}
resource "aws_s3_bucket_cors_configuration" "default" {
bucket = aws_s3_bucket.default.id
cors_rule {
allowed_methods = ["GET"]
allowed_origins = ["*"]
}
}
resource "aws_s3_bucket_lifecycle_configuration" "default" {
bucket = aws_s3_bucket.default.id
rule {
id = "expire-bucket"
status = "Enabled"
expiration {
days = 1
}
}
rule {
id = "abort-multipart-upload"
status = "Enabled"
abort_incomplete_multipart_upload {
days_after_initiation = 1
}
}
}Затем можно использовать terraform plan , чтобы просмотреть изменения и terraform apply чтобы применить изменения.