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

Alibaba Cloud Service Mesh:Terraform を使用して ASM インスタンスを管理する

最終更新日:Nov 06, 2025

Terraform は、HashiCorp が提供するクラウドリソースオーケストレーション用のオープンソースツールです。Terraform を使用すると、クラウドインフラストラクチャとリソースを安全かつ効率的にプレビュー、設定、管理できます。Terraform を使用して、Alibaba Cloud インフラストラクチャ上のリソースを自動的に作成および更新できます。このトピックでは、Terraform を使用して Service Mesh (ASM) インスタンスを作成および削除する方法について説明します。

前提条件

  • Terraform がオンプレミス マシンにインストールおよび構成されていること。詳細については、「ローカル PC に Terraform をインストールおよび構成する」をご参照ください。

  • Alibaba Cloud アカウントが構成されていること。認証資格情報とリージョン情報を指定するために環境変数が作成されます。

    # 次のコマンドの YOUR_ACCESS_KEY_ID と YOUR_ACCESS_KEY_SECRET を、お使いの Alibaba Cloud アカウントの AccessKey の ID とシークレットに置き換えます。
    export ALICLOUD_ACCESS_KEY="YOUR_ACCESS_KEY_ID"
    export ALICLOUD_SECRET_KEY="YOUR_ACCESS_KEY_SECRET"
    # 値をクラスターのリージョン ID に置き換えます。
    export ALICLOUD_REGION="cn-beijing"
    # クラスターが米国リージョンにある場合は、次の環境変数を設定して米国のエンドポイントを使用します。
    export ALIBABA_CLOUD_ENDPOINT_SERVICEMESH="servicemesh.us-east-1.aliyuncs.com"
    説明

    権限管理の柔軟性とセキュリティを向上させるために、Terraform という名前の Resource Access Management(RAM)ユーザーを作成することをお勧めします。次に、RAM ユーザーの AccessKey ペアを作成し、RAM ユーザーに権限を付与します。詳細については、「RAM ユーザーを作成する」および「RAM ユーザーに権限を付与する」をご参照ください。

背景情報

Terraform の詳細については、Terraform の公式 Web サイトをご覧ください。

