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

CloudOps Orchestration Service:Terraform を使用して CloudOps Orchestration Service をオーケストレーションする

最終更新日:Nov 09, 2025

Terraform は、クラウド リソースを安全かつ効率的に構成および管理するために使用されるオープンソースツールです。 Terraform を使用して CloudOps Orchestration Service を管理できます。このトピックでは、Terraform を使用して CloudOps Orchestration Service でアプリケーションを作成する方法について説明します。

前提条件

  • このトピックの操作を実行するために必要な最小限の権限を持つ RAM ユーザーを使用することをお勧めします。 これにより、Alibaba Cloud アカウントの AccessKey ペアが漏洩するリスクが軽減されます。 詳細については、「RAM ユーザーの作成」および「RAM ユーザーへの権限の付与」をご参照ください。サンプルポリシー:

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "oos:GetApplication",
            "oos:DeleteApplication",
            "oos:CreateApplication",
            "oos:ListApplications"
          ],
          "Resource": "*"
        }
      ]
    }
  • Terraform のランタイム環境は、次のいずれかの方法で準備されます:

    • Terraform Explorer で Terraform を使用する: Alibaba Cloud は、Terraform 用のオンライン実行環境を提供しています。 Terraform Explorer 環境にログインして、Terraform をインストールせずに Terraform を使用できます。 この方法は、費用をかけずに効率的かつ便利な方法で Terraform を使用およびデバッグする必要があるシナリオに適しています。

    • Cloud Shell で Terraform を使用する: Terraform は Cloud Shell にプリインストールされており、ID 資格情報は構成されています。 Cloud Shell で Terraform コマンドを直接実行できます。 この方法は、低コストで迅速かつ便利な方法で Terraform を使用およびデバッグする場合に適しています。

    • オンプレミス マシンに Terraform をインストールして構成する: この方法は、ネットワーク接続が不安定な場合、またはカスタム開発環境が必要な場合に適しています。

必要なリソース

アプリケーションを作成する

  1. 作業ディレクトリと、main.tf という名前のファイルを作成します。ディレクトリの下。 次に、次のコンテンツを main.tf ファイルにコピーします。

    variable "region" {
      default = "cn-hangzhou"
    }
    
    provider "alicloud" {
      region = var.region
    }
    
    variable "name" {
      default = "terraform-example"
    }
    
    resource "random_integer" "default" {
      min = 10000
      max = 99999
    }
    
    data "alicloud_resource_manager_resource_groups" "default" {}
    
    resource "alicloud_oos_application" "default" {
      resource_group_id = data.alicloud_resource_manager_resource_groups.default.groups.0.id
      application_name  = "${var.name}-${random_integer.default.result}"
      description       = var.name
      tags = {
        Created = "TF"
      }
    }
  2. 次のコマンドを実行して、Terraform ランタイム環境を初期化します。

    terraform init

    次の情報が返された場合、Terraform は初期化されています。

    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 apply

    プロンプトが表示されたら、yes と入力し、[Enter] キーを押します。次の情報が返された場合、OOS アプリケーションが作成されます。

    You can apply this plan to save these new output values to the Terraform state, without changing any real infrastructure.
    
    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
    
    
    Apply complete!  Resources: 2 added, 0 changed, 0 destroyed.
  4. 結果を確認します。

    terraform show コマンドを実行する

    作業ディレクトリで次のコマンドを実行して、Terraform を使用して作成されたリソースの詳細をクエリします:

    terraform show

    image

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

    OOS コンソール にログインします。 [アプリケーション管理] ページで、作成されたアプリケーションを表示します。

    image

リソースを解放する

Terraform によって作成されたリソースが不要になった場合は、次のコマンドを実行してそれらをリリースします。terraform destroy コマンドの詳細については、「共通コマンド」をご参照ください。

terraform destroy

完全なサンプルコード

variable "region" {
  default = "cn-hangzhou"
}

provider "alicloud" {
  region = var.region
}

variable "name" {
  default = "terraform-example"
}

resource "random_integer" "default" {
  min = 10000
  max = 99999
}

data "alicloud_resource_manager_resource_groups" "default" {}

resource "alicloud_oos_application" "default" {
  resource_group_id = data.alicloud_resource_manager_resource_groups.default.groups.0.id
  application_name  = "${var.name}-${random_integer.default.result}"
  description       = var.name
  tags = {
    Created = "TF"
  }
}

他のサンプルコードを表示するには、GitHub にアクセスしてください。