全部產品
Search
文件中心

Application Configuration Management(Deprecated):PublishConfig

更新時間:Jul 06, 2024

使用 PublishConfig 將配置自動發布到 Nacos,以自動化手段降低營運成本。

描述

使用以下介面將配置發布到 Nacos。

PublishConfig(param vo.ConfigParam) (bool, error)

請求參數

參數 參數類型 描述
ConfigParam.DataId
String
配置 ID,採用類似 package.class(如 com.taobao.tc.refund.log.level)的命名規則保證全域唯一性。建議根據配置的業務含義來定義 class 部分。全部字元均為小寫。只允許使用英文字元和 4 種特殊字元(“.”、“:”、“-”、“_”),不超過 256 位元組。
ConfigParam.Group
String
配置分組,建議填寫產品名:模組名(如 ACM:Test)來保證唯一性。只允許使用英文字元和 4 種特殊字元(“.”、“:”、“-”、“_”),不超過 128 位元組。
ConfigParam.Content
String
配置內容,不超過 100KB。

返回參數

參數類型 描述
Boolean 是否發布成功

樣本

Go 格式

說明 請將代碼中的 ${endpoint}${namespace}${accessKey}${secretKey} 分別替換為 ACM 控制台上命名空間詳情對話方塊內的 End Point命名空間 IDAccessKeySecretKey。出於安全考慮,建議使用 RAM 使用者的 AccessKey 和 SecretKey。
package main

import (
    "fmt"
    "github.com/nacos-group/nacos-sdk-go/clients"
    "github.com/nacos-group/nacos-sdk-go/common/constant"
    "github.com/nacos-group/nacos-sdk-go/vo"
    "time"
)

func main() {
    // 從控制台命名空間管理的"命名空間詳情"中拷貝 End Point、命名空間 ID
    var endpoint = "${endpoint}"
    var namespaceId = "${namespaceId}"

    // 推薦使用 RAM 使用者的 accessKey、secretKey
    var accessKey = "${accessKey}"
    var secretKey = "${secretKey}"


    clientConfig := constant.ClientConfig{
        //
        Endpoint:       endpoint + ":8080",
        NamespaceId:    namespaceId,
        AccessKey:      accessKey,
        SecretKey:      secretKey,
        TimeoutMs:      5 * 1000,
        ListenInterval: 30 * 1000,
    }

    configClient, err := clients.CreateConfigClient(map[string]interface{}{
        "clientConfig": clientConfig,
    })

    if err != nil {
        fmt.Println(err)
        return
    }

    var dataId = "com.alibaba.nacos.example.properties"
    var group = "DEFAULT_GROUP"

    // 發布配置
    success, err := configClient.PublishConfig(vo.ConfigParam{
        DataId:  dataId,
        Group:   group,
        Content: "connectTimeoutInMills=3000"})

    if success {
        fmt.Println("Config published successfully.")
    }

    time.Sleep(3 * time.Second)

}