ASM インスタンスを作成する

  1. ローカルで main.tf という名前の設定ファイルを作成します。

    • 仮想プライベート クラウド(VPC)または vSwitch がない場合は、次の内容を含む main.tf ファイルを作成します。

      terraform {
        required_providers {
          alicloud = {
            source = "aliyun/alicloud"
          }
        }
      }
      
      variable "k8s_name_prefix" {
        description = "The name prefix used to create Service Mesh (ASM)."
        default     = "tf-asm"
      }
      
      resource "random_uuid" "this" {}
      
      # デフォルトのリソース名と設定。
      locals {
        # ASM インスタンスの名前。
        mesh_name = substr(join("-", [var.k8s_name_prefix, random_uuid.this.result]), 0, 63)
        # ASM インスタンスのエディション。有効な値: enterprise と ultimate。それぞれ Enterprise Edition と Ultimate Edition を示します。
        mesh_spec = "enterprise"
        # 作成する VPC の名前。
        new_vpc_name = "vpc-for-${local.mesh_name}"
        # 作成する vSwitch の名前。
        new_vsw_name = "vsw-for-${local.mesh_name}"
      }
      
      # vSwitch を作成できるゾーン。
      data "alicloud_zones" "default" {
        available_resource_creation = "VSwitch"
      }
      # VPC。
      resource "alicloud_vpc" "default" {
        vpc_name = local.new_vpc_name
      }
      # vSwitch。
      resource "alicloud_vswitch" "default" {
        vpc_id       = alicloud_vpc.default.id
        cidr_block   = cidrsubnet(alicloud_vpc.default.cidr_block, 8, 2)
        zone_id      = data.alicloud_zones.default.zones.0.id
        vswitch_name = local.new_vsw_name
      }
      # ASM インスタンスの作成に利用できる ASM エディションを照会します。
      data "alicloud_service_mesh_versions" "default" {
        edition = local.mesh_spec == "standard" ? "Default" : "Pro"
      }
      # 最初に利用可能なエディションを選択して ASM インスタンスを作成します。
      locals {
        mesh_version = split(":", data.alicloud_service_mesh_versions.default.ids[0])[1]
      }
      # ASM インスタンス。
      resource "alicloud_service_mesh_service_mesh" "default" {
        # ASM インスタンスの名前。
        service_mesh_name = local.mesh_name
        # ASM インスタンスのネットワーク設定。
        network {
          # VPC の ID。
          vpc_id        = alicloud_vpc.default.id
          # vSwitch の ID。
          vswitche_list = [alicloud_vswitch.default.id]
        }
        # ASM インスタンスのエディション。
        version = local.mesh_version
        # ASM インスタンスの API サーバーと Istio Pilot を公開するためのロードバランサー。
        load_balancer {
          # ASM インスタンスの API サーバーのロードバランサーを Elastic IP アドレス (EIP) を使用して公開するかどうかを指定します。
          api_server_public_eip = true
        }
      
        # Mesh Config オプションを定義して ASM インスタンスを設定します。
        mesh_config {
          # Alibaba Cloud Simple Log Service にアクセスログを収集します。
          access_log {
            enabled = true
          }
      
          # コントロールプレーンログの収集を有効にします。この機能を有効にするには、Simple Log Service を有効にしていることを確認してください。
          control_plane_log {
            enabled = true
          }
      
          # Application Real-Time Monitoring Service (ARMS) でトレース分析を有効にします。
          tracing = true
      
          # トレース分析が有効な場合、サンプリング率を設定します。
          pilot {
            trace_sampling = 100
          }
      
          # Prometheus モニタリングを有効にします。
          telemetry = true
      
          # メッシュトポロジーを有効にします。メッシュトポロジーを有効にするには、Prometheus モニタリングを有効にしていることを確認してください。
          kiali {
            enabled = true
          }
      
          # メッシュ監査機能を有効にします。この機能を有効にするには、Simple Log Service を有効にしていることを確認してください。
          audit {
            enabled = true
          }
        }
        # ASM インスタンスのエディション。有効な値: enterprise と ultimate。それぞれ Enterprise Edition と Ultimate Edition を示します。
        cluster_spec = local.mesh_spec
      }

      必要に応じて、main.tf ファイルで次の表で説明されているパラメーターを設定します。Terraform は関連する API 操作を自動的に呼び出して、他のパラメーターの値を取得します。

      パラメーター

      説明

      mesh_name

      Service Mesh インスタンスのカスタム名です。

      mesh_spec

      Service Mesh インスタンスのエディションです。有効な値:

      • Standard: Standard Edition (無料)。

      • enterprise: Enterprise Edition

      • ultimate: Ultimate Edition

      new_vpc_name

      VPC のカスタム名。

      new_vsw_name

      vSwitch のカスタム名。

      api_server_public_eip

      EIP を使用して Service Mesh インスタンスの API サーバーのロードバランサーを公開するかどうかを指定します。有効な値:

      • true: EIP を使用して Service Mesh インスタンスの API サーバーのロードバランサーを公開します。

      • false: EIP を使用して Service Mesh インスタンスの API サーバーのロードバランサーを公開しません。

    • VPC と vSwitch をすでに作成している場合は、次の内容を含む main.tf ファイルを作成します。

      重要

      VPC と vSwitch は、Terraform を構成したときに ALICLOUD_REGION 環境変数で指定したリージョンに属している必要があります。そうでない場合、Terraform は VPC または vSwitch を認識できません。

      terraform {
        required_providers {
          alicloud = {
            source = "aliyun/alicloud"
          }
        }
      }
      
      variable "asm_name_prefix" {
        description = "The name prefix used to create Service Mesh (ASM)."
        default     = "tf-asm"
      }
      
      resource "random_uuid" "this" {}
      
      # デフォルトのリソース名と設定。
      locals {
        # ASM インスタンスの名前。
        mesh_name = substr(join("-", [var.asm_name_prefix, random_uuid.this.result]), 0, 63)
        # ASM インスタンスのエディション。有効な値: enterprise と ultimate。それぞれ Enterprise Edition と Ultimate Edition を示します。
        mesh_spec = "enterprise"
        # 作成済みの VPC の名前。
        vpc_name = "vpc-luying-hangzhou1"
        # 作成済みの vSwitch の名前。
        vsw_name = "vsw-luying-hangzhou1"
      }
      
      # VPC。
      data "alicloud_vpcs" "default" {
        name_regex = local.vpc_name # 作成済みの VPC の名前。
      }
      # vSwitch。
      data "alicloud_vswitches" "default" {
        vpc_id = data.alicloud_vpcs.default.ids[0]
      }
      locals {
        exist_vswitch_ids = [for vsw in data.alicloud_vswitches.default.vswitches : vsw.id if vsw.name == local.vsw_name]
      }
      # ASM インスタンスの作成に利用できる ASM エディションを照会します。
      data "alicloud_service_mesh_versions" "default" {
        edition = local.mesh_spec == "standard" ? "Default" : "Pro"
      }
      # 最初に利用可能なエディションを選択して ASM インスタンスを作成します。
      locals {
        mesh_version = split(":", data.alicloud_service_mesh_versions.default.ids[0])[1]
      }
      # ASM インスタンス。
      resource "alicloud_service_mesh_service_mesh" "default" {
        # ASM インスタンスの名前。
        service_mesh_name = local.mesh_name
        # ASM インスタンスのネットワーク設定。
        network {
          # VPC の ID。
          vpc_id        =  data.alicloud_vpcs.default.ids[0]
          # vSwitch の ID。
          vswitche_list = [local.exist_vswitch_ids[0]]
        }
        # ASM インスタンスのエディション。
        version = local.mesh_version
        # ASM インスタンスの API サーバーと Istio Pilot のロードバランサーを公開するためのロードバランサー。
        load_balancer {
          # ASM インスタンスの API サーバーのロードバランサーを EIP を使用して公開するかどうかを指定します。
          api_server_public_eip = true
        }
      
        # Mesh Config オプションを定義して ASM インスタンスを設定します。
        mesh_config {
          # Alibaba Cloud Simple Log Service にアクセスログを収集します。
          access_log {
            enabled = true
          }
      
          # コントロールプレーンログの収集を有効にします。この機能を有効にするには、Simple Log Service を有効にしていることを確認してください。
          control_plane_log {
            enabled = true
          }
      
          # ARMS でトレース分析を有効にします。
          tracing = true
      
          # トレース分析が有効な場合、サンプリング率を設定します。
          pilot {
            trace_sampling = 100
          }
      
          # Prometheus モニタリングを有効にします。
          telemetry = true
      
          # メッシュトポロジーを有効にします。メッシュトポロジーを有効にするには、Prometheus モニタリングを有効にしていることを確認してください。
          kiali {
            enabled = true
          }
      
          # メッシュ監査機能を有効にします。この機能を有効にするには、Simple Log Service を有効にしていることを確認してください。
          audit {
            enabled = true
          }
        }
        # ASM インスタンスのエディション。有効な値: enterprise と ultimate。それぞれ Enterprise Edition と Ultimate Edition を示します。
        cluster_spec = local.mesh_spec
      }

      必要に応じて、main.tf ファイルで次の表で説明されているパラメーターを設定します。Terraform は関連する API 操作を自動的に呼び出して、他のパラメーターの値を取得します。

      パラメーター

      説明

      mesh_name

      Service Mesh インスタンスのカスタム名です。

      mesh_spec

      Service Mesh インスタンスのエディション。有効な値:

      • Standard: Standard Edition (無料)

      • enterprise: Enterprise Edition

      • ultimate: Ultimate Edition

      vpc_name

      作成された VPC の名前。

      vsw_name

      作成された vSwitch の名前。

      api_server_public_eip

      EIP を使用して Service Mesh インスタンスの API サーバーのロードバランサーを公開するかどうかを指定します。

      • true: EIP を使用して Service Mesh インスタンスの API サーバーのロードバランサーを公開します。

      • false: EIP を使用して Service Mesh インスタンスの API サーバーのロードバランサーを公開しません。

  2. 次のコマンドを実行して、Terraform のランタイム環境を初期化します。

    terraform init

    予想される出力:

    Initializing the backend...
    
    Initializing provider plugins...
    - Finding aliyun/alicloud versions matching "1.166.0"...
    - Finding latest version of hashicorp/random...
    ...
    
    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 の実行プランを作成します。

    terraform plan

    予想される出力:

    Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
      + create
    
    Terraform will perform the following actions:
    ...
    Plan: 2 to add, 0 to change, 0 to destroy.
  4. 次のコマンドを実行して、main.tf ファイルを使用して ASM インスタンスを作成します:

    terraform apply

    予想される出力:

    alicloud_service_mesh_service_mesh.example: Refreshing state...
    ...
    Do you want to perform these actions?
      Terraform will perform the actions described above.
      Only 'yes' will be accepted to approve.
    
      Enter a value:                    

    はいEnter a value の右側に と入力します。予想される出力:

    ...
    alicloud_service_mesh_service_mesh.default: Creating...
    alicloud_service_mesh_service_mesh.default: Still creating... [10s elapsed]
    ...
    alicloud_service_mesh_service_mesh.example: Creation complete after 2m42s [id=**********]
    
    Apply complete! Resources: 2 added, 0 changed, 0 destroyed.

