AWS Lambda を介して Opsgenie を Jira と統合する
Lambda は、サーバーなしでコードを実行する AWS のコンピューティング サービスです。AWS Lambda は、インテグレーションを含む多くのユースケース、特に Opsgenie や Jira のような SaaS ソリューションを統合する場合に最適なソリューションです。
インストール
次のステップでは、AWS API ゲートウェイと Lambda サービスによって Opsgenie と Jira を統合する方法について説明します。
API ゲートウェイ エンドポイントを介した Lambda 関数の作成
AWS Lambda コンソールに移動します。
AWS Lambda に初めてアクセスする場合は、ようこそ画面が表示されます。[今すぐ始める] をクリックします。
[ブランク機能] をクリックして、ブループリントを選択します。
関数トリガーとして [API ゲートウェイ] を選択します。
API ゲートウェイ エンドポイントの API 名を入力します。例: OpsgenieJIRAIntegrationAPI
[デプロイメント ステージ] として [prod] を選択し、[セキュリティ] オプションとして [オープン] を選択します。
[次へ] をクリックします。
Lambda 関数の名前を入力します (例: opsGeniejiraIntegration)。
説明: 必要に応じて入力するか空白のままにします。
ランタイム: [Node.js] およびコード エントリ タイプ: [コードをインラインで編集]。
ogLambdaJira.js から JavaScript コードをインライン エディターに貼り付けます。
コードの最初には、Opsgenie と Jira のアカウント情報に応じて設定するオプションがいくつかあります。
Jira (アトラシアンから) のホスト バージョンが使用されている場合は、Jira アカウント名に置き換えます。
Jira のカスタム インストールが使用されている場合は、それに応じて jiraHost、jiraBasePath、jiraProtocol、jiraPort の各変数を更新します。
別の地域のお客様の場合
Opsgenie が別のドメイン (例: EU、サンドボックス) から使用されている場合は、OGHost を更新してください。
デフォルトの API インテグレーションまたはその他の API インテグレーションの Opsgenie API キーに置き換えます。
Jira アカウントに応じて正しい値を入力します。
For each Alert created by Opsgenie, a new Jira work item is created in a Jira Project. In order to be able to determine which Project a work item will be created in, there are two settings in the code to utilize.
AlertTagToJiraProjectKey マップを使用して、アラート タグを Jira プロジェクト キーに関連付けます。
jiraDefaultProjectKey は、タグ キー マッピングのいずれもアラートから照合できない場合に使用されるデフォルトの Jira プロジェクトキーの略です。
If there is only a single project in the Jira installation, or for all work items to be created in the same Jira Project, enter its key as the default and leave the mapping as an empty array.
Handler の値を index.handler のままにし、[ロール] に [カスタムロールを作成] を選択します。
新しく開いたウィンドウで [許可] をクリックして、Amazon CloudWatch にログを送信するために必要なアクセス許可を Lambda 関数に付与します。
万が一のために、[詳細設定] ペインで [タイムアウト値] に 5 を選択します。[メモリ] の値は 128 のままにしておきます。この値は今回は十分な値です。
[機能の設定] ページのすべての手順を完了したら、[次へ] をクリックします。
次のページで [関数の作成] をクリックします。
[AWS] > [サービス] > [API ゲートウェイ] の順に移動します。
左側のメニューの [API] タブで、lambda スクリプト用に作成した API を選択します。
[/your_lambda_function_name] の下にある [任意] をクリックします。
上の [アクション] をクリックして、[メソッドのアクション] の [メソッドの削除] を選択します。
削除アクションを確認します。
[アクション] をもう一度クリックし、[リソース アクション] の下の [メソッドの作成] を選択します。
新しく作成したコンボボックスで [POST] を選択します。
チェック マークをクリックします。新しいページが開きます。
Lambda のリージョンを選択します。
lambda 関数の名前をフィールドに入力します。
ページの右下にある [保存] をクリックします。
[Lambda 関数への権限の追加] ダイアログを確認します。
もう一度 [アクション] をクリックし、[API アクション] で [API をデプロイ] を選択します。
[デプロイ ステージ] として [prod] を選択します。
[デプロイ] をクリックします。
Opsgenie Webhook インテグレーションの設定
[設定] → [統合] の順に移動します。「Webhook」を検索して、[追加] を選択します。
AWS API Gateway が提供した API エンドポイントを [Webhook URL] テキスト フィールドに入力します。
To make our test more reliable by not sending all alerts to the Jira installation as work items, add an Alert Filter with a tag matching condition for a tag such as "jira". Give a name to the integration. We’ve named is as LambdaJiraWebhook in this example.
インテグレーションを設定したら、[インテグレーションを保存] をクリックします。
統合のテスト
これでテストする準備ができました。jira タグで新しいアラートを作成します。
以前に設定されたデフォルトの Jira プロジェクトに移動し、アラートから問題が作成されるのを確認します。
Also check that the alert just created has been assigned a new tag with jiraProjectKey: prefix. This tag is used for associating this Opsgenie Alert to the Jira Work Item whose key is included in the tag.
実装された関数でサポートされている統合フロー
Besides creating new Jira work items upon new Alert creation, the following flows are also implemented with this integration:
when you add a new note to the alert, a new comment is added to the work item,
when you acknowledge the alert, progress on the work item gets started,
when you close or delete the alert, the work item is closed as well.
これらのすべてのフローは、以下のシーケンス図に示されています。図の中のすべての項目は代表的なものであり、上記のシステムの実際の実装を反映していない可能性があることに注意してください。
もちろん、独自の要件を満たすためにコードをさらにカスタマイズすることができます。
CloudWatch ログによる Lambda ランタイムログと関数ログの監視
また、コンソール オブジェクト上に書き込んだログや AWS Lambda ランタイムが書き込んだログについても、CloudWatch ログを確認できます。最初に CloudWatch コンソールに移動します。
[ログ] をクリックします。
Lambda 関数に関連付けられた [ログ グループ]をクリックします。
Last Event Time (最後のイベント時間) 別にソートした最後のログ ストリームのいずれかをクリックします。たとえば、最新のログ ストリームをクリックします。
ランタイムと関数自体によって書き込まれたログをチェックします。
自動設定された API ゲートウェイ API の確認
API ゲートウェイ コンソールをチェックし、自動的に作成および設定されている内容を確認できます。最初にサービス コンソールに進んでください。
次に、API である OpsGenieJiraIntegrationAPI をクリックし、セットアップされた内容を調べます。API を最初から作成し、API Gateway コンソールから Lambda 関数に関連付けることもできますが、Lambdaコンソールにはショートカットが用意されており、一部の詳細はそれ自体が管理します。
トラブルシューティング
Jira のインストールの設定が原因で問題が発生する可能性があります。Jira は柔軟なシステムであり、その中心的な機能の一部が、ご使用のインストールに含まれていないか、異なる設定になっているか、API にアクセスするユーザーがそれらを使用するのに必要な権限を持っていない可能性があります。
Lambda 関数には、インストールに関する以下のような 3 つの前提条件があり、コードの中にハードコードされています。
There is a work item type named ‘Bug’
Progress on work items can be started and the transition id for this action is ‘4’.
Work items can be closed and the transition id for this action is ‘2’.
You may need to change these values to make the code run smoothly against your installation.
To see available work types you can invoke the following call against the REST API endpoint of your Jira installation:
https://docs.atlassian.com/jira/REST/latest/#d2e4188
To see available transitions on a particular work item, you can invoke the following call against the REST API endpoint of your Jira installation:
https://docs.atlassian.com/jira/REST/latest/#d2e797
このドキュメントに付随するように作成された Jira プロジェクトのタイプは、[Jira の既定のスキーム] です。
この内容はお役に立ちましたか?