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

Container Registry:Terraform を使用して Container Registry Enterprise Edition インスタンスを作成する

最終更新日:May 14, 2025

このトピックでは、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 インスタンスを作成する方法を示しています。

  1. 作業ディレクトリと、そのディレクトリに main.tf という名前の構成ファイルを作成します。main.tf は Terraform のメインファイルであり、デプロイするリソースを定義します。次の表に、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

    次の情報が返された場合、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.
  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 によって作成されたリソースを照会します。

    terraform show

    image

    Container Registry コンソールにログインする

    Container Registry コンソール にログインして、すべての Container Registry インスタンスを表示できます。image

リソースのクリーンアップ

重要

サブスクリプション課金方法を使用する Container Registry インスタンスのサブスクリプションを Terraform を使用して解除することはできません。terraform destroy コマンドを実行した後、リソースはステータスファイルから削除されます。その後、Container Registry コンソールにログインして、Container Registry インスタンスのサブスクリプションを適時に解除してください。

サンプルコード

説明

サンプルコードを実行するには、数回クリックするだけです。

さらにサンプルコードを表示する場合は、Quickstarts ページの対応するサービスのディレクトリにアクセスしてください。インスタンスパラメーターの詳細については、「パラメーターの説明」をご参照ください。

サンプルコード

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                   // インスタンス名
}