DOCS
インテグレーションガイド / IBM Bluemix

IBM Bluemix

本記事は米国PagerDuty社のサイトで公開されているインテグレーションガイドをそのまま日本語に翻訳したものです。日本語環境での動作を保証するわけではありません。原文はこちらを参照してください。

IBM Bluemixクラウド・プラットフォームは、実際の問題を解決し、アプリケーション、インフラストラクチャー、サービスなどでビジネスを推進するに役立ちます。 Bluemixは、複数のデータソースの統合、システムの拡張、コグニティブ(認識)サービスの組み込みにより、ビジネス価値を迅速かつ安価に推進することも可能になります。

PagerDutyでの設定

  1. ConfigurationメニューからServiceを選択します。

  2. Servicesページで、

    • 新しいサービスを作成する場合は、+Add New Serviceをクリックします。
    • 既存のサービスに追加する場合は、サービスの名前をクリックします。その後、Integrationsタブをクリックし、New Integrationボタンをクリックします。 RS-Add-New-Service-12-300x113
  3. Integration Typeメニューからアプリケーションを選択し、Integration Nameを入力します。新しいサービスを作成する場合は、General Settingsで、新しいサービスのNameを入力します。次に、インシデント設定で、新しいサービスのEscalation Policy(エスカレーションポリシー)、Notification Urgency(通知の緊急性)、Incident Behavior(インシデントの動作)を指定します。

  4. Add ServiceまたはAdd Integrationボタンをクリックして、新しいインテグレーションを保存します。するとサービスのIntegrationsページにリダイレクトされます。 service_integration-1-1024x372-300x109

  5. 新しいインテグレーションのIntegration Keyをコピーします。 RS_Updates__API_Services-1024x146-8-300x43

IBM Bluemixでの設定

  1. 次のJavaScript codeをコピーしてください。

    // This action will trigger or resolve an incident within PagerDuty
    //
    // The params object passed to the action should be a payload formatted for the PagerDuty Events API
    // The params object must contain a "service_key" and "description". The "event_type" will default to "trigger".
    //
    // https://v2.developer.pagerduty.com/docs/trigger-events
    
    var request = require('request');
    
    function main(params) {
     // Check for required params
     if (!params.service_key || !params.description) { throw 'params must include service_key and description'; }
     if (!params.event_type) { params.event_type = 'trigger'; }
    
     console.log(`Params: ${JSON.stringify(params)}`);
    
     // Set request options
     var options = {
     	url: 'https://events.pagerduty.com/generic/2010-04-15/create_event.json',
     	method: 'POST',
     	json: true,
     	body: params
     };
    
     // Make POST request
     return new Promise(function(resolve, reject) {
     	request(options, function(error, response, body) {
     		if (error) {
     			reject(error);
     		}
     		else {
     			resolve(body);
     		}
     	});
     });
    }
    
  2. OpenWhisk Editorを開きます。

  3. Create an actionをクリックします。

  4. 上記でコピーしたコードをエディタに貼り付けます。

  5. Make It Liveをクリックします。

よくある質問

  1. 私のアクションにどのようなパラメータを渡すことができますか?

    OpenWhiskアクションは、Events API v1で受け入れられるすべてのパラメータを取り込む(インジェスト)できます 。

  2. どうすればこのアクションを使用してインシデントをトリガすることができますか?

    Events API v1でインシデントをトリガするようにパラメータが設定されたOpenWhiskアクションを発動することで、PagerDutyでインシデントトリガを使えます。 たとえば、以下のコマンドはOpenWhisk CLIを使用して、インシデントをトリガしたものです。ここで、インテグレーションキーはbdb63026b4514cd7b143604f460cca30fです。このコマンドは、アクションの名前がPagerdutyであることを前提としています。

    wsk action invoke pagerduty –blocking –result –param event_type trigger –param description “Server is on fire” –param service_key bdb63026b4514cd7b143604f460cca30f

  3. このアクションを使用してインシデントを管理はどうすればよいですか?

    インシデントを管理するには、管理するインシデントのincident_keyとインシデントの更新状態のevent_typeを指定して、PagerDutyアクションを発動することが必要です。 以下は、それぞれインシデントを承認して解決する 2つの例です。

    wsk action invoke pagerduty –blocking –result –param event_type acknowledge –param service_key bdb63026b4514cd7b143604f460cca30f –param incident_key 8e6cd11a23a34985b4a94fd556326132
    
    wsk action invoke pagerduty –blocking –result –param event_type resolve –param service_key bdb63026b4514cd7b143604f460cca30f –param incident_key 8e6cd11a23a34985b4a94fd556326132