3

我想在网站更新时运行一些 KRL 规则。推送更新后,部署脚本将获得以下 URL:

http://webhooks.kynetxapps.net/t/_appid_/updated?site=production&version=123456abcdef

处理这个 webhook 的规则集是这样开始的:

rule site_updated {
    select when webhook updated
    pre {
        site = event:param("site");
        version = event:param("version");
    }
    // do something with site and version
}

http://docs.kynetx.com/docs/Event_API我可以制定更具体的规则:

select when webhook updated site "test"
    or webhook updated site "production"

有没有办法在没有 PRE 块的情况下获取两个参数?将 SELECT 与 webhook 一起使用的最佳方式是什么?

4

1 回答 1

1

规则过滤器(如site "test")是正则表达式,您可以使用setting ()子句设置变量。

http://webhooks.kynetxapps.net/t/_appid_/update?site=production&version=123456abcdef

select when webhook update site "(.*)" setting(site)

导致在不使用 pre 块的情况下site设置为。production由于这是一个正则表达式,您可以匹配任何内容,例如两个选项之一:

select when webhook update site "(test|production)" setting(site)

将仅与 site == test 或 site == production 匹配,其他时间不匹配,并将值存储在规则上下文中的 site 变量中。

于 2010-12-07T23:54:20.540 回答