转换ZIS流中的数据
在本教程中,您将创建一个转换JSON数据的ZIS集成。为此,您将包含一个变换在集成的ZIS流中的操作。Transform操作使用jq表达式来更改JSON输入的值、格式或结构。该输入可以是事件数据、API响应或可以从ZIS流访问的其他JSON。
你需要什么?
要完成本教程,您需要以下内容:
熟悉ZIS。在开始之前,完成构建您的第一个ZIS集成教程。
已注册的ZIS集成。您可以使用在中创建的集成构建您的第一个ZIS集成或者注册一个新的。要注册新的集成,请参见注册集成名称.
一个免费的外部目标URLRequestBin
创建集成
通常使用数据转换将数据转换为特定格式。例如,外部应用程序可能只接受格式化为字符串的数字。
您创建的集成将监听票了事件在Zendesk亚博。事件的数据包括一个格式化为整数的票证id。当它检测到事件时,集成将此票据id从整数转换为字符串。然后集成将字符串发布到表示外部应用程序的外部目标。
创建一个JSON文件my_zis_bundle.json.
将以下包骨架添加到my_zis_bundle.json:
{
“名称”:“ZIS与数据转换集成示例”,
“描述”:"在创建票证时将票证id字符串发送到外部目标",
“zis_template_version”:“2019-10-14”,
“亚博电脑端资源”:{
“PostToWebhook”:{
“_placeholder_”:"ZIS自定义动作定义在这里"
},
“TicketCreatedFlow”:{
“_placeholder_”:“ZIS流到这里”
},
“TicketCreatedJobSpec”:{
“_placeholder_”:“ZIS的工作说明书在这里”
}
}
}
在接下来的步骤中,您将定义自定义操作、ZIS流和作业规范。
在my_zis_bundle.json,替换
PostToWebhook
具有以下自定义操作定义的占位符。在定义中,将“EXTERNAL_TARGET_URL”替换为RequestBin端点URL。“PostToWebhook”:{
“类型”:“子::行动::Http”,
“属性”:{
“名称”:“PostToWebhook”,
“定义”:{
“方法”:“职位”,
“url”:“EXTERNAL_TARGET_URL”,
“requestBody”:{
“ticket_id美元。”:“.ticket_id美元”
}
}
}
},
当调用时,自定义操作向外部目标URL发送POST请求。请求体包含一个Zendesk票证id。亚博
取代
TicketCreatedFlow
占位符,具有以下ZIS流定义。在定义中,将“INTEGRATION”替换为您的集成键。流包含一个调用Transform操作的Action状态。该状态被高亮显示。
“TicketCreatedFlow”:{
“类型”:“子:流”,
“属性”:{
“名称”:“TicketCreatedFlow”,
“定义”:{
“StartAt”:“ConvertTicketIDToStr”,
“州”:{
“ConvertTicketIDToStr”:{
“类型”:“行动”,
“ActionName”:“子:常见的变换:金桥”,
“参数”:{
“expr”:“.ticket_event.ticket。Id | tostring",
“数据。美元”:“.input美元”
},
“ResultPath”:“.ticket_id_str美元”,
“下一个”:“PostToWebhook”
},
“PostToWebhook”:{
“类型”:“行动”,
“ActionName”:“子:集成:行动:PostToWebhook”,
“参数”:{
“ticket_id美元。”:“.ticket_id_str美元”
},
“结束”:真正的
}
}
}
}
},
Transform操作将事件的票证id从整数转换为字符串。然后,流运行另一个Action状态来调用您在前一步中定义的自定义操作。
取代
TicketCreatedJobSpec
具有以下职位说明定义的占位符。在定义中,将“INTEGRATION”替换为您的集成键。“TicketCreatedJobSpec”:{
“类型”:“子::JobSpec”,
“属性”:{
“名称”:“TicketCreatedJobSpec”,
“event_source”:“支持”,
“event_type”:”票。TicketCreated”,
“flow_name”:“子:集成:流:TicketCreatedFlow”
}
}
作业规范告诉ZIS在检测到Ticket Created事件时运行ZIS流。
保存my_zis_bundle.json.文件现在看起来应该是这样的:
{
“名称”:“ZIS与数据转换集成示例”,
“描述”:"在创建票证时将票证id字符串发送到外部目标",
“zis_template_version”:“2019-10-14”,
“亚博电脑端资源”:{
“PostToWebhook”:{
“类型”:“子::行动::Http”,
“属性”:{
“名称”:“PostToWebhook”,
“定义”:{
“方法”:“职位”,
“url”:“EXTERNAL_TARGET_URL”,
“requestBody”:{
“ticket_id美元。”:“.ticket_id美元”
}
}
}
},
“TicketCreatedFlow”:{
“类型”:“子:流”,
“属性”:{
“名称”:“TicketCreatedFlow”,
“定义”:{
“StartAt”:“ConvertTicketIDToStr”,
“州”:{
“ConvertTicketIDToStr”:{
“类型”:“行动”,
“ActionName”:“子:常见的变换:金桥”,
“参数”:{
“expr”:“.ticket_event.ticket。Id | tostring",
“数据。美元”:“.input美元”
},
“ResultPath”:“.ticket_id_str美元”,
“下一个”:“PostToWebhook”
},
“PostToWebhook”:{
“类型”:“行动”,
“ActionName”:“子:集成:行动:PostToWebhook”,
“参数”:{
“ticket_id美元。”:“.ticket_id_str美元”
},
“结束”:真正的
}
}
}
}
},
“TicketCreatedJobSpec”:{
“类型”:“子::JobSpec”,
“属性”:{
“名称”:“TicketCreatedJobSpec”,
“event_source”:“支持”,
“event_type”:”票。TicketCreated”,
“flow_name”:“子:集成:流:TicketCreatedFlow”
}
}
}
}
将包上传到ZIS。
curl -X POST https://{subdomain}.亚博zendesk.com/api/services/zis/registry/{integration}/bundles \
-u {email}:{password} \
-H "Content-Type: application/json" \
- d @my_zis_bundle.json
安装作业规范以启用集成。
curl -X POST "https://{subdomain}.亚博zendesk.com/api/services/zis/registry/job_specs/install?job_spec_name=zis:{integration}:job_spec:TicketCreatedJobSpec" \
密码- u {email}: {}
测试集成
要测试集成,请使用以下请求创建一个票据。
curl -X POST https://{subdomain}.亚博zendesk.com/api/v2/tickets.json \
-u {email_address}:{password} \
-H "Content-Type: application/json" \
- d”{
“票”:{
“主题”:“我的打印机着火了!”
"评论":{
“身体”:“烟很鲜艳。”
}
}
} '
导航到RequestBin指示板。您应该看到一个JSON有效负载,其中票据id被格式化为字符串。
恭喜你!您已经创建了一个使用jq转换JSON数据的ZIS集成。要查看其他示例jq表达式,请查看Jq小抄.