Microsoft Azureにホストされたサービスからスクリプトを実行したい

Avatar
dstn

Microsoft Azureにホストされたサービスからスクリプトを実行したい

キーワード:Azure Service Bus,Microsoft Azure

概要

Microsoft Azureにホストされたサービスからスクリプトを実行したい場合、Azure Service Busトリガーを使用します。
Azure Service Busトリガーの詳細については、「 Azure Service Busトリガー」を参照してください。

サンプルプロジェクトの説明

Microsoft Azureから入力された「ファイルID」をもとに対象のファイルを読み取り、実行結果と読み取り件数を取得します。

処理の流れ

サンプルプロジェクトの処理の流れは以下の通りです。
  1. 例外監視処理」で例外を監視します。
  2. CSVファイル読み取り処理」でファイルIDで指定されたファイルを読み取ります。
  3. 変数代入処理」で読み取ったデータの件数および実行結果をスクリプト変数に代入します。
  4. エラーが発生した場合、「変数代入処理」でエラー時の件数および実行結果をスクリプト変数に代入します。
実行結果のイメージについて
  • 正常なファイルIDを渡した際の実行結果については、以下を参照してください。

    ファイルID「FILE002」で実行

    スクリプトの終了ステータス 0
    スクリプト出力変数「件数」 2
    スクリプト出力変数「ステータス」 SUCCESS

  • 存在しないファイルIDを渡した際の実行結果については、以下を参照してください。

    ファイルID「FILE003」で実行

    スクリプトの終了ステータス 10
    スクリプト出力変数「件数」 0
    スクリプト出力変数「ステータス」 ERROR

ポイントとなる機能

名前 説明
Azure Service Busトリガー Azure Service Busトリガーは、Microsoft AzureにホストされたサービスからMicrosoft Azure Service Bus(以下「Azure Service Bus」)経由でメッセージを送信することで、スクリプトを実行するトリガー機能です。

処理のポイント

メッセージ送信時、実行するスクリプトのスクリプト入力変数に代入する値を渡すことができます。
またスクリプト実行後、Microsoft Azureにホストされたサービスでメッセージを受信し、スクリプト出力変数の値や終了ステータスなどの実行結果を取得することができます。
Microsoft Azureにホストされたサービスからメッセージを送受信するには、付属するC#ライブラリを使用して行います。
詳細については、「 Azure Service Busトリガーチュートリアル」を参照してください。

サンプルプロジェクトの使用方法

上記処理を実装したサンプルプロジェクトを用意しています。サンプルプロジェクトを使用する場合の手順は、以下の通りです。

サンプルプロジェクトのダウンロード 逆引きリファレンス シナリオ086のサンプルプロジェクト
  1. サンプルプロジェクトの展開
    サンプルプロジェクトファイル「rl_reference_086.zip」を展開します。

  2. プロジェクトのアップロード
    「rl_reference_086.zip」を展開後に作成される「rl_reference_086プロジェクト」ディレクトリがプロジェクトファイルとなります。
    DataSpider Studioを起動し、マイプロジェクトの画面から[ファイル]-[ローカルからアップロード]で展開したディレクトリ「rl_reference_086プロジェクト」をアップロードしてください。

  3. サンプルデータの準備
    「rl_reference_086.zip」を展開後に作成される「samples」ディレクトリがサンプルデータとなります。
    $DATASPIDER_HOME/server/samplesディレクトリに上書きしてください。

  4. プロジェクトをサービスとして登録
    スクリプトをMicrosoft Azureにホストされたサービスから実行するため、プロジェクトをサービスとして登録します。
    デザイナから[ファイル]-[プロジェクトをサービスとして登録]を選択して登録します。
    サービス名は、「root@rl_reference_086プロジェクト」を設定します。

  5. Azure Service Busトリガーの作成
    マイトリガーの画面から[ファイル]-[新規トリガー作成]を選択し、Azure Service Busトリガーを作成します。
    Azure Service Busトリガーは、以下のように設定します。

    [Azure Service Busトリガーの設定]


    本プロパティの設定は実行環境に合わせて変更してください。

    [実行内容の設定]



    処理のポイント
    • Microsoft Azureにホストされたサービスでスクリプト出力変数の値を受け取る場合は、[スクリプト引数][出力変数]に設定された[変数名]をキーに取得してください。

スクリプトの作成手順

プロセスフローは、「 サンプルプロジェクトの説明」のスクリプト画像を参照して適宜設定してください。
  1. Microsoft Azureとの入出力変数として使用するスクリプト変数を作成します。
    • スクリプト変数のプロパティは、以下のように設定します。

      スクリプト変数のプロパティ

      変数名 変数型 初期値 スクリプト入力変数として使用する スクリプト出力変数として使用する
      ファイルID 文字列型   チェックを入れる チェックを外す
      ステータス 文字列型   チェックを外す チェックを入れる
      件数 整数型   チェックを外す チェックを入れる

  2. デザイナのツールパレット「基本」-「フロー」-「例外監視」から、例外監視処理をスクリプトキャンバスに配置します。

  3. デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル読み取り」から、CSVファイル読み取り処理をスクリプトキャンバスに配置します。
    • CSVファイル読み取り処理の設定は、以下のように行います。

      [必須設定]タブ



      処理のポイント
      • [ファイル]にスクリプト変数を使用することで、スクリプトを改修せずに動的に設定値を変更することができます。
        スクリプト変数は、以下の方法で素早く入力できます。
        • 入力フィールドにフォーカスをあてて表示させる変数入力アシスタント機能から選択します。
        • 入力フィールドの右クリックメニューで[スクリプト変数]を選択します。

  4. デザイナのツールパレット「基本」-「処理」-「変数代入」から、変数代入処理(「variable」)をスクリプトキャンバスに配置します。

  5. 変数代入処理(「variable」)のMapperエディタを開き、成功時のファイル読み取り結果をスクリプト変数に代入します。
    • マッピングキャンバスは、以下のように設定します。

      マッピングキャンバス



      番号 ロジック名 説明 ツールパレット上の場所
      (1) 単一行文字列定数 単一行の文字列定数を出力します。
      [必須設定]タブの[一行文字列]には「SUCCESS」と入力します。
      「文字列」-「基本」-「単一行文字列定数」

      処理のポイント
      • CSVファイル読み取り処理の読み取り件数はコンポーネント変数「count」で取得できます。

  6. デザイナのツールパレット「基本」-「処理」-「変数代入」から、変数代入処理(「variable(1)」)をスクリプトキャンバスに配置します。

  7. 変数代入処理(「variable(1)」)のMapperエディタを開き、失敗時のファイル読み取り結果をスクリプト変数に代入します。
    • マッピングキャンバスは、以下のように設定します。

      マッピングキャンバス



      番号 ロジック名 説明 ツールパレット上の場所
      (1) 単一行文字列定数 単一行の文字列定数を出力します。
      [必須設定]タブの[単一行文字列]には「ERROR」と入力します。
      「文字列」-「基本」-「単一行文字列定数」
      (2) 数値定数 数値定数を出力します。
      [必須設定]タブの[数値]には「0」と入力します。
      「数値」-「基本」-「数値定数」

  8. スクリプトを実行し、正常終了すれば成功です。

コメント

ログインしてコメントを残してください。

Powered by Zendesk