借助 Jira 和 StatusPage 实现自动化事件管理
![Kev Zettler 头像](https://wac-cdn.atlassian.com/dam/jcr:09c4d11b-0f74-4dcd-aeba-28b5467d8a31/Headshot-Kev%20Zettler@2x.png?cdnVersion=2022)
Kev Zettler
全栈 Web 开发人员,DevOps
了解如何使用 Jira Automation 规则自动将 StatusPage 同步到 Jira 事务。
时间
5 分钟阅读。
观众
You’re an experienced user of Jira Software and have a Statuspage account.
先决条件
您需要一个活动的 Jira 项目,其具有一个自定义的“事件”任务类型以及一个自定义的“事件 ID”字段。单击此处开始使用 Jira。
您需要一个启用了 API 访问权限的 Statuspage 帐户。您还需要 Statuspage API 密钥和页面代码,以便配置以下自动化规则。请查阅 Statuspage API 指南以查找 Statuspage API 密钥。单击此处开始使用 Statuspage。
第 1 步:添加自动化
单击添加自动化按钮,然后选择事务选项。
![单击:添加自动化;选择:事务](https://wac-cdn.atlassian.com/dam/jcr:46251e2e-cb63-4cab-bdc4-18c61fc0eac4/image14.png?cdnVersion=2022)
搜索并选择已创建事务。
![新触发器。触发器启动执行规则操作。触发器可以监听事件或按照计划运行。](https://wac-cdn.atlassian.com/dam/jcr:a0b8a30f-9d03-487a-8e1e-7c1f042805d7/image13.png?cdnVersion=2022)
单击保存按钮以继续。
![事务已创建。创建事务时运行规则。此触发器无需配置。](https://wac-cdn.atlassian.com/dam/jcr:c698d5cd-8e5f-4b51-87ff-2d902945797e/image4.png?cdnVersion=2022)
第 2 步:创建新条件
接下来,搜索并选择事务字段条件。
![在“新条件”下选择“事务字段条件”。此操作会检查事务的字段是否符合特定标准。](https://wac-cdn.atlassian.com/dam/jcr:aea27c65-41d5-4fb3-bf6f-3d8bd8a884a5/image6.png?cdnVersion=2022)
使用事务字段条件检查事务类型是否为事件并进行相应操作。配置事务字段条件,使事务类型字段等于事件。单击保存以继续。
![使用“事务字段条件”检查事务类型是否为“事件”并进行相应操作。配置“事务字段条件”,使“事务类型”字段等于“事件”。单击“保存”以继续。](https://wac-cdn.atlassian.com/dam/jcr:fece3379-4564-48e2-aa1a-e4cb672ed064/image12.png?cdnVersion=2022)
第 3 步:发送 Web 请求
选择发送 Web 请求,随即更新 StatusPage。
![新操作。选择“发送 Web 请求”](https://wac-cdn.atlassian.com/dam/jcr:b8a3f0e8-4520-449c-8bea-a905b1cb49b7/image8.png?cdnVersion=2022)
要配置发送 Web 请求操作,您需要 StatusPage API 密钥和页面代码。这些值可以在 StatusPage 文档中找到。发送 Web 请求是附带敏感输入值的高级操作。在本指南的后面部分,我们将在其他规则中重现此操作,且会引用此配置。
在 Webhook URL 字段中,输入 StatusPage 事件端点的 URL:
https://api.StatusPage.io/v1/pages/your-page-code/incidents
将页面代码占位符替换为 StatusPage 页面代码。在标头部分,在两个标头字段中分别输入 Authorization:OAuth 和 API 密钥。
将 HTTP 方法设为 POST,并将 Webhook 主体设为自定义数据。
请务必选中等待响应复选框,因为您会在其他组件中使用 Web 请求响应中的值。
自定义数据字段包含为 StatusPage API 定义事件负载的代码。此代码使用智能值提取事务摘要并将其添加到负载中。以下屏幕截图显示了发送 Web 请求操作的完整配置。单击保存以继续。
![发送 Web 请求](https://wac-cdn.atlassian.com/dam/jcr:f12745fa-8002-4306-881c-0240a401200b/image2.png?cdnVersion=2022)
第 4 步:创建“编辑事务”操作
最后,搜索并选择编辑事务操作。
![新操作:编辑事务](https://wac-cdn.atlassian.com/dam/jcr:3d94e5b1-7c25-4ef5-b724-5997bc9543bc/image10.png?cdnVersion=2022)
编辑事务操作会从 StatusPage 请求中提取事件 ID,并将其存储在“事件 ID”自定义字段中。使用智能值提取事件 ID。以下屏幕截图演示了如何配置此编辑事务组件。
![编辑事务。设置事务相关字段的值](https://wac-cdn.atlassian.com/dam/jcr:0b548bf7-28ed-492c-bf80-2c532e43926b/image7.png?cdnVersion=2022)
以下屏幕截图显示了此规则的最终摘要。
![规则的最终摘要](https://wac-cdn.atlassian.com/dam/jcr:516c38ed-3d80-48d9-950d-6cf17f90363f/image5.png?cdnVersion=2022)
此规则现已准备就绪,可以启用。为此规则输入一个名称,然后单击打开按钮。此规则中的数据将用于创建以下规则。
当事务被评论时更新 StatusPage
对“事件”事务类型添加评论时,会触发下一条规则。向 StatusPage 发出 Web 请求,该请求可利用评论内容更新相应事件。下图显示了此规则的组件摘要。
![针对事件的 StatusPage 评论](https://wac-cdn.atlassian.com/dam/jcr:636b4110-d581-48f6-9c30-e2d4baea8cfe/image9.png?cdnVersion=2022)
此规则中要查看的重要组件是发送 Web 请求操作。此操作是从前一规则复制而来,但做了一些变更。
Webhook URL 附加有 /{{issue.incident_id}}}。智能值可用于从事务提取“事件 ID”自定义字段,然后将其作为 Web 请求的目标传递给 StatusPage。
HTTP 方法现应设为 PATCH 而非 POST。此操作会告知 StatusPage 更新现有事件,而非创建新事件。
自定义数据字段会变为包含特定代码,该代码使用智能值从事务提取评论正文并将其放入事件的内容正文中。
![针对事件的 StatusPage 评论](https://wac-cdn.atlassian.com/dam/jcr:7614fdf7-e46f-4567-ad24-541c40794ef3/image3.png?cdnVersion=2022)
![发送 Web 请求](https://wac-cdn.atlassian.com/dam/jcr:f4963cd3-03df-499c-ac41-f8ebd61c6339/image11.png?cdnVersion=2022)
当事务转换为已完成时关闭 StatusPage 事件
最后一条规则会将它们联系在一起。此规则告知 StatusPage:当相应的 Jira 事务变为“已完成”时,事件即已解决。下图显示了规则摘要。
![针对事件的 StatusPage 评论](https://wac-cdn.atlassian.com/dam/jcr:7614fdf7-e46f-4567-ad24-541c40794ef3/image3.png?cdnVersion=2022)
Web 请求组件再次通过先前的规则进行复制和修改。
![发送 Web 请求](https://wac-cdn.atlassian.com/dam/jcr:f4963cd3-03df-499c-ac41-f8ebd61c6339/image11.png?cdnVersion=2022)
自定义数据字段已修改,以将事件状态设为“已解决”。这是对前一评论规则的唯一修改。
现在,这些规则已可使用。您可以通过创建事件类型事务并执行触发器交互来测试这些规则。您可以在自动化审核日志中监控规则的行为,该日志提供了规则行为的日志记录和相关信息。本指南中演示的自动化规则是高级 Web 请求 API 使用规则的绝佳示例。
请查阅我们 Automation 模板库中的数百个其他示例。
分享这篇文章
下一个主题
推荐阅读
将这些资源加入书签,以了解 DevOps 团队的类型,或获取 Atlassian 关于 DevOps 的持续更新。
![Devops 示意图](https://wac-cdn.atlassian.com/dam/jcr:bd9d8b2c-ca36-444f-8595-719cb1990e64/Devops-community.png?cdnVersion=2022)
DevOps 社区
![Devops 示意图](https://wac-cdn.atlassian.com/dam/jcr:297108ea-d232-4368-af51-b53af230c4fe/Simulation-workshop.png?cdnVersion=2022)
DevOps 学习路径
![地图插图](https://wac-cdn.atlassian.com/dam/jcr:25f6330a-4191-408f-a4e5-2e24bfba67b4/Maturity-model.png?cdnVersion=2022)