BatchSetCdnDomainConfig または SetCdnDomainStagingConfig を使用してドメイン名の機能を設定するたびに、Alibaba Cloud CDN はそのルールに対して一意の構成 ID (ConfigId) を生成します。この ConfigId を使用することで、同じ種類の他のルールに影響を与えることなく、特定のルールを更新または削除できます。
一般的なワークフローは、ルールを設定する際に ConfigId を生成し、必要に応じてそれを照会し、その ConfigId を使用してルールを更新または削除するという流れになります。
API クイックリファレンス
| 操作 | API |
|---|---|
| 構成 ID の生成 | BatchSetCdnDomainConfig または SetCdnDomainStagingConfig |
| 構成 ID の照会 | DescribeCdnDomainConfigs または DescribeCdnDomainStagingConfig |
| ConfigId を使用した設定の更新 | BatchSetCdnDomainConfig または SetCdnDomainStagingConfig |
| ConfigId を使用した設定の削除 | DeleteSpecificConfig または DeleteSpecificStagingConfig |
構成 ID の生成
BatchSetCdnDomainConfig または SetCdnDomainStagingConfig を呼び出して、ドメイン名の機能を設定します。成功すると、ルールごとに ConfigId が生成されます。
BatchSetCdnDomainConfig:応答で ConfigId を直接返します。
SetCdnDomainStagingConfig:応答で ConfigId を返しません。別途 DescribeCdnDomainStagingConfig を呼び出して取得する必要があります。
ある機能が複数のルールをサポートしている場合、1 回の呼び出しで複数のルールを追加すると、ルールごとに 1 つの ConfigId が返されます。
例:単一のレスポンスヘッダールールの追加
example.com に Cache-Control: no-cache を設定し、POP (Points of Presence) がクライアントに返すコンテンツをキャッシュしないように指示します。
action: BatchSetCdnDomainConfig
params: {
"Functions": [{
"functionArgs": [
{
"argName": "value",
"argValue": "no-cache"
},
{
"argName": "key",
"argValue": "Cache-Control"
}
],
"functionName": "set_resp_header"
}],
"domainNames": "example.com"
}
product: cdn成功すると、1 つの 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 に対して 2 つの set_resp_header ルールを追加します。1 つは Cache-Control: no-cache を設定し、もう 1 つは Content-Type: 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成功すると、ルールごとに 1 つずつ、合計 2 つの 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
}構成 ID の照会
DescribeCdnDomainConfigs または DescribeCdnDomainStagingConfig を呼び出して、既存のルールの ConfigId を取得します。
例:ドメインの 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
}構成 ID を使用した設定の更新
ConfigId を指定して BatchSetCdnDomainConfig または SetCdnDomainStagingConfig を呼び出し、特定のルールを更新します。関数オブジェクトに ConfigId を含めることで、そのルールを対象とします。
例:Cache-Control を max-age=3600 に更新
example.com の Cache-Control ヘッダーを no-cache から max-age=3600 に変更し、POP が応答を 1 時間キャッシュするように指示します:
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構成 ID を使用した設定の削除
ConfigId を指定して DeleteSpecificConfig または DeleteSpecificStagingConfig を呼び出し、特定のルールを削除します。
例:レスポンスヘッダールールの削除
set_req_header ルールを、ConfigId 19571990834**** とともに example.aliyundoc.com から削除します:
action: DeleteSpecificConfig
params: {
"ConfigId": 19571990834****,
"functionName": "set_resp_header",
"domainName": "example.aliyundoc.com"
}
product: cdn