Terraform を使用して Container Registry Enterprise Edition インスタンスを作成します。
このサンプルコードはワンクリックで実行できます。サンプルコードを実行
前提条件
-
Alibaba Cloud ルートアカウントには全リソースへのアクセス許可があり、認証情報が漏洩した場合にセキュリティリスクが生じるため、直接使用しないでください。代わりに、RAM ユーザーを作成し、アクセスキーペアを作成します。
-
RAM ユーザーに Container Registry を管理するための AliyunContainerRegistryFullAccess アクセス許可を付与します。RAM ユーザーへのアクセス許可の付与。
{ "Version": "1", "Statement": [ { "Action": "cr:*", "Resource": "*", "Effect": "Allow" }, { "Action": "bss:*", "Resource": "*", "Effect": "Allow" } ] } -
次のいずれかの方法を使用して、Terraform ランタイム環境をセットアップします。
-
Terraform Explorer: Terraform コマンドを実行するための無料のオンライン環境です。クイックデバッグや試用に最適です。
-
Terraform を使用したリソースのクイック作成: Cloud Shell には Terraform がプリインストールされており、認証情報が事前に設定されています。
-
ローカルマシンへの Terraform のインストールと設定: ネットワーク環境が不安定な場合やカスタム開発環境に最適です。
重要Terraform v0.12.28 以降が必要です。
terraform --versionを実行して確認してください。 -
Terraform を使用したインスタンスの作成
この例では、Container Registry Enterprise Edition インスタンスを作成します。
-
main.tfという名前の設定ファイルを含む作業ディレクトリを作成します。main.tfファイルは、デプロイするリソースを定義します。次の表では、パラメータについて説明します。パラメータ
必須
説明
例
payment_type
いいえ
課金方法。
Subscription
period
いいえ
サブスクリプション期間 (月単位)。有効な値:1、2、3、6、12、24、36、48、60。年間サブスクリプションの場合は、12 の倍数を使用します。
説明renewal_statusをAutoRenewalに設定する場合、この値は 0 より大きい必要があります。それ以外の場合、自動更新は失敗します。1
renew_period
いいえ
自動更新期間 (月単位)。年間サブスクリプションの場合は、12 の倍数を使用します。
1
renewal_status
いいえ
自動更新ステータス。有効な値:
-
AutoRenewal: インスタンスを自動更新します。
-
ManualRenewal: 手動更新が必要です。
デフォルト値は
ManualRenewalです。AutoRenewal
instance_type
はい
インスタンスタイプ。有効な値:
-
Basic: Basic Edition。
-
Advanced: Advanced Edition。
Advanced
instance_name
はい
インスタンス名。
この例では、
var.name変数を使用します。variable "region" { default = "cn-heyuan" } provider "alicloud" { region = var.region } variable "name" { default = "tf-example" } resource "alicloud_cr_ee_instance" "default" { payment_type = "Subscription" period = 1 renew_period = 1 renewal_status = "AutoRenewal" instance_type = "Advanced" instance_name = var.name } -
-
Terraformランタイム環境を初期化します。terraform init成功時の出力例:
Initializing the backend... Initializing provider plugins... - Finding latest version of hashicorp/alicloud... - Installing hashicorp/alicloud v1.234.0... - Installed hashicorp/alicloud v1.234.0 (signed by HashiCorp) Terraform has created a lock file .terraform.lock.hcl to record the provider selections it made above. Include this file in your version control repository so that Terraform can guarantee to make the same selections by default when you run "terraform init" in the future. Terraform has been successfully initialized! You may now begin working with Terraform. Try running "terraform plan" to see any changes that are required for your infrastructure. All Terraform commands should now work. If you ever set or change modules or backend configuration for Terraform, rerun this command to reinitialize your working directory. If you forget, other commands will detect it and remind you to do so if necessary. -
実行計画で変更をプレビューします。
terraform plan -
Container Registry Enterprise Edition インスタンスを作成します。
terraform applyプロンプトが表示されたら、
yesと入力し、 [Enter] キーを押します。成功時の出力例:Plan: 1 to add, 0 to change, 0 to destroy. Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yes alicloud_cr_ee_instance.default: Creating... alicloud_cr_ee_instance.default: Still creating... [10s elapsed] alicloud_cr_ee_instance.default: Still creating... [20s elapsed] alicloud_cr_ee_instance.default: Still creating... [31s elapsed] alicloud_cr_ee_instance.default: Still creating... [41s elapsed] alicloud_cr_ee_instance.default: Still creating... [51s elapsed] alicloud_cr_ee_instance.default: Still creating... [1m1s elapsed] alicloud_cr_ee_instance.default: Still creating... [1m11s elapsed] alicloud_cr_ee_instance.default: Still creating... [1m21s elapsed] alicloud_cr_ee_instance.default: Still creating... [1m31s elapsed] alicloud_cr_ee_instance.default: Still creating... [1m41s elapsed] alicloud_cr_ee_instance.default: Still creating... [1m51s elapsed] alicloud_cr_ee_instance.default: Still creating... [2m1s elapsed] alicloud_cr_ee_instance.default: Creation complete after 2m9s [id=cri-4bsyebi*****] Apply complete! Resources: 1 added, 0 changed, 0 destroyed. -
結果を確認します。
Terraform show コマンド
管理されているリソースを表示します。
terraform showshell@Alicloud:~/ens/rongqi$ terraform show # alicloud_cr_ee_instance.default: resource "alicloud_cr_ee_instance" "default" { created_time = "2024-11-21T03:16:00Z" end_time = "2024-12-21T16:00:00Z" id = "xxx" instance_name = "tf-example" instance_type = "Advanced" payment_type = "Subscription" period = 1 renew_period = 1 renewal_status = "AutoRenewal" status = "RUNNING" }コンソールでの確認
Container Registry コンソールにログインします。 [Instance List] ページで、 [tf-example] のステータスが [Running] で、仕様が [Advanced Edition] であることを確認します。
リソースのクリーンアップ
Terraform はサブスクリプションベースの Container Registry インスタンスを解放できません。 terraform destroy コマンドは、state ファイルからリソースを削除しますが、サブスクリプションを終了しません。追加料金が発生しないように、コンソールでインスタンスを手動で解約してください。
完全な例
このサンプルコードはワンクリックで実行できます。サンプルコードを実行
製品固有の例については、「クイックスタート」をご覧ください。サポートされているすべてのパラメータは、「パラメータの説明」の表に記載されています。
コード例
参照情報
-
Container Registry Enterprise Edition インスタンスを作成するための Terraform リソース: alicloud_cr_ee_instance。