使用 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、命名空間 ID、AccessKey、SecretKey。出於安全考慮,建議使用 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)
}