拡張機能

このページは機械翻訳により提供されています。翻訳内容と英語版に相違がある場合は、英語版が優先されます。

企業では多くの場合、オンプレミスアプリケーションおよびデータベースが企業ファイアウォールの背後にデプロイされています。

Workatoのオンプレミス拡張機能を使用すると、Javaを使用してレガシーアプリケーションに接続できます。 拡張機能はWorkatoオンプレミスエージェントにServletとして登録され、レシピ内から使用できるRESTエンドポイントとして公開されます。

使用するケース:

  • アプリケーションにREST/SOAP APIがない。
  • アプリケーションにサポート対象のJavaライブラリがある。

使用しないケース:

前提条件

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.jarextフォルダに配置します。

conf/config.ymlをclasspathと新しく追加した拡張機能で更新します。 これにより、オンプレミスエージェントにjarファイルの場所を伝えます:

yaml
server:
  classpath: C:\\Program Files\\Workato Agent\\ext
extensions:
  security:
    controllerClass: com.mycompany.onprem.SecurityExtension
    secret: HA63A3043AMMMM

上記のclasspath値は、適切な場所に設定する必要があります。これはご使用のEnvironmentによって異なる場合があります。

複数の拡張機能がある場合は、すべてのjarファイルをextフォルダに配置し、extensionsの下に新しいエントリを追加します:

yaml
server:
  classpath: C:\\Program Files\\Workato Agent\\ext
extensions:
  security:
    controllerClass: com.mycompany.onprem.SecurityExtension
    secret: HA63A3043AMMMM
  otherextension:
    controllerClass: com.mycompany.onprem.OtherExtension

serverパラメータの設定プロパティは次のとおりです:

プロパティ名説明
classpathユーザー定義クラスの場所を指定します

extensionsパラメータの設定プロパティは次のとおりです:

プロパティ名説明
securityこれはSDKで使用される拡張機能プロファイル名です。 各拡張機能に一意の名前を使用します。
controllerClass拡張機能をどのJavaクラスにマッピングするかをOPAに伝えるための必須フィールド。
secretJavaクラスで使用されるオプションのEnvironment properties。 複数のプロパティを追加できます。

520コネクション失敗エラーのトラブルシューティング

拡張機能を開始できない場合、エージェントは520コネクション失敗エラーをログに記録します。 520コネクション失敗エラーのトラブルシューティングガイドを参照して、解決方法を確認してください。

SDKのビルド

レシピで拡張機能を使用するには、Workatoでカスタムコネクター(SDK)が必要です。 次のコードを使用して、Connectorsページでカスタムコネクターを作成します:

ruby
{
  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クラスで定義されています

java
@RequestMapping(path = "/computeDigest", method = RequestMethod.POST)

Last updated: