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

AWS Lambda を介して Opsgenie を Jira と統合する

Lambda は、サーバーなしでコードを実行する AWS のコンピューティング サービスです。AWS Lambda は、インテグレーションを含む多くのユースケース、特に Opsgenie や Jira のような SaaS ソリューションを統合する場合に最適なソリューションです。

インストール
次のステップでは、AWS API ゲートウェイと Lambda サービスによって Opsgenie と Jira を統合する方法について説明します。

AWS Lambda を使用して Jira を Opsgenie と統合するプロセスを示す画像。

API ゲートウェイ エンドポイントを介した Lambda 関数の作成

AWS Lambda コンソールに移動します。

Lambda コンソールにリダイレクトするナビゲーション項目を示す画像。

AWS Lambda に初めてアクセスする場合は、ようこそ画面が表示されます。[今すぐ始める] をクリックします。



AWS Lambda の開始ボタンを示す画像。

[ブランク機能] をクリックして、ブループリントを選択します。



AWS Lambda の空白の関数ナビゲーションを示す画像。

関数トリガーとして [API ゲートウェイ] を選択します。

Lambda の設定トリガー オプションの API ゲートウェイ オプションを示す画像。


API ゲートウェイ エンドポイントの API 名を入力します。例: OpsgenieJIRAIntegrationAPI

[デプロイメント ステージ] として [prod] を選択し、[セキュリティ] オプションとして [オープン] を選択します。

[次へ] をクリックします。

AWS Lambda での設定トリガーのナビゲーションを示す画像。

 

Lambda 関数の名前を入力します (例: opsGeniejiraIntegration)。

説明: 必要に応じて入力するか空白のままにします。

ランタイム: [Node.js] およびコード エントリ タイプ: [コードをインラインで編集]。

Lambda 関数の定義を示す画像。
Jira インテグレーションの Lambda 関数を示す画像。

ogLambdaJira.js から JavaScript コードをインライン エディターに貼り付けます。



AWS Lambda 設定関数のコードのスクリプトを示す画像。

コードの最初には、Opsgenie と Jira のアカウント情報に応じて設定するオプションがいくつかあります。

Jira (アトラシアンから) のホスト バージョンが使用されている場合は、Jira アカウント名に置き換えます。

Jira のカスタム インストールが使用されている場合は、それに応じて jiraHost、jiraBasePath、jiraProtocol、jiraPort の各変数を更新します。

別の地域のお客様の場合

Opsgenie が別のドメイン (例: EU、サンドボックス) から使用されている場合は、OGHost を更新してください。

デフォルトの API インテグレーションまたはその他の API インテグレーションの Opsgenie API キーに置き換えます。

Jira アカウントに応じて正しい値を入力します。

Opsgenie の AWS Lambda インテグレーションで Jira の値を入力する場所を示す画像。

Opsgenie に作成されたアラートごとに、Jira プロジェクト内に新しい Jira 問題が作成されます。問題が作成されるプロジェクトを決定できるように、コードには 2 つの設定があります。

AlertTagToJiraProjectKey マップを使用して、アラート タグを Jira プロジェクト キーに関連付けます。

jiraDefaultProjectKey は、タグ キー マッピングのいずれもアラートから照合できない場合に使用されるデフォルトの Jira プロジェクトキーの略です。

Jira インストールにプロジェクトが 1 つしかない、または同じ Jira プロジェクト内にすべての問題を作成する場合は、そのキーをデフォルトとして入力してマッピングを空の配列のままにします。

Opsgenie の AWS ラムダ インテグレーションで Jira プロジェクト キーを入力する場所を示す画像。

Handler の値を index.handler のままにし、[ロール] に [カスタムロールを作成] を選択します。

新しく開いたウィンドウで [許可] をクリックして、Amazon CloudWatch にログを送信するために必要なアクセス許可を Lambda 関数に付与します。

Jira インテグレーションで Lambda 関数を許可する方法を示す画像。

万が一のために、[詳細設定] ペインで [タイムアウト値] に 5 を選択します。[メモリ] の値は 128 のままにしておきます。この値は今回は十分な値です。



Opsgenie の Jira インテグレーションにおける Lambda 関数の詳細設定を示す画像。

[機能の設定] ページのすべての手順を完了したら、[次へ] をクリックします。



AWS Lambda の次のステップを切り替える場所を示す画像。

次のページで [関数の作成] をクリックします。



Lambda 関数の作成ボタンを示す画像。

[AWS] > [サービス] > [API ゲートウェイ] の順に移動します。

左側のメニューの [API] タブで、lambda スクリプト用に作成した API を選択します。

[/your_lambda_function_name] の下にある [任意] をクリックします。

上の [アクション] をクリックして、[メソッドのアクション] の [メソッドの削除] を選択します。

削除アクションを確認します。

[アクション] をもう一度クリックし、[リソース アクション] の下の [メソッドの作成] を選択します。

新しく作成したコンボボックスで [POST] を選択します。

チェック マークをクリックします。新しいページが開きます。

Lambda のリージョンを選択します。

lambda 関数の名前をフィールドに入力します。

ページの右下にある [保存] をクリックします。

[Lambda 関数への権限の追加] ダイアログを確認します。

もう一度 [アクション] をクリックし、[API アクション] で [API をデプロイ] を選択します。

[デプロイ ステージ] として [prod] を選択します。

[デプロイ] をクリックします。

AWS Lambda のアクションの設定。

Opsgenie Webhook インテグレーションの設定

  1. [設定] → [統合] の順に移動します。Webhook を検索して [追加] を選択します。

  2. AWS API Gateway が提供した API エンドポイントを [Webhook URL] テキスト フィールドに入力します。

  3. 問題として Jira インストールにすべてのアラートを送信しないことで、テストの信頼性を高めるには、「jira」などのタグにタグの一致条件を含むアラート フィルターを追加します。統合に名前を付けます。この例では、LambdaJiraWebhook という名前にしました。

  4. インテグレーションを設定したら、[インテグレーションを保存] をクリックします。

AWS Lambda インテグレーションのために Webhook を保存する場所を示すスクリーンショット。

統合のテスト

これでテストする準備ができました。jira タグで新しいアラートを作成します。

Jira タグ付きのアラートのスクリーンショット。

以前に設定されたデフォルトの Jira プロジェクトに移動し、アラートから問題が作成されるのを確認します。

アラートで作成された Jira 問題のスクリーンショット。

 

また、作成したアラートに jiraProjectKey: プレフィックスが付いた新しいタグが割り当てられていることを確認します。このタグは、この Opsgenie アラートをタグに含まれている Jira の課題に関連付けるために使用されます。



リスト内のアラート (Jira タグ付き) のスクリーンショット。

実装された関数でサポートされている統合フロー

新しいアラートの作成時に新しい Jira の問題を作成するほか、この統合では次のフローも実装されます。

  • アラートに新しいメモを追加すると、新しいコメントが課題に追加されます

  • アラートを承認すると、問題の進捗状況が開始されます

  • アラートをクローズするか削除すると、問題もクローズされます。

これらのすべてのフローは、以下のシーケンス図に示されています。図の中のすべての項目は代表的なものであり、上記のシステムの実際の実装を反映していない可能性があることに注意してください。

Opsgenie の Jira と AWS Lambda の統合を説明する図。

もちろん、独自の要件を満たすためにコードをさらにカスタマイズすることができます。

CloudWatch ログによる Lambda ランタイムログと関数ログの監視

また、コンソール オブジェクト上に書き込んだログや AWS Lambda ランタイムが書き込んだログについても、CloudWatch ログを確認できます。最初に CloudWatch コンソールに移動します。

Amazon Web Services プラットフォームの CloudWatch の場所を示す画像。

[ログ] をクリックします。



Amazon Web Services プラットフォームのログの場所を示す画像。

Lambda 関数に関連付けられた [ログ グループ]をクリックします。

Amazon Web Services プラットフォームのログ ストリームの場所を示す画像。


Last Event Time (最後のイベント時間) 別にソートした最後のログ ストリームのいずれかをクリックします。たとえば、最新のログ ストリームをクリックします。

Amazon Web Services プラットフォームのログ グループの場所を示す画像。

 

ランタイムと関数自体によって書き込まれたログをチェックします。

Amazon Web Services プラットフォームのログを示す画像。

自動設定された API ゲートウェイ API の確認

API ゲートウェイ コンソールをチェックし、自動的に作成および設定されている内容を確認できます。最初にサービス コンソールに進んでください。

Amazon Web Services プラットフォームの API ゲートウェイの場所を示す画像。

次に、API である OpsGenieJiraIntegrationAPI をクリックし、セットアップされた内容を調べます。API を最初から作成し、API Gateway コンソールから Lambda 関数に関連付けることもできますが、Lambdaコンソールにはショートカットが用意されており、一部の詳細はそれ自体が管理します。



Jira インテグレーション用の API を作成する場所を示す画像。

 

トラブルシューティング

Jira のインストールの設定が原因で問題が発生する可能性があります。Jira は柔軟なシステムであり、その中心的な機能の一部が、ご使用のインストールに含まれていないか、異なる設定になっているか、API にアクセスするユーザーがそれらを使用するのに必要な権限を持っていない可能性があります。

Lambda 関数には、インストールに関する以下のような 3 つの前提条件があり、コードの中にハードコードされています。

  • 「Bug」という名前の課題タイプがあります

  • 課題の進捗状況を開始できます。このアクションのトランジション ID は「4」です。

  • 問題をクローズでき、このアクションのトランジション ID は「2」です。
    インストールに対してコードをスムーズに実行するには、これらの値を変更する必要があります。

特定の問題で利用可能なトランジションを確認するには、Jira インストールの REST API エンドポイントに対して次の呼び出しを行います。

https://docs.atlassian.com/jira/REST/latest/#d2e4188

特定の課題で利用可能なトランジションを確認するには、Jira インストールの REST API エンドポイントに対して次の呼び出しを行います。

https://docs.atlassian.com/jira/REST/latest/#d2e797

このドキュメントに付随するように作成された Jira プロジェクトのタイプは、[Jira の既定のスキーム] です。

統合用の jira プロジェクトが作成される場所を示すスクリーンショット。

その他のヘルプ