文档

SetDcdnDomainStagingConfig - 设置或修改域名配置(灰度)

更新时间:

调用SetDcdnDomainStagingConfig设置或修改域名配置(灰度)。

接口说明

说明 单用户调用频率:30 次/秒。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用背景高亮的方式表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
dcdn:SetDcdnDomainStagingConfigWrite
  • domain
    acs:dcdn:*:{#accountId}:domain/{#domainName}

请求参数

名称类型必填描述示例值
DomainNamestring

加速域名,多个域名用英文逗号(,)分隔。

example.com
Functionsstring

功能列表,格式如下:

  • functionName(功能名称,必填):可配置功能请参见功能列表,多个参数之间用半角逗号(,)分隔。

  • argName(参数名称,必填):functionName 的配置项(可配置多个配置项)。

  • argValue(参数值,必填):functionName 的配置项的取值。

  • parentid(规则条件 ID,非必填):通过配置域名配置功能参数中的功能函数 condition(规则引擎),可以创建出规则条件(规则条件可以通过识别用户请求中携带的各种参数来匹配和过滤用户请求),每一个规则条件被创建以后都会生成一个对应的 configid ,configid 可以被当作 ParentId 参数被其他功能函数引用,这样规则条件就可以与功能配置一起组合形成更灵活的配置。

parentId 为 -1:表示删除该配置里面已有的规则条件。

"functionArgs": [{
   "argName": "功能参数 A", 
   "argValue": "功能参数 A 对应的值"
  }, 
{
  "argName": "功能参数 B", 
  "argValue": "功能参数 B 对应的值"
   }], 

"functionName": "功能名称", "parentId": 选填项,对应引用规则条件的 configid }]

不使用 parentId 的情况下,配置示例如下: 使用函数 origin_request_header 添加回源 HTTP 请求头的时候引用了 configid=222728944812032 的规则条件,请求参数如下:

"functionArgs": [{
           "argName": "header_operation_type",
           "argValue": "add"
       }, {
           "argName": "header_name",
           "argValue": "Accept-Encoding"
       }, {
           "argName": "header_value",
           "argValue": "gzip"
       }, {
           "argName": "duplicate",
           "argValue": "off"
       }],
       "functionName": "origin_request_header"
}]

使用 parentId 的情况下,配置示例如下: 使用函数 origin_request_header 添加回源 HTTP 请求头的时候引用了 configid=222728944812032 的规则条件,请求参数如下:

        "functionArgs": [{
            "argName": "header_operation_type",
            "argValue": "add"
        }, {
            "argName": "header_name",
            "argValue": "Accept-Encoding"
        }, {
            "argName": "header_value",
            "argValue": "gzip"
        }, {
            "argName": "duplicate",
            "argValue": "off"
        }],
        "functionName": "origin_request_header",
        "parentId": 222728944812032
}]

对一个已经使用了 parentId 的功能配置删除对 parentId 的引用,配置示例如下: 函数 origin_request_header 添加回源 HTTP 请求头的时候已经引用了 configid=222728944812032 的规则条件,现在要删掉对规则条件的引用,请求参数如下:

        "functionArgs": [{
            "argName": "header_operation_type",
            "argValue": "add"
        }, {
            "argName": "header_name",
            "argValue": "Accept-Encoding"
        }, {
            "argName": "header_value",
            "argValue": "gzip"
        }, {
            "argName": "duplicate",
            "argValue": "off"
        }],
        "functionName": "origin_request_header",
        "parentId": -1
}]
[{"functionArgs": [{"argName": "key","argValue": "Content-Encoding"},{"argName": "value","argValue": "gzip"}],"functionName": "set_resp_header"} ]

某些功能可以设置多条记录,例如:edge_function,当需要更新其中某条记录时,可通过该条记录的 ConfigId(Long 类型)来指定要修改的配置项。格式如下:

[{"functionArgs":[{"argName":"enable","argValue":"on"},{"argName":"pri","argValue":"1"},{"argName":"rule","argValue":"yyy"}],"ConfigId":123456,"functionName":"edge_function"}]

功能说明 所有参数值均按照字符串类型处理。

功能名称参数
edge_function:边缘函数必填参数:
rule:DSL 规则。
pri:优先级。
enable:本条规则是否生效,取值:on 或 off。
可选参数:
name:规则名称。
pos:规则执行位置。DCDN 域名仅支持 head,不支持 foot。
brk:命中本条规则后,当前执行位置剩余规则均跳过。
option:option 管控。
grammar:grammar 管控。可选值:空、es2、js。
jsmode:js 域名白单管控。可选值:redirect、bypass。

返回参数

名称类型描述示例值
object
RequestIdstring

请求 ID。

04F0F334-1335-436C-A1D7-6C044FE73368

示例

正常返回示例

JSON格式

{
  "RequestId": "04F0F334-1335-436C-A1D7-6C044FE73368"
}

错误码

HTTP status code错误码错误信息描述
400InvalidFunctionName.ValueNotSupported%s%s
400InvalidArgName.ValueNotSupported%s不支持的参数名称 %s(%s为具体参数名)
400InvalidArgValue.Malformed%s%s
400InvalidRule.Malformed%s%s
400ConfigurationConflictsThe staging environment has a configuration in effect. You cannot modify the production environment configuration.模拟环境有一个配置,不能修改生产环境的配置。
400GrayConfigExistA canary configuration already exists under the domain.域名已经存在其他灰度配置。
400InvalidDomain.BelongToConfigGroupThe domain is bound to a configuration group. Modify the domain in the configuration group.这个域名绑定了一个配置组,需要通过修改配置组的配置来修改。
400EdgeScriptCountExceedLimitThe number of rules exceeds the default limit.超过默认规则数量限制,如需提升数量,请提交工单咨询
400EdgeScripOptionsHasInnerConfigThe extension has a background configuration or a parameter of this configuration is invalid. For more information, submit a ticket.扩展项存在后台配置或该配置的参数不合法,如有疑问,请提交工单咨询
400EdgeScriptGrammarNotSupportA background customization rule exists or a parameter of this configuration is invalid. For more information, submit a ticket.存在后台定制规则或该配置的参数不合法,如有疑问,请提交工单咨询
400EdgeScriptNotSupportJsJavaScript rules are not supported. For more information, submit a ticket.未开放JS规则,如有疑问,请提交工单咨询

访问错误中心查看更多错误码。

变更历史

变更时间变更内容概要操作
2023-05-25OpenAPI 错误码发生变更看变更集
变更项变更内容
错误码OpenAPI 错误码发生变更
    错误码 400 变更
  • 本页导读 (1)
文档反馈