创建边缘函数触发规则

最近更新时间:2025-10-20 02:51:52

我的收藏

1. 接口描述

接口请求域名: teo.tencentcloudapi.com 。

创建边缘函数的触发规则。支持通过自定义过滤条件来决定是否需要执行函数,当需要执行函数时,提供了多种选择目标函数的方式,包括:直接指定,基于客户端归属地区选择和基于权重选择。

默认接口请求频率限制:20次/秒。

推荐使用 API Explorer
点击调试
API Explorer 提供了在线调用、签名验证、SDK 代码生成和快速检索接口等能力。您可查看每次调用的请求内容和返回结果以及自动生成 SDK 调用示例。

2. 输入参数

以下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数

参数名称 必选 类型 描述
Action String 公共参数,本接口取值:CreateFunctionRule。
Version String 公共参数,本接口取值:2022-09-01。
Region String 公共参数,此参数为可选参数。
ZoneId String 站点 ID。
FunctionRuleConditions.N Array of FunctionRuleCondition 规则条件列表,相同触发规则的不同条件匹配项之间为或关系。
TriggerType String 函数选择配置类型:
  • direct:直接指定执行函数;
  • weight:基于权重比选择函数;
  • region:基于客户端 IP 的国家/地区选择函数。

  • 不填时默认为 direct 。
    FunctionId String 指定执行的函数 ID。当 TriggerType 为 direct 或 TriggerType 不填时生效。
    RegionMappingSelections.N Array of FunctionRegionSelection 基于客户端 IP 国家/地区的函数选择配置,当 TriggerType 为 region 时生效且 RegionMappingSelections 必填。RegionMappingSelections 中至少包含一项 Regions 为 Default 的配置。
    WeightedSelections.N Array of FunctionWeightedSelection 基于权重的函数选择配置,当 TriggerType 为 weight 时生效且 WeightedSelections 必填。WeightedSelections 中的所有权重之和需要为100。
    Remark String 规则描述,最大支持 60 个字符。

    3. 输出参数

    参数名称 类型 描述
    RuleId String 规则 ID。
    RequestId String 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。

    4. 示例

    示例1 创建边缘函数规则命中规则后执行指定函数

    为站点 zone-293e7s5jne1i 创建一个边缘函数规则,当请求host为 www.function.com 时命中规则,采用 direct(直接指定)的方式选择目标函数,目标函数 ID 为 ef-1pakhnuy 。

    输入示例

    POST / HTTP/1.1
    Host: teo.tencentcloudapi.com
    Content-Type: application/json
    X-TC-Action: CreateFunctionRule
    <公共请求参数>
    
    {
        "ZoneId": "zone-293e7s5jne1i",
        "FunctionRuleConditions": [
            {
                "RuleConditions": [
                    {
                        "Operator": "equal",
                        "Values": [
                            "www.function.com"
                        ],
                        "Target": "host"
                    }
                ]
            }
        ],
        "TriggerType": "direct",
        "FunctionId": "ef-1pakhnuy",
        "Remark": "function rule trigger direct"
    }

    输出示例

    {
        "Response": {
            "RuleId": "rule-vnqup0uc",
            "RequestId": "aab9a28a-4cce-434d-852f-5442275817aa"
        }
    }

    示例2 创建边缘函数规则命中规则后根据客户请求地区执行不同的函数

    为站点 zone-293e7s5jne1i 创建一个边缘函数规则,当请求host为 www.function.com 时命中规则,采用 region(基于客户端 IP 国家/地区)的方式选择目标函数,如果客户端的 IP 归属地为中国大陆,则执行函数 ef-1pakhnuy ,如果客户端的 IP 归属地为其他地区,则执行函数 ef-1wekxwnu 。

    输入示例

    POST / HTTP/1.1
    Host: teo.tencentcloudapi.com
    Content-Type: application/json
    X-TC-Action: CreateFunctionRule
    <公共请求参数>
    
    {
        "ZoneId": "zone-293e7s5jne1i",
        "FunctionRuleConditions": [
            {
                "RuleConditions": [
                    {
                        "Operator": "equal",
                        "Values": [
                            "www.function.com"
                        ],
                        "Target": "host"
                    }
                ]
            }
        ],
        "TriggerType": "region",
        "RegionMappingSelections": [
            {
                "FunctionId": "ef-1pakhnuy",
                "Regions": [
                    "CN"
                ]
            },
            {
                "FunctionId": "ef-1wekxwnu",
                "Regions": [
                    "Default"
                ]
            }
        ],
        "Remark": "function rule trigger region"
    }

    输出示例

    {
        "Response": {
            "RuleId": "rule-vnqup0uc",
            "RequestId": "aab9a28a-4cce-434d-852f-5442275817aa"
        }
    }

    示例3 创建边缘函数规则命中规则后根据客户设置的权重执行不同的函数

    为站点 zone-293e7s5jne1i 创建一个边缘函数规则,当请求host为 www.function.com 时命中规则,采用 weight(基于权重)的方式选择目标函数,有20%的概率,执行函数 ef-1pakhnuy ,有80%的概率,执行函数 ef-1wekxwnu 。

    输入示例

    POST / HTTP/1.1
    Host: teo.tencentcloudapi.com
    Content-Type: application/json
    X-TC-Action: CreateFunctionRule
    <公共请求参数>
    
    {
        "ZoneId": "zone-293e7s5jne1i",
        "FunctionRuleConditions": [
            {
                "RuleConditions": [
                    {
                        "Operator": "equal",
                        "Values": [
                            "www.function.com"
                        ],
                        "Target": "host"
                    }
                ]
            }
        ],
        "TriggerType": "weight",
        "WeightedSelections": [
            {
                "FunctionId": "ef-1wekxwnu",
                "Weight": 80
            },
            {
                "FunctionId": "ef-1pakhnuy",
                "Weight": 20
            }
        ],
        "Remark": "function rule trigger weight"
    }

    输出示例

    {
        "Response": {
            "RuleId": "rule-vnqup0uc",
            "RequestId": "aab9a28a-4cce-434d-852f-5442275817aa"
        }
    }

    5. 开发者资源

    腾讯云 API 平台

    腾讯云 API 平台 是综合 API 文档、错误码、API Explorer 及 SDK 等资源的统一查询平台,方便您从同一入口查询及使用腾讯云提供的所有 API 服务。

    API Inspector

    用户可通过 API Inspector 查看控制台每一步操作关联的 API 调用情况,并自动生成各语言版本的 API 代码,也可前往 API Explorer 进行在线调试。

    SDK

    云 API 3.0 提供了配套的开发工具集(SDK),支持多种编程语言,能更方便的调用 API。

    命令行工具

    6. 错误码

    以下仅列出了接口业务逻辑相关的错误码,其他错误码详见 公共错误码

    错误码 描述
    FailedOperation 操作失败。
    FailedOperation.RuleOperationConflict 该站点下函数规则操作冲突。
    InternalError.SystemError 内部错误-系统错误。
    InvalidParameter.DuplicateRule 重复规则。
    InvalidParameter.InvalidConditions 不合法的条件。
    LimitExceeded.RuleLimitExceeded 规则数量达到限制。
    OperationDenied.VersionControlLocked 当前处于版本管理模式下,该操作不允许。
    ResourceUnavailable.FunctionNotFound 函数不存在或不属于该账号。
    ResourceUnavailable.ZoneNotFound 站点不存在或不属于该账号。