• 製品
  • 使用を開始する
  • 関連ドキュメント
  • リソース

Jira Edge Connector を設定する

この記事では、Jira Service Management Cloud の一部のお客様に段階的に展開されている、Jira Service Management でネイティブに利用できる新しいアラート機能を取り上げています。ご利用のサイトにはまだ表示されていないか、利用できない可能性があります。

環境変数

場所やパスなどの構成ファイル プロパティを設定します。その前に、場所設定ファイルのいくつかの環境変数を設定する必要があります。設定ファイルは次のようにして入手できます。

  • ローカル ドライブから

  • Git を使用して

ローカル ドライブから設定ファイルを読み取る

JEC_CONF_SOURCE_TYPE 変数と JEC_CONF_LOCAL_FILEPATH 変数を設定します。

Redhat 6/Centos 6 の場合

  1. /etc/init.d/jec ファイルを編集します。

  2. "start()" 関数の直前に次のエクスポート コマンドを追加します。

1 2 3 4 export JEC_CONF_SOURCE_TYPE="local" export JEC_CONF_LOCAL_FILEPATH="/home/jsm/jec/config.json" start().......

Redhat 7 / Centos 7 と Debian / Ubuntu の場合

  1. /etc/systemd/system/jec.service ファイルを編集します。

  2. [Service] キーセクションで、[install] キーの開始直前に次の環境プロパティを追加します。

1 2 3 4 5 6 7 8 ... [Service] ... ... Environment="JEC_CONF_SOURCE_TYPE=local" Environment="JEC_CONF_LOCAL_FILEPATH=~/jec/config.json" ... [Install]

Windows システムの場合

  1. jecService<32 | 64>.json ファイルを編集します (ダウンロードした zip ファイルにあります)。

  2. JSONには "Env" というキーが含まれており、配列を値として取ります。"JEC_CONF_LOCAL_FILEPATH" と "JEC_CONF_SOURCE_TYPE" を値と共に "Env" キーの配列内にリストします。

JSON

1 2 3 4 5 6 7 8 ... ... "Env": [ "JEC_CONF_LOCAL_FILEPATH=C:\\jsm\\jec-win64\\config.json", "JEC_CONF_SOURCE_TYPE=local" ], ... ...

Git リポジトリから設定ファイルを読み取る

JEC_CONF_GIT_URLJEC_CONF_GIT_FILEPATHJEC_CONF_GIT_PRIVATE_KEY_FILEPATHJEC_CONF_GIT_PASSPHRASE の各変数を設定します。公開リポジトリを使用している場合は、Git URL の https 形式を使用する必要があります。非公開キーとパスフレーズを設定する必要はありません。オプションで JEC_API_KEY を設定できます。このプロパティが環境に設定されている場合は、その値が apiKey として使用され、それ以外の場合は設定ファイルのapiKeyが使用されます。

設定変数

鍵 (キー)

値のプロパティ

JEC_CONF_SOURCE_TYPE

git、Git からの読み取り用

local、ローカル環境からの読み取り用

JEC_CONF_SOURCE_TYPE=git

JEC_CONF_SOURCE_TYPE=local

JEC_CONF_LOCAL_FILEPATH

拡張子が (.yaml、.yml、または .json) のファイルパス
既定: ~/jec/config.json

JEC_CONF_LOCAL_FILEPATH=/home/JSM/JECConfig.yaml

 

JEC_CONF_LOCAL_FILEPATH=~/JECConfig.json

JEC_CONF_GIT_URL

git リポジトリの HTTPS または SSH URL

JEC_CONF_GIT_URL=git@bitbucket.com:username/test-private-conf-cem.git
または
JEC_CONF_GIT_URL=https://bitbucket.org/username/test-conf-cem.git

JEC_CONF_GIT_FILEPATH

git リポジトリ フォルダ内のファイルパス (.yaml、yml、または .json)

JEC_CONF_GIT_FILEPATH=~/jec/config.json

JEC_CONF_GIT_PRIVATE_KEY_FILEPATH

ローカル ドライブ内の git ssh キーの場所

JEC_CONF_GIT_PRIVATE_KEY_FILEPATH=~/.ssh/id_rsa

JEC_CONF_GIT_PASSPHRASE

ssh パス フレーズ

JEC_CONF_GIT_PASSPHRASE=1234

JEC_LOG_FORMAT_TYPE

text→ logrus テキスト タイプ ログ
json → logrus json タイプ ログ
colored → 色つき logrus タイプ ログ (デフォルト)

JEC_LOG_FORMAT_TYPE=text

JEC_API_KEY

JEC 統合ページの API キー。このプロパティが設定されている場合は、設定ファイルで提供された apiKey を上書きします。

JEC_API_KEY=4XXXXXX7-XXXX-XXXX-XXXX-9XXXXXXXXXX4

文字「~」は、顧客のサーバーでユーザーとしてプログラムを実行するためのホーム ディレクトリとして使用できます。

http://localhost:<port-number>/metrics. から Prometheus の既定のメトリックを収集できます。同じ環境で複数の JEC インスタンスを実行するには、-jec-metrics を個別のポート番号値として次のように設定します。-jec-metrics <port-number>

ログ

JEC のログは次の場所にあります。

  • Windows: var/log/jsm/jec<pid>.log

  • Linux: /var/log/jsm/jec<pid>.log

ファイル名の最後に、実行中のプロセスを識別するためのプログラム ID (pid) があります。

設定ファイル

JEC は、フィールドを含む json と yaml のファイル拡張子をサポートしています。ローカルか Git かに応じて、設定ファイルのパスを JEC_CONF_LOCAL_FILEPATH または JEC_CONF_GIT_FILEPATH に設定します。

設定フィールド

フィールド

タイプ

(必須)

説明

API キー

文字列

true

JEC インテグレーション ページからコピーされる API キー。

ベース URL

文字列

false

Jira Service Management ミラーの API URL (既定: 'https://api.atlassian.com')

logLevel

文字列

false

JEC のログ レベル
既定: ‘info'
オプション: ‘info’、‘debug’、'trace’、‘error’、‘warn’

globalArgs

文字列のリスト

false

すべてのアクションに適用される引数を実行する

globalFlags

文字列 key-value のマップ

false

すべてのアクションに適用されるフラグを実行します。
マップ フィールドはフラグ キーと値で構成されます。
付与されたフラグは、アクション スクリプトまたは実行可能ファイルにおける解析が強制される場合があります。

globalEnv

文字列のリスト

false

各要素は、‘=’ 文字で区切られた 1 つの環境変数名と値を示します。すべてのアクションに適用されます (例: “ENV1=value”)。

actionMappings

文字列キーと mappedAction 値のマップ

true

アラート アクション マッピングのマップ
各マッピングには、Jira Service Management で定義されているキーとしてアクション名 (文字列) があります (Create など)。
少なくとも 1 つのアクションが存在している必要があります。

actionMappings → mappedAction

マップ

true

各 mappedAction はアクションを表し、アクション プロパティ sourceType、filepath、gitOptions、環境変数が含まれています。

actionMappings → mappedAction → sourceType

文字列

true

スクリプト ファイルの場所の種類は「ローカル」または「git」にできます

actionMappings → mappedAction → filepath

文字列

true

スクリプトまたは実行ファイルの場所。「local」の場合はフルパスを指定する必要があります ('~' を使用できます)。「git」の場合は、ディレクトリのパスを指定する必要があります。

actionMappings → mappedAction → stdout

文字列

false

アクションの stdout ファイルパス

actionMappings → mappedAction → stderr

文字列

false

アクションの stderr ファイルパス

actionMappings → mappedAction → args

文字列のリスト

false

指定されたアクションに適用される引数を実行する

actionMappings → mappedAction → flags

文字列 key-value のマップ

false

指定されたアクションに適用されるフラグを実行します。
マップ フィールドは、フラグ キーと値で構成されます。
付与されたフラグは、アクション スクリプトまたは実行可能ファイルでの解析が強制される場合があります。

actionMappings → mappedAction → env

文字列のリスト

false

各要素は、‘=’ 文字で区切られた 1 つの環境変数名と値を示します。指定されたアクションに適用されます (例: “ENV1=value”)。

actionMappings → mappedAction → gitOptions

マップ

git ソースには true です

このフィールドには、url (git リポジトリ URL)、
privateKeyFilePath (ssh キー ファイル)、
passphrase (ある場合) の 3 つすべての文字列プロパティがあります。
プロパティは [環境変数] セクションと同じ git 変数です。

  • soruceType が「git」の場合は gitOptions を設定する必要があります。

actionMappings → mappedAction → gitOptions → url

文字列

git ソースには true です

mappedAction の git リポジトリの HTTPS または SSH URL

actionMappings → mappedAction → gitOptions → privateKeyFilepath

文字列

false

mappedAction の git リポジトリの非公開キー ファイルパス (必要な場合)

actionMappings → mappedAction → gitOptions → passphrase

文字列

false

mappedAction の git リポジトリのパスフレーズ (必要な場合)

pollerConf

マップ

false

このフィールドでは、JEC の sqs キューをポーリングするポーラーの動作を指定する 3 つすべての整数プロパティを取得します。

pollerConf → pollingWaitIntervalInMillis

整数

false

キューまたは空きジョブ ワーカーに新しいメッセージがない場合のポーラーの待機時間。
デフォルト: 100 (ミリ秒)
このフィールドの値が小さいと (例: < 100 ms)、CPU 使用率が高くなる可能性があります。

pollerConf → visibilityTimeoutInSeconds

整数

false

sqs キューからポーリングされるメッセージの表示タイムアウト

  • 既定: 30 秒

pollerConf → maxNumberOfMessages

整数

false

一度に受信するメッセージの最大数
デフォルト: 10
最大制限は 10 です。

poolConf

マップ

false

このフィールドによって、人材を管理する人材プールの動作を指定する
5 つすべての整数プロパティを取得します (go routine)

poolConf → maxNumberOfWorker

整数

false

ワーカー処理アクションの最大数
既定: 12
CPU バインドされたプロセスでは maxNumberOfWorker の値を大きくする必要がない場合があります。

  • maxNumberOfWorker の値を大きくすると、I/O バインドされたプロセスでは有用な場合があります。

poolConf → minNumberOfWorker

整数

false

ワーカー処理アクションの最小数。
デフォルト: 4
アクティブなプロセスがあまりない場合、MinNumberOfWorker はアイドル ワーカー番号の下限を決定します。

poolConf → queueSize

整数

false

sqs キューから受信したメッセージの内部キュー サイズ
既定: 0
すべてのワーカーがビジー状態の場合際はメッセージを内部キューに保存できます。

  • キュー サイズを有効にすることは推奨されていません。プログラムがクラッシュすると、データが失われる可能性があります。

poolConf → keepAliveTimeInMillis

整数

false

実際のワーカー数が minNumberOfWorker よりも多い場合の、アイドル状態のワーカーの有効な時間制限

  • 既定: 6,000 (ミリ秒)

poolConf → monitoringPeriodInMillis

整数

false

プール指標を記録するモニタリング間隔

  • 既定: 15,000 (ミリ秒)

args、flags、env のローカル変数はグローバル変数より優先されます。

  • apiKey、jsmUrl (baseUrl)、payload (JSON としての JEC コールバック) はフラグ形式として args に渡されます。これらのフラグは、アクション スクリプトまたは実行可能ファイル内で解析する必要があります。

  • ペイロードは、アラート情報とインテグレーション固有のパラメーターで構成されています。[Send via JEC (JEC 経由で送信]) オプションにはインテグレーション固有のパラメーターが存在します。

  • JEC では 1 分ごとに git リポジトリが更新されます。

JEC インテグレーションでは直接アクション (例: Create、Close、Acknowledge など) を使用します。他のインテグレーションでは主に、それ自体に関連するマップされたアクションを使用します (例: Jira インテグレーションの場合は addCommentToIssue や createIssue など)。

サンプル JSON ファイル

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 { "appName": "JEC-Example", "apiKey" : "4w3a0df7-d5c8-40d7-96db-975986bx3cb4", "baseUrl" : "https://api.atlassian.com", "logLevel" : "debug", "globalArgs" : ["globalArg"], "_globalFlags" : { "comment out" : "remove '_' sign to enable globalFlags", "flagKey" : "flagValue" }, "globalEnv" : ["globalEnv1=value"], "actionMappings" : { "Create" : { "sourceType" : "local", "filepath" : "~/Desktop/executable", "args" : ["arg"], "_flags": { "comment out" : "remove '_' sign to enable flags", "flagKey" : "flagValue" }, "env" : ["env1=value"], "stdout" : "~/Desktop/createOut.txt", "stderr" : "~/Desktop/createErr.txt" }, "Acknowledge" : { "sourceType" : "git", "filepath" : "/executable", "gitOptions" : { "url" : "https://bitbucket.org/example/example.git" }, "stdout" : "~/Desktop/ackOut.txt", "stderr" : "~/Desktop/ackErr.txt" }, "Custom" : { "sourceType" : "git", "filepath" : "/executable", "gitOptions" : { "url" : "git@gitlab.com:example/example.git", "privateKeyFilepath" : "~/.ssh/id_rsa", "passphrase" : "pass" } } }, "pollerConf" : { "pollingWaitIntervalInMillis" : 100, "visibilityTimeoutInSeconds" : 30, "maxNumberOfMessages" : 10 }, "poolConf" : { "maxNumberOfWorker": 12, "minNumberOfWorker": 4, "queueSize" : 0, "keepAliveTimeInMillis" : 6000, "monitoringPeriodInMillis" : 15000 } }

サンプル YAML ファイル

1 2 3 4 5 6 7 8 9 10 11