ユーザーとのインタラクションからUiPathのジョブを起動する仕組みを提供します。
ユーザーがチケットサービスで課題を追加・更新した際にWebhookを発生させ、それをトリガーとしてOrchestratorからジョブを起動します。Scheduled Jobで定期的にリクエストをポーリングする方法に比べ、Webhookを活用することで、ユーザーが情報を更新した際に、タイムリーにジョブを起動できます。
起動されたジョブでは、追加・更新されたチケットの内容を取得し処理すべき内容であれば処理を行った後チケットを更新し、チケットの内容に不備があれば差し戻します。
ユーザーがチャットサービスでジョブの起動を依頼し、それをボットで検知してOrchestratorからジョブを起動します。起動したいプロセスをユーザーが自身で指定することで、タイムリーなサービス提供が可能となります。
ユーザーに渡したAWS IoT Enterprise Buttonを押すことで、Orchestratorからジョブを起動します。ボタンを押すだけなので、操作が簡単であり、また、物理的なデバイスとジョブの起動権限を紐づけているので、権限管理がやりやすいです。
HTMLフォームをGET/POSTすることで、Orchestratorからジョブを起動します。起動できるプロセス、起動する権限をWebページのアクセス権限と連動して管理することができます。
ユーザーがバージョンコントロールシステムでアクションした際にWebhookを発生させ、それをトリガーとしてOrchestratorからジョブを起動します。gitのpull requestを受信してレビュー準備をすることや、pushを受信してリリースの準備をすることができます。
少しわかりにくいですが、OrchestratorのWebhookを受信して、それをトリガーとしてOrchestratorからジョブを起動します。Orchestratorの設定情報やQueue、Jobの状態を受けて処理を行うことができます。
- install serverless framework
$ npm install -g serverless
- cron this repository and install serverless-python-requirements
$ git clone <this repository>
$ cd <this clone directory>
$ npm install --save serverless-python-requirements
- modify config.json
$ vim congig.json
- deploy it
$ serverless deploy [--stage production]
- Githubで対象とするリポジトリの Setting / Webhooks / Add Webhook を選択します。
- 以下を設定してWebhookを登録します。
- Payload URL: 作成したGithub用のEndpointを設定します。
- Secret: Webhookメッセージのダイジェストを作成するためのSecret。config.[stage].jsonにも同じ値を設定します。
- Which events would you like to trigger this webhook?: Webhookを送信するトリガーを設定します。
参考:Webhooks
- Google Cloud ConsoleでHangouts Chat APIを有効にします。
- Hangouts Chat APIの設定で以下を設定します。
- Bot Name: Orchestrator-Webhook-Receiver
- Avator URL: https://www.uipath.com/hubfs/Valentin/Brand%20Kit/logos/UiPath-icon.png
- Description: Run the job with unattended robot
- Bot URL: 作成したGoogle Hangouts用のEndpointを設定します。
- Verification Token: Webhookの発信元を確認するためのToken。config.[stage].jsonにも同じ値を設定します。
- templates/request.tpl.html, templates/response.tpl.htmlを編集します。テンプレートエンジンはjinjaを利用しています。
- LocaleはアクセスしたブラウザのRequest Headerで判断しますので、Localeを追加する場合は、localeフォルダにロケール情報を用意してください。
参考:jinja
- Orchestratorで User / Webhook を選択します。
- 以下を設定してWebhookを登録します。
- URL: 作成したOrchestrator用のEndpointを設定します。
- Secret: Webhookメッセージのダイジェストを作成するためのSecret。config.[stage].jsonにも同じ値を設定します。
- Event Type: Webhookを送信するトリガーを設定します。
設定はconfig.[stage].jsonに記載します。また、AWS Lambdaの環境変数設定で値を変更することができます。IoT Enterprise Buttonは、デバイスのプレイスメントの属性でプロセス名(属性の名前 process_name)を指定します。
{
"language": "ja",
"orchestrator": {
"url": "",
"tenancy_name": "",
"username": "",
"password": "",
"api_key": "",
"ntlm_authentication": "False"
},
"handler": {
"backlog": {
"process_name": ""
},
"github": {
"secret": "",
"process_name": ""
},
"google_hangouts": {
"verification_token": "",
"available_processes": ""
},
"html_form": {
"available_processes": ""
},
"orchestrator": {
"secret": "",
"process_name": ""
},
"slack": {
"verification_token": "",
"available_processes": ""
}
"wrike": {
"secret": "",
"available_processes": ""
}
}
}
"language": "ja"
Name | Description |
---|---|
language | メッセージの表示言語 |
"orchestrator": {
"url": "",
"tenancy_name": "",
"username": "",
"password": "",
"api_key": "",
"ntlm_authentication": "False"
}
Name | Description |
---|---|
url | URL |
tenancy_name | テナント名 |
username | ユーザー名 |
password | パスワード |
api_key | API Key |
ntlm_authentication | Windows 認証を有効にしていればTrue (True/False) |
"handler": {
"backlog": {
"process_name": ""
}
}
Name | Description |
---|---|
process_name | BacklogのWebhookを受信後、起動するプロセス |
"handler": {
"github": {
"secret": "",
"process_name": ""
}
}
Name | Description |
---|---|
secret | Webhook登録時に設定したsecret |
process_name | GithubのWebhookを受信後、起動するプロセス |
"handler": {
"google_hangouts": {
"verification_token": "",
"available_processes": ""
}
}
Name | Description |
---|---|
verification_token | 確認トークン |
available_processes | 有効なプロセス名リスト(カンマ区切り) |
"handler": {
"html_form": {
"available_processes": ""
}
}
Name | Description |
---|---|
available_processes | 有効なプロセス名リスト(カンマ区切り) |
"handler": {
"orchestrator": {
"secret": "",
"process_name": ""
}
}
Name | Description |
---|---|
secret | Webhook登録時に設定したsecret |
process_name | OrchestratorのWebhookを受信後、起動するプロセス |
"handler": {
"slack": {
"verification_token": "",
"available_processes": ""
}
}
Name | Description |
---|---|
verification_token | slack app の verification token |
available_processes | 有効なプロセス名リスト(カンマ区切り) |
"handler": {
"wrike": {
"secret": "",
"process_name": ""
}
}
Name | Description |
---|---|
secret | Webhook登録時に設定したsecret |
process_name | WrikeのWebhookを受信後、起動するプロセス |
- Wrike integration test
- ServiceNow integration
- Orchestrator Queue integration