この Topic では、Terraform を使用してバケットを作成し、静的 Web サイトホスティング、ロギング、ライフサイクルルールなどのプロパティを設定する方法について説明します。
このチュートリアルのサンプルコードは、ワンクリックで実行できます。今すぐ実行
前提条件
Alibaba Cloud アカウントと AccessKey ペアが作成されていること。Alibaba Cloud 管理コンソールの AccessKey ペアページに移動して、AccessKey ペアを作成または表示できます。
Terraform がインストールされ、設定されていること。詳細については、「ローカル PC に Terraform をインストールして設定する」および「Cloud Shell」をご参照ください。
手順
バケットを作成します。
terraform.tf ファイルを作成し、次の内容を入力して、現在の作業ディレクトリにファイルを保存します。
説明各 Terraform プロジェクトごとに個別の作業ディレクトリを作成します。
説明このサンプルコードは、ワンクリックで実行できます。今すぐ実行
provider "alicloud" { alias = "bj-prod" region = "cn-beijing" } resource "random_uuid" "default" {} resource "alicloud_oss_bucket" "bucket-new" { storage_class = "Standard" bucket = "bucket-auto-2024${random_uuid.default.id}" } resource "alicloud_oss_bucket_acl" "default" { bucket = alicloud_oss_bucket.bucket-new.bucket acl = "public-read" } output "buckname"{ value = alicloud_oss_bucket.bucket-new.bucket }terraform apply コマンドを実行します。次の出力のようなログは、バケットが作成されたことを示します。
説明OSS バケット名はグローバルに一意である必要があります。
ErrorCode=BucketAlreadyExistsエラーが返された場合、バケット名はすでに使用されています。名前を変更してリトライしてください。alicloud_oss_bucket.bucket-new: Creating... alicloud_oss_bucket.bucket-new: Creation complete after 2s [id=bucket-20200310-1] Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
バケットのプロパティを設定します。
resource.tf ファイルを作成し、次の内容を入力して、現在の作業ディレクトリにファイルを保存します。
説明Terraform は、ディレクトリ内のすべての .tf ファイルを自動的にロードします。必要に応じて、設定情報を異なるファイルに書き込むことができます。
resource "alicloud_oss_bucket" "bucket-attr" { provider = alicloud.bj-prod bucket = "bucket-2-${random_uuid.default.id}" # 静的 Web サイトのデフォルトのホームページと 404 ページ website { index_document = "index.html" error_document = "error.html" } # アクセスログが保存されるパス logging { target_bucket = alicloud_oss_bucket.bucket-new.id target_prefix = "log/" } # オブジェクトのライフサイクルルール lifecycle_rule { id = "expirationByDays" prefix = "path/expirationByDays" enabled = true expiration { days = 365 } } # ホットリンク保護設定 referer_config { allow_empty = true referers = ["http://www.aliyun.com", "https://www.aliyun.com", "http://?.aliyun.com"] } }terraform apply コマンドを実行して、バケットのプロパティを設定します。次の出力のようなログは、プロパティが設定されたことを示します。
alicloud_oss_bucket.bucket-attr: Creating... alicloud_oss_bucket.bucket-attr: Creation complete after 2s [id=bucket-20200310-2] Apply complete! Resources: 1 added, 0 changed, 0 destroyed.