使用Terraform管理接入配置(alicloud_cms_addon_release)

更新时间:
复制 MD 格式

通过 Terraform 创建、导入和删除 Prometheus 接入配置(AddonRelease),以代码化方式管理监控组件的接入。

前提条件

  • 已安装 Terraform(v1.5.0 及以上版本)。

    • Cloud Shell 已默认安装并配置 Terraform 和阿里云账号信息,无需额外配置。

    • 本地安装请参见在本地安装和配置Terraform

      说明

      确认 Terraform 版本不低于 v1.5.0,可通过 terraform --version 命令查看版本信息。

  • 已配置阿里云账号信息。支持以下两种方式:

    说明

    建议创建 RAM 用户并为其创建 AccessKey 和授权,避免使用主账号 AccessKey。

    • 方式一(推荐):通过环境变量配置身份认证信息。

      export ALICLOUD_ACCESS_KEY="************"
      export ALICLOUD_SECRET_KEY="************"
      export ALICLOUD_REGION="cn-beijing"
      说明

      ALICLOUD_REGION 的值替换为实际的目标地域 ID。

    • 方式二:在 Provider 代码块中指定身份认证信息。

      provider "alicloud" {
        access_key = "************"
        secret_key = "************"
        region     = "cn-beijing"
        endpoints {
          cms = "cms.cn-beijing.aliyuncs.com"
        }
      }
      说明
      • region 的值替换为实际的目标地域 ID。

      • 必须显式指定 CMS 接入点,格式为 endpoints { cms = "cms.{region}.aliyuncs.com" },其中 {region} 替换为实际的地域 ID。

  • 已创建 CMS 工作空间(Workspace)。如未创建,请在云监控控制台创建工作空间,或通过 Terraform 资源 alicloud_cms_prometheus_instance 创建 Prometheus 实例。

  • 已创建接入中心策略(IntegrationPolicy)。如未创建,请先在云监控控制台创建接入中心策略。

创建接入配置

接入配置(AddonRelease)依赖接入策略(IntegrationPolicy),创建前需确保接入策略已存在。

  1. 创建工作目录,新建 main.tf 的配置文件,内容如下:

    terraform {
      required_version = ">= 1.5.0"
    
      required_providers {
        alicloud = {
          source  = "aliyun/alicloud"
          version = "~> 1.280.0"
        }
      }
    }
    
    provider "alicloud" {
      access_key = "************"
      secret_key = "************"
      region = "cn-hangzhou"
      endpoints {
        cms = "cms.cn-hangzhou.aliyuncs.com"
      }
    }
    
    # 创建接入配置(AddonRelease)
    resource "alicloud_cms_addon_release" "default" {
      integration_policy_id = "policy-xxxxxxxx"
      addon_name            = "ahpa"
      addon_version         = "1.0.0"
      workspace             = "your-workspace-name"
      config                = jsonencode({
        ahpa = {
          install_ahpa_controller = false
          scrapeInterval          = 30
        }
      })
    }
    
    output "addon_release_id" {
      value = alicloud_cms_addon_release.default.id
    }

    参数说明:

    • integration_policy_id: 接入中心策略ID,必填参数,ForceNew。需替换为实际的接入中心策略ID。

    • addon_name: 要集成的Addon名称,必填参数,ForceNew。例如"ahpa"

    • addon_version: 要集成的Addon版本号,必填参数。可通过ListAddons接口获取可用的Addon信息。

    • workspace: 安装组件资源的工作空间名称,可选参数,ForceNew。需与接入中心策略所在的工作空间一致。

    • config: 组件配置信息,可选参数,JSON格式字符串。用于指定Addon的安装参数。

    • addon_release_name: 集成后的发布包名称,可选参数,ForceNew。

    • aliyun_lang: Addon的语言环境,可选参数,ForceNew。有效值:zh(中文)、en(英文)。

    • env_type: 环境类型,可选参数,ForceNew。有效值:CSECSCloud

    • dry_run: 是否试运行,可选参数,布尔类型。有效值:truefalse

    注意事项:

    • integration_policy_id需替换为实际的接入中心策略ID(格式如policy-xxxxxxxx)。

    • workspace参数需替换为您实际使用的工作空间名称。

    • integration_policy_idaddon_nameaddon_release_name均为ForceNew参数,修改后会触发资源的销毁和重建。

  2. 初始化 Terraform 工作目录。

    terraform init
  3. 预览资源变更计划。

    terraform plan

    预期输出:

    ...
    Plan: 1 to add, 0 to change, 0 to destroy.
    ...
  4. 执行创建。收到确认提示后输入 yes

    terraform apply

    预期输出:

    alicloud_cms_addon_release.default: Creation complete after XXs [id=************]
    
    Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
    
    Outputs:
    
    addon_release_id = "************"
  5. 若输出结果出现yes,表示当前AddonRelease创建成功。同时您可以登录云监控控制台,在接入中心的AddonRelease页面查看已成功创建的AddonRelease。具体操作如下:

    1. 登录云监控控制台

    2. 在左侧导航栏单击接入中心,进入接入中心页面。

    3. 在接入中心页面查看已成功创建的AddonRelease。

删除接入配置

执行以下命令,删除通过 Terraform 管理的接入配置:

terraform destroy

收到确认提示后输入 yes。预期输出:

alicloud_cms_addon_release.default: Destroying... [id=************]
alicloud_cms_addon_release.default: Destruction complete after XXs

Destroy complete! Resources: 1 destroyed.
警告

删除接入配置后,关联的监控组件将立即停止数据采集。执行前请确认该接入配置不再需要。