ASM インスタンスを削除する

Terraform で destroy コマンドを実行して ASM インスタンスを削除するには、main.tf ファイルが存在するディレクトリに移動する必要があります。

main.tf ファイルが存在するディレクトリに移動し、次のコマンドを実行して ASM インスタンスを削除します。

terraform destroy

予想される出力:

...
Do you really want to destroy all resources?
  Terraform will destroy all your managed infrastructure, as shown above.
  There is no undo. Only 'yes' will be accepted to confirm.

  Enter a value: 

はいEnter a value の右側に と入力します。予想される出力:

...
Destroy complete! Resources: 2 destroyed.

ASM インスタンスの属性を変更する

.tf ファイルの属性定義を変更し、terraform apply コマンドを実行して変更を ASM インスタンスに適用できます。次の例では、http10_enabled 属性を変更します。この例を参照して、Terraform を使用して ASM インスタンスの属性を変更できます。

  1. この例では、VPC と vSwitch がすでに存在するシナリオの .tf ファイルを使用します。サービスメッシュリソースの mesh_config.pilot.http10_enabled プロパティの値を true に変更します。

    terraform {
      required_providers {
        alicloud = {
          source = "aliyun/alicloud"
        }
      }
    }
    
    variable "asm_name_prefix" {
      description = "The name prefix used to create Service Mesh (ASM)."
      default     = "tf-asm"
    }
    
    resource "random_uuid" "this" {}
    
    # デフォルトのリソース名と設定。
    locals {
      # ASM インスタンスの名前。
      mesh_name = substr(join("-", [var.asm_name_prefix, random_uuid.this.result]), 0, 63)
      # ASM インスタンスのエディション。有効な値: enterprise と ultimate。それぞれ Enterprise Edition と Ultimate Edition を示します。
      mesh_spec = "enterprise"
      # 作成済みの VPC の名前。
      vpc_name = "prod-hz-vpc"
      # 作成済みの vSwitch の名前。
      vsw_name = "prod-hz-vpc-default"
    }
    
    # VPC。
    data "alicloud_vpcs" "default" {
      name_regex = local.vpc_name # 作成済みの VPC の名前。
    }
    # vSwitch。
    data "alicloud_vswitches" "default" {
      vpc_id = data.alicloud_vpcs.default.ids[0]
    }
    locals {
      exist_vswitch_ids = [for vsw in data.alicloud_vswitches.default.vswitches : vsw.id if vsw.name == local.vsw_name]
    }
    # ASM インスタンスの作成に利用できる ASM エディションを照会します。
    data "alicloud_service_mesh_versions" "default" {
      edition = local.mesh_spec == "standard" ? "Default" : "Pro"
    }
    # 最初に利用可能なエディションを選択して ASM インスタンスを作成します。
    locals {
      mesh_version = split(":", data.alicloud_service_mesh_versions.default.ids[0])[1]
    }
    # ASM インスタンス。
    resource "alicloud_service_mesh_service_mesh" "default" {
      # ASM インスタンスの名前。
      service_mesh_name = local.mesh_name
      # ASM インスタンスのネットワーク設定。
      network {
        # VPC の ID。
        vpc_id        =  data.alicloud_vpcs.default.ids[0]
        # vSwitch の ID。
        vswitche_list = [local.exist_vswitch_ids[0]]
      }
      # ASM インスタンスのエディション。
      version = local.mesh_version
      # ASM インスタンスの API サーバーと Istio Pilot を公開するためのロードバランサー。
      load_balancer {
        # ASM インスタンスの API サーバーのロードバランサーを EIP を使用して公開するかどうかを指定します。
        api_server_public_eip = true
      }
    
      # Mesh Config オプションを定義して ASM インスタンスを設定します。
      mesh_config {
        # Alibaba Cloud Simple Log Service にアクセスログを収集します。
        access_log {
          enabled = true
        }
    
        # コントロールプレーンログの収集を有効にします。この機能を有効にするには、Simple Log Service を有効にしていることを確認してください。
        control_plane_log {
          enabled = true
          project = "mesh-log-cab09b566d4a64c1fa05271d5365495f1"
        }
    
        # ARMS でトレース分析を有効にします。
        tracing = true
    
        # トレース分析が有効な場合、サンプリング率を設定します。
        pilot {
          trace_sampling = 100
          http10_enabled = true 
        }
    
        # Prometheus モニタリングを有効にします。
        telemetry = true
    
        # メッシュトポロジーを有効にします。メッシュトポロジーを有効にするには、Prometheus モニタリングを有効にしていることを確認してください。
        kiali {
          enabled = true
        }
    
        # メッシュ監査機能を有効にします。この機能を有効にするには、Simple Log Service を有効にしていることを確認してください。
        audit {
          enabled = true
        }
      }
      # ASM インスタンスのエディション。有効な値: enterprise と ultimate。それぞれ Enterprise Edition と Ultimate Edition を示します。
      cluster_spec = local.mesh_spec
    }
    
  2. terraform apply を実行します。出力には、フィールドの計画された変更が表示されます。

    terraform apply
    random_uuid.this: 状態を更新しています... [id=6ab24265-2381-dad9-3be5-351329c5665a]
    data.alicloud_vpcs.default: 読み取り中...
    data.alicloud_service_mesh_versions.default: 読み取り中...
    data.alicloud_service_mesh_versions.default: 1s 後に読み取りが完了しました [id=605899410]
    data.alicloud_vpcs.default: 1s 後に読み取りが完了しました [id=2909606812]
    data.alicloud_vswitches.default: 読み取り中...
    data.alicloud_vswitches.default: 0s 後に読み取りが完了しました [id=866499268]
    alicloud_service_mesh_service_mesh.default: 状態を更新しています... [id=cab09b566d4a64c1fa05271d5365495f1]
    
    Terraform は、選択されたプロバイダーを使用して次の実行計画を生成しました。リソース操作は、次の記号で示されます。
      ~ インプレース更新
    
    Terraform は次の操作を実行します。
    
      # alicloud_service_mesh_service_mesh.default はインプレースで更新されます
      ~ resource "alicloud_service_mesh_service_mesh" "default" {
            id                = "cab09b566d4a64c1fa05271d5365495f1"
            # (6 個の未変更の属性は非表示)
    
          ~ mesh_config {
                # (5 個の未変更の属性は非表示)
    
              ~ pilot {
                  ~ http10_enabled = false -> true
                    # (1 個の未変更の属性は非表示)
                }
    
                # (7 個の未変更のブロックは非表示)
            }
    
            # (2 個の未変更のブロックは非表示)
        }
    
    計画: 0 追加、1 変更、0 破棄。
    
    これらの操作を実行しますか?
      Terraform は上記で説明された操作を実行します。
      承認するには 'yes' と入力する必要があります。
    
      値を入力してください:
  3. yes と入力して変更を適用します。

    ...無関係なコンテンツは省略...
    これらの操作を実行しますか?
      Terraform は、上記で説明した操作を実行します。
      承認するには 'yes' のみ入力できます。
    
      値を入力: yes
    
    alicloud_service_mesh_service_mesh.default: Modifying... [id=cab09b566d4a64c1fa05271d5365495f1]
    alicloud_service_mesh_service_mesh.default: Still modifying... [id=cab09b566d4a64c1fa05271d5365495f1, 10s elapsed]
    alicloud_service_mesh_service_mesh.default: Still modifying... [id=cab09b566d4a64c1fa05271d5365495f1, 20s elapsed]
    alicloud_service_mesh_service_mesh.default: Still modifying... [id=cab09b566d4a64c1fa05271d5365495f1, 30s elapsed]
    alicloud_service_mesh_service_mesh.default: Modifications complete after 37s [id=cab09b566d4a64c1fa05271d5365495f1]

