拡張機能
企業では多くの場合、オンプレミスアプリケーションおよびデータベースが企業ファイアウォールの背後にデプロイされています。
Workatoのオンプレミス拡張機能を使用すると、Javaを使用してレガシーアプリケーションに接続できます。 拡張機能はWorkatoオンプレミスエージェントにServletとして登録され、レシピ内から使用できるRESTエンドポイントとして公開されます。
使用するケース:
- アプリケーションにREST/SOAP APIがない。
- アプリケーションにサポート対象のJavaライブラリがある。
使用しないケース:
- アプリケーションにREST/SOAP APIがある。 HTTP Connectorを使用するか、Connector SDKでカスタムコネクションを構築します。
- シンプルなコマンドラインスクリプトを実行したい。 代わりにコマンドラインスクリプトを使用します。
前提条件
OPAバージョン23.0未満では、Java 17 SDKを手動でインストールする必要があります。 詳細については、オンプレミスエージェントのバージョンノートを参照してください。
例
拡張機能を説明するために、SHA-256メッセージダイジェストを実行するシンプルな拡張機能の作成方法を順を追って説明します。 この拡張機能はリクエスト本文を受け取り、そのSHA-256暗号化バージョンを返します。 その後、この拡張機能をレシピで使用できるように、RESTエンドポイントとして有効化します。
拡張機能のビルド
この拡張機能のリポジトリをダウンロードします。 これはGradleプロジェクトであり、独自の拡張機能を作成するために活用できるベーステンプレートとして機能します。
オンプレミス拡張機能のソースファイルは次の場所にあります。 src/main/java/com/mycompany/onprem/SecurityExtension.java
ルートフォルダで./gradlew jarを実行してGradleをブートストラップし、プロジェクトをビルドします。 build/libs/opa-extensions-0.2.jarに出力があります。
拡張機能のインストール
OPA拡張機能をインストールするには、Workatoエージェントディレクトリの下にextという新しいディレクトリを作成し、opa-extensions-0.2.jarをextフォルダに配置します。
conf/config.ymlをclasspathと新しく追加した拡張機能で更新します。 これにより、オンプレミスエージェントにjarファイルの場所を伝えます:
server:
classpath: C:\\Program Files\\Workato Agent\\ext
extensions:
security:
controllerClass: com.mycompany.onprem.SecurityExtension
secret: HA63A3043AMMMM上記のclasspath値は、適切な場所に設定する必要があります。これはご使用のEnvironmentによって異なる場合があります。
複数の拡張機能がある場合は、すべてのjarファイルをextフォルダに配置し、extensionsの下に新しいエントリを追加します:
server:
classpath: C:\\Program Files\\Workato Agent\\ext
extensions:
security:
controllerClass: com.mycompany.onprem.SecurityExtension
secret: HA63A3043AMMMM
otherextension:
controllerClass: com.mycompany.onprem.OtherExtensionserverパラメータの設定プロパティは次のとおりです:
| プロパティ名 | 説明 |
|---|---|
| classpath | ユーザー定義クラスの場所を指定します |
extensionsパラメータの設定プロパティは次のとおりです:
| プロパティ名 | 説明 |
|---|---|
| security | これはSDKで使用される拡張機能プロファイル名です。 各拡張機能に一意の名前を使用します。 |
| controllerClass | 拡張機能をどのJavaクラスにマッピングするかをOPAに伝えるための必須フィールド。 |
| secret | Javaクラスで使用されるオプションのEnvironment properties。 複数のプロパティを追加できます。 |
520コネクション失敗エラーのトラブルシューティング
拡張機能を開始できない場合、エージェントは520コネクション失敗エラーをログに記録します。 520コネクション失敗エラーのトラブルシューティングガイドを参照して、解決方法を確認してください。
SDKのビルド
レシピで拡張機能を使用するには、Workatoでカスタムコネクター(SDK)が必要です。 次のコードを使用して、Connectorsページでカスタムコネクターを作成します:
{
title: 'On-prem security',
secure_tunnel: true,
connection: {
fields: [{ name: 'profile', hint: 'On-prem security connection profile' }],
authorization: { type: 'none'},
apply: ->() {
headers('X-Workato-Connector': 'enforce')
}
},
test: ->(connection) {
post("http://localhost/ext/#{connection['profile']}/computeDigest", { payload: 'test' })
},
actions: {
sha256_digest: {
title: 'Create SHA-256 digest',
description: 'Create <span class="provider">SHA-256</span> digest',
input_fields: -> { [{ name: 'payload' }] },
output_fields: -> { [{name: 'signature' }] },
execute: ->(connection, input) {
post("http://localhost/ext/#{connection['profile']}/computeDigest", input)
}
}
}
}SDKコードでは次の点に注意してください:
secure_tunnelはtrueに設定されており、コネクションの作成時にOPAを選択できます。 拡張機能を含むOPAを必ず選択してください。ヘッダー
X-Workato-Connector: enforceは、これがOPA拡張機能と通信するためのリクエストであることをOPAに伝えるために使用されますパス
http://localhost/ext/#{connection['profile']}/computeDigestはJavaクラスで定義されています
@RequestMapping(path = "/computeDigest", method = RequestMethod.POST)Last updated: