我想在网站更新时运行一些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/