すべてのプロダクト
Search
ドキュメントセンター

Container Registry:Terraform を使用した Container Registry Enterprise Edition インスタンスの作成

最終更新日:Jun 03, 2026

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 v0.12.28 以降が必要です。 terraform --version を実行して確認してください。

Terraform を使用したインスタンスの作成

この例では、Container Registry Enterprise Edition インスタンスを作成します。

  1. main.tf という名前の設定ファイルを含む作業ディレクトリを作成します。 main.tf ファイルは、デプロイするリソースを定義します。次の表では、パラメータについて説明します。

    パラメータ

    必須

    説明

    payment_type

    いいえ

    課金方法。

    Subscription

    period

    いいえ

    サブスクリプション期間 (月単位)。有効な値:1、2、3、6、12、24、36、48、60。年間サブスクリプションの場合は、12 の倍数を使用します。

    説明

    renewal_statusAutoRenewal に設定する場合、この値は 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                   
    }
  2. 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.
  3. 実行計画で変更をプレビューします。

    terraform plan
  4. 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.
  5. 結果を確認します。

    Terraform show コマンド

    管理されているリソースを表示します。

    terraform show
    shell@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 ファイルからリソースを削除しますが、サブスクリプションを終了しません。追加料金が発生しないように、コンソールでインスタンスを手動で解約してください。

完全な例

説明

このサンプルコードはワンクリックで実行できます。サンプルコードを実行

製品固有の例については、「クイックスタート」をご覧ください。サポートされているすべてのパラメータは、「パラメータの説明」の表に記載されています。

コード例

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                   
}

参照情報

  • Container Registry Enterprise Edition インスタンスを作成するための Terraform リソース: alicloud_cr_ee_instance