このトピックでは、Terraform を使用して Container Registry Enterprise Edition インスタンスを作成する方法について説明します。
前提条件
Terraform がインストールおよび構成されていること。
このトピックのサンプルコードを実行するには、数回クリックするだけです。
前提条件
Alibaba Cloud アカウントは、このアカウントに属するすべてのリソースに対するフル 権限 を持っている必要があります。Alibaba Cloud アカウントの資格情報が漏洩した場合、セキュリティリスクが発生する可能性があります。Resource Access Management(RAM)ユーザーを使用し、RAM ユーザーの AccessKey ペアを作成することをお勧めします。詳細については、「RAM ユーザーを作成する」および「AccessKey ペアを作成する」をご参照ください。
RAM ユーザーが Container Registry リソースを管理できるようにする AliyunContainerRegistryFullAccess 権限 ポリシーが、RAM ユーザーにアタッチされていること。詳細については、「RAM ユーザーに権限を付与する」をご参照ください。
{ "Version": "1", "Statement": [ { "Action": "cr:*", "Resource": "*", "Effect": "Allow" }, { "Action": "bss:*", "Resource": "*", "Effect": "Allow" } ] }Terraform の実行環境は、次のいずれかの方法で準備します。
Terraform Explorer で Terraform を使用する: Alibaba Cloud は、Terraform のオンライン実行環境である Terraform Explorer を提供しています。Terraform をインストールする必要なく、Terraform Explorer にログインした後に Terraform を使用できます。この方法は、追加費用なしで Terraform を迅速かつ便利に使用およびデバッグしたい場合に適しています。
Cloud Shell で Terraform を使用する: Terraform は Cloud Shell にプリインストールされており、ID 資格情報は構成されています。Cloud Shell で Terraform コマンドを直接実行できます。この方法は、低コストで Terraform を迅速かつ便利に使用およびデバッグしたい場合に適しています。
オンプレミス マシンに Terraform をインストールして構成する: この方法は、ネットワーク 接続 が不安定な場合、またはカスタム開発環境が必要な場合に適しています。
Terraform 0.12.28 以降をインストールする必要があります。terraform --version コマンドを実行して、Terraform のバージョンを照会できます。
この例では、コンテナーリソースに対して課金されます。不要になったら、リソースのサブスクリプションを解除してください。
必要なリソース
alicloud_cr_ee_instance: Container Registry インスタンスリソースを作成します。
Terraform を使用して Container Registry Enterprise Edition インスタンスを作成する
次の例は、Terraform を使用して Container Registry Enterprise Edition インスタンスを作成する方法を示しています。
作業ディレクトリと、そのディレクトリに
main.tfという名前の構成ファイルを作成します。main.tf は Terraform のメインファイルであり、デプロイするリソースを定義します。次の表に、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次の情報が返された場合、Terraform は初期化されています。
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 によって作成されたリソースを照会します。
terraform show
Container Registry コンソールにログインする
Container Registry コンソール にログインして、すべての Container Registry インスタンスを表示できます。

リソースのクリーンアップ
サブスクリプション課金方法を使用する Container Registry インスタンスのサブスクリプションを Terraform を使用して解除することはできません。terraform destroy コマンドを実行した後、リソースはステータスファイルから削除されます。その後、Container Registry コンソールにログインして、Container Registry インスタンスのサブスクリプションを適時に解除してください。
サンプルコード
サンプルコードを実行するには、数回クリックするだけです。
さらにサンプルコードを表示する場合は、Quickstarts ページの対応するサービスのディレクトリにアクセスしてください。インスタンスパラメーターの詳細については、「パラメーターの説明」をご参照ください。