使用 syncUpdateAll 接口发布 ACM 配置。
请求类型
POST
请求 URL
/diamond-server/basestone.do
请求参数
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
tenant | String | 是 | 租户信息,对应 ACM 的命名空间 ID。 |
dataId | String | 是 | 配置的 ID |
group | String | 是 | 配置的分组 |
content | String | 是 | 配置的内容 |
Header 参数
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
Spas-AccessKey | String | 是 | 在 ACM 控制台上的命名空间详情对话框内可获取 AccessKey。 |
timeStamp | String | 是 | 以毫秒为单位的请求时间。 |
Spas-Signature | String | 是 | 使用 SecretKey 对“Tenant+TimeStamp”签名,注意加号+也是签名的一部分。(SpasSigner.sign(Tenant+Group+TimeStamp, secretKey) ),签名算法为 HmacSHA1。TimeStamp 签名的作用是防止重放攻击。该签名有效期为 60 秒。
|
Spas-SecurityToken | String | 否 | SecurityToken 需从 STS 临时凭证中获取。STS 临时凭证需从实例元数据 URL 中获取。详情请参考: |
返回参数
参数 | 类型 | 描述 |
---|---|---|
- | Boolean | 是否成功 |
错误码
错误码 | 错误信息 | 描述 |
---|---|---|
400 | Bad Request | 客户端请求中的语法错误 |
403 | Forbidden | 没有权限 |
404 | Not Found | 客户端错误,未找到。 |
500 | Internal Server Error | 服务器内部错误 |
代码示例
-
请求示例(Shell)
#!/bin/bash ## config param dataId="com.alibaba.nacos.example.properties2" group="DEFAULT_GROUP" namespace="04754ad1-4f67-4d67-b2bf-1f73a04a****" accessKey="8c5cbb849ae04682ad9f455a96aa****" secretKey="lwO5T7vfPJu27FclPa+/CyIG****" endpoint="acm.aliyun.com" ## config param end ## get serverIp from address server serverIp=`curl $endpoint:8080/diamond-server/diamond -s | awk '{a[NR]=$0}END{srand();i=int(rand()*NR+1);print a[i]}'` ## config sign timestamp=`echo $[$(date +%s%N)/1000000]` signStr=$namespace+$group+$timestamp signContent=`echo -n $signStr | openssl dgst -hmac $secretKey -sha1 -binary | base64` ## request to publish a config curl -X POST -H "Spas-AccessKey:"$accessKey -H "timeStamp:"$timestamp -H "Spas-Signature:"$signContent "http://"$serverIp":8080/diamond-server/basestone.do?method=syncUpdateAll" -d "dataId="$dataId"&group="$group"&tenant="$namespace"&content="key1=value1 -v
说明 由于 Shell 脚本在 Windows 系统下编辑容易编码错误,建议在 Linux 系统里新建 Shell 脚本文件,再将此段代码复制到文件中。 -
返回示例
True