Kubernetes クラスターを追加または削除する

.tf ファイルの `cluster_ids` 配列を変更できます。ASM が管理するクラスターを追加するには、その ID を配列に追加します。ASM からクラスターを削除するには、その ID を配列から削除します。次に、`terraform apply` を実行して変更を ASM インスタンスに適用します。

  1. この例では、ASM インスタンスにクラスターを追加する方法を示します。クラスター ID を配列に追加して、サービスメッシュリソースの cluster_ids を変更します:

    ......Omit irrelevant content......
    # ASM インスタンス。
    resource "alicloud_service_mesh_service_mesh" "default" {
      # サービスメッシュの名前。
      service_mesh_name = local.mesh_name
      # サービスメッシュのネットワーク構成。
      network {
        # VPC ID。
        vpc_id        =  data.alicloud_vpcs.default.ids[0]
        # vSwitch ID。
        vswitche_list = [local.exist_vswitch_ids[0]]
      }
      # サービスメッシュのバージョン。
      version = local.mesh_version
      # サービスメッシュの API サーバーと Pilot のロードバランサー構成。
      load_balancer {
        # ロードバランサーを介して API サーバーを公開するために EIP を使用するかどうかを指定します。
        api_server_public_eip = true
      }
      cluster_ids = [
        "c94a1a1d968e04c55861b8747********" # クラスター ID を配列に追加します。
      ]
      ......Omit irrelevant content......
    }
    ......Omit irrelevant content......
  2. `terraform apply` を実行します。出力には、データプレーン クラスター ID 配列への計画された変更が表示されます。

    random_uuid.this: Refreshing state... [id=6ab24265-2381-dad9-3be5-351329c5665a]
    data.alicloud_service_mesh_versions.default: Reading...
    data.alicloud_vpcs.default: Reading...
    data.alicloud_vpcs.default: Read complete after 1s [id=2909606812]
    data.alicloud_vswitches.default: Reading...
    data.alicloud_vswitches.default: Read complete after 0s [id=866499268]
    data.alicloud_service_mesh_versions.default: Read complete after 1s [id=3077056360]
    alicloud_service_mesh_service_mesh.default: Refreshing state... [id=c71fe2f2301234701b2e4116397426342]
    
    Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
      ~ update in-place
    
    Terraform will perform the following actions:
    
      # alicloud_service_mesh_service_mesh.default will be updated in-place
      ~ resource "alicloud_service_mesh_service_mesh" "default" {
          ~ cluster_ids       = [
              + "c94a1a1d968e04c55861b8747********",
            ]
            id                = "c71fe2f2301234701b2e4116397426342"
            tags              = {}
            # (6 unchanged attributes hidden)
        }
    
    Plan: 0 to add, 1 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: 
  3. yes と入力して変更を適用します。

    ...無関係なコンテンツは省略...
    これらの操作を実行しますか?
      Terraform は上記の操作を実行します。
      承認するには 'yes' のみが受け付けられます。
    
      値を入力してください: yes
    
    alicloud_service_mesh_service_mesh.default: 変更中... [id=c71fe2f2301234701b2e4116397426342]
    alicloud_service_mesh_service_mesh.default: 引き続き変更中... [id=c71fe2f2301234701b2e4116397426342, 10秒 経過]
    alicloud_service_mesh_service_mesh.default: 引き続き変更中... [id=c71fe2f2301234701b2e4116397426342, 20秒 経過]
    alicloud_service_mesh_service_mesh.default: 引き続き変更中... [id=c71fe2f2301234701b2e4116397426342, 30秒 経過]
    alicloud_service_mesh_service_mesh.default: 引き続き変更中... [id=c71fe2f2301234701b2e4116397426342, 40秒 経過]
    alicloud_service_mesh_service_mesh.default: 引き続き変更中... [id=c71fe2f2301234701b2e4116397426342, 50秒 経過]
    alicloud_service_mesh_service_mesh.default: 引き続き変更中... [id=c71fe2f2301234701b2e4116397426342, 1分0秒 経過]
    alicloud_service_mesh_service_mesh.default: 引き続き変更中... [id=c71fe2f2301234701b2e4116397426342, 1分10秒 経過]
    alicloud_service_mesh_service_mesh.default: 引き続き変更中... [id=c71fe2f2301234701b2e4116397426342, 1分20秒 経過]
    alicloud_service_mesh_service_mesh.default: 引き続き変更中... [id=c71fe2f2301234701b2e4116397426342, 1分30秒 経過]
    alicloud_service_mesh_service_mesh.default: 引き続き変更中... [id=c71fe2f2301234701b2e4116397426342, 1分40秒 経過]
    alicloud_service_mesh_service_mesh.default: 1分44秒後に変更が完了しました [id=c71fe2f2301234701b2e4116397426342]
    
    適用が完了しました! リソース: 0 追加, 1 変更, 0 破棄。

