我想在网站更新时运行一些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一起使用的最佳方法是什么?

最佳答案

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

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

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


使site设置为production而不使用前置块。由于这是一个正则表达式,因此您可以匹配任何内容,例如两个选项之一:

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


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

关于krl - 如何在KRL Webhook中选择参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4378567/

10-13 08:42