调用BatchSetCdnDomainConfig、SetCdnDomainStagingConfig为域名配置功能时会生成ConfigId(功能配置ID,具有唯一性),通过指定ConfigId可更新或删除域名配置项。本文为您介绍ConfigId的生成、查询和使用方法。
ConfigId使用说明
功能 | 接口调用说明 |
生成ConfigId | 调用BatchSetCdnDomainConfig、SetCdnDomainStagingConfig,配置完成后生成ConfigId。 |
查询ConfigId | 调用DescribeCdnDomainConfigs、DescribeCdnDomainStagingConfig,查询结果返回对应配置的ConfigId。 |
通过ConfigId更新配置项 | 调用BatchSetCdnDomainConfig、SetCdnDomainStagingConfig,通过指定ConfigId更新配置项。 |
通过ConfigId删除配置项 | 调用DeleteSpecificConfig、DeleteSpecificStagingConfig,通过指定ConfigId删除配置项。 |
生成ConfigId
配置单条规则:
调用BatchSetCdnDomainConfig给某个域名创建某个功能配置时生成ConfigId,该API调用成功后返回该配置项的ConfigId。
调用SetCdnDomainStagingConfig给某个域名创建某个功能配置时生成ConfigId,该API调用成功后不返回ConfigId,需要通过DescribeCdnDomainStagingConfig接口查询。
配置场景:假设加速域名为
example.com
,CDN节点在响应资源给客户端的时候,告知客户端该资源无需缓存。示例:为域名
example.com
的功能set_resp_header配置规则:key=Cache-Control,value=no-cache。接口配置:action: BatchSetCdnDomainConfig params: { "Functions": [{ "functionArgs": [{ "argName": "value", "argValue": "no-cache" }, { "argName": "key", "argValue": "Cache-Control" } ], "functionName": "set_resp_header" }], "domainNames": "example.com" } product: cdn
配置成功返回结果:返回ConfigId。
{ "code": "200", "data": { "DomainConfigList": { "DomainConfigModel": [ { "FunctionName": "set_resp_header", "DomainName": "example.com", "ConfigId": 19571990834**** } ] }, "RequestId": "4FF61A1D-E697-5E6C-9E5D-7D1E1529****" }, "httpStatusCode": "200", "requestId": "4FF61A1D-E697-5E6C-9E5D-7D1E1529****", "successResponse": true }
配置多条规则:有的功能支持配置多条规则,如果要一次配置多条规则,可以参考如下示例。
示例:为域名
example.aliyundoc.com
的功能set_resp_header(配置响应头)同时配置以下两条规则:第一个规则:CDN节点在响应资源给客户端的时候,告知客户端该资源无需缓存。
参数配置如下:key=Cache-Control,value=no-cache
第二个规则:CDN节点在响应资源给客户端的时候,告知客户端该资源的内容类型是文本类型。
参数配置如下:key=Content-Type,value=text/plain
接口配置:
action: BatchSetCdnDomainConfig params: { "domainNames": "example.aliyundoc.com", "functions": [ { "functionArgs": [ { "ArgValue": "Cache-Control", "ArgName": "key" }, { "ArgValue": "no-cache", "ArgName": "value" } ], "functionName": "set_resp_header" }, { "functionArgs": [ { "ArgValue": "Content-Type", "ArgName": "key" }, { "ArgValue": "text/plain", "ArgName": "value" } ], "functionName": "set_resp_header" } ] } product: cdn
配置成功,返回结果,两条不同的规则分别返回了不同的ConfigId。
{ "code":"200", "data":{ "DomainConfigList":{ "DomainConfigModel":[ { "FunctionName":"set_resp_header", "DomainName":"example.aliyundoc.com", "ConfigId":20953663204**** }, { "FunctionName":"set_resp_header", "DomainName":"example.aliyundoc.com", "ConfigId":20953663204**** } ] }, "RequestId":"69A79ACE-FD8E-5993-9CEA-7AAB2F08****" }, "httpStatusCode":"200", "requestId":"69A79ACE-FD8E-5993-9CEA-7AAB2F08****", "successResponse":true }
查询ConfigId
调用DescribeCdnDomainConfigs、DescribeCdnDomainStagingConfig,查询结果返回对应配置的ConfigId。
示例:查询域名example.aliyundoc.com
的功能set_resp_header的配置。接口调用:
action: DescribeCdnDomainConfigs
params: {
"domainName": "example.aliyundoc.com",
"functionNames": "set_resp_header"
}
product: cdn
返回结果:显示ConfigId。
{
"code": "200",
"data": {
"RequestId": "51B7DF03-A7AE-56ED-BF1E-D16F6A6B****",
"DomainConfigs": {
"DomainConfig": [{
"Status": "configuring",
"FunctionName": "set_resp_header",
"FunctionArgs": {
"FunctionArg": [{
"ArgValue": "no-cache",
"ArgName": "value"
},
{
"ArgValue": "Cache-Control",
"ArgName": "key"
}
]
},
"ConfigId": 19572306654****
}]
}
},
"httpStatusCode": "200",
"requestId": "51B7DF03-A7AE-56ED-BF1E-D16F6A6B****",
"successResponse": true
}
通过ConfigId更新配置项
调用BatchSetCdnDomainConfig、SetCdnDomainStagingConfig更新已有的配置,更新配置的时候指定该配置项对应的ConfigId即可。
配置场景:假设加速域名为example.com
,CDN节点响应给客户端的资源由不缓存改为缓存1小时。
示例:为域名example.com
的功能set_resp_header更新规则配置为:key=Cache-Control,value=max-age=3600。接口调用:
action: BatchSetCdnDomainConfig
params: {
"Functions": [
{
"functionArgs": [
{
"argName": "value",
"argValue": "max-age=3600"
},
{
"argName": "key",
"argValue": "Cache-Control"
}
],
"functionName": "set_resp_header",
"ConfigId": 19571990834****
}
],
"domainNames": "example.com"
}
product: cdn
通过ConfigId删除配置项
调用DeleteSpecificConfig、DeleteSpecificStagingConfig删除某个配置,删除配置的时候指定该配置项对应的ConfigId即可。
示例:为域名example.aliyundoc.com
删除功能set_resp_header上指定的规则配置。接口调用:
action: DeleteSpecificConfig
params: {
"ConfigId": 19571990834****,
"functionName": "set_resp_header",
"domainName": "example.aliyundoc.com"
}
product: cdn