Terraform リソースとデータソース

次の表に、ASM リソースの管理に使用できる Terraform リソースとデータソースを示します。

タイプ

名前

説明

リソース

alicloud_service_mesh_service_mesh

ASM インスタンスを管理します。

alicloud_service_mesh_user_permission

ASM インスタンスの権限を構成します。

データソース

alicloud_service_mesh_service_meshes

すべての ASM インスタンスをクエリします。

alicloud_service_mesh_versions

利用可能なすべての Service Mesh バージョンをクエリします。

terraform apply コマンドを実行すると、一部のフィールドが削除されるというプロンプトが表示された場合はどうすればよいですか?

操作を簡素化するために、サーバーは作成時に指定しなくても一部の ASM プロパティにデフォルト値を割り当てます。これは Terraform の Computed 属性タグに似ています。ただし、これらのプロパティが Computed として設定されている場合、その値を空の文字列、数値の 0、ブール値の false などの空の値に変更することはできません。これらのプロパティを空の値に変更できるようにするため、ASM Terraform プロバイダーはそれらを Computed として設定しません。terraform apply を実行すると、サーバーはこれらのプロパティを返します。.tf ファイルで明示的に宣言されていない場合、Terraform はそれらの値を削除したいと見なします。これらのプロパティを削除したくない場合は、プロンプトに従って手動で .tf ファイルに追加し、再度 terraform apply を実行する必要があります。