Application Integration でサポートされているコネクタをご覧ください。

Apps Script タスク

Apps Script タスクを使用すると、統合から Google Apps Script を実行できます。Google Apps Script は、高速かつ容易なビジネス アプリケーションの作成を可能にする迅速性に優れたアプリケーション開発プラットフォームです。詳細については、Google Apps Script をご覧ください。このタスクは、カスタム スクリプトを実行する場合、または既存のスクリプトを統合で再利用する場合に有用です。

始める前に

Apps Script タスクを使用する前に、次の手順を完了しておいてください。

AppsScript API を有効にする

このタスクを使用するには、Google Cloud プロジェクトの AppsScript API と AppsScript ユーザー アカウントを有効にする必要があります。Google Cloud プロジェクトで AppsScript API を有効にする方法については、標準 Google Cloud プロジェクトで API を有効にするをご覧ください。ユーザー アカウントで API を有効にするには、[設定] をクリックし、Google Apps Script APIOn に設定します。

OAuth 2.0 クライアント ID を作成する

利用可能な OAuth 2.0 クライアント ID をお持ちの場合は、この手順をスキップして認証プロファイルの設定に進むことができます。

新しい OAuth クライアント ID の作成については、OAuth クライアント ID の作成をご覧ください。

認証プロファイルを設定する

Application Integration では、認証プロファイルを使用して Google Cloud に接続し、Apps Script プロジェクトをデプロイして実行します。認証プロファイルを設定する手順は、次のとおりです。

Apps Script タスクを追加する

  1. Google Cloud コンソールで [Application Integration] ページに移動します。

    Application Integration に移動

  2. ナビゲーション メニューで [統合] をクリックします。

    [統合] ページが開き、Google Cloud プロジェクトで使用可能なすべての統合が一覧表示されます。

  3. 既存の統合を選択するか、[統合の作成] をクリックして新しい統合を作成します。

    新しい統合を作成する場合:

    1. [統合の作成] ペインで名前と説明を入力します。
    2. 統合のリージョンを選択します。
    3. 統合用のサービス アカウントを選択します。統合のサービス アカウントの詳細は、統合ツールバーの [統合の概要] ペインでいつでも変更または更新できます。
    4. [作成] をクリックします。

    統合エディタで統合が開きます。

  4. 統合エディタのナビゲーション バーで、[タスク] をクリックして、使用可能なタスクとコネクタのリストを表示します。
  5. [Apps Script] 要素をクリックして統合エディタに配置します。

認証プロファイルを作成する

  1. デザイナーの [Apps Script] 要素をクリックして、[Apps Script] タスク構成ペインを表示します。
  2. Apps Script タスクのタスク構成ペインで、[+ 新しい認証プロファイル] をクリックします。
  3. [認証プロファイル] ダイアログで、プロファイルの名前と説明を入力して、次のプロパティを設定します。
    • 認証の種類: OAuth 2.0 認証コードを選択します。
    • 認証エンドポイント: 「https://accounts.google.com/o/oauth2/auth」と入力します。
    • トークン エンドポイント: 「https://oauth2.googleapis.com/token」と入力します。
    • クライアント ID: クライアント ID を入力します。

      クライアント ID は、Google Cloud プロジェクト ダッシュボードの [認証情報] > [OAuth 2.0 クライアント ID] で確認できます。

    • シークレット: クライアント シークレットを入力します。

      クライアント シークレットは、Google Cloud プロジェクト ダッシュボードの [認証情報] > [OAuth 2.0 クライアント ID] で確認できます。

    • スコープ: 次のように入力します。

      https://www.googleapis.com/auth/script.projects https://www.googleapis.com/auth/script.deployments https://www.googleapis.com/auth/script.deployments.readonly https://www.googleapis.com/auth/drive.scripts https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/script.external_request https://www.googleapis.com/auth/userinfo.email

      : 複数のスコープは、スペース 1 文字(「 」)で区切ることができます。

  4. [アクセス トークンの生成と保存] をクリックします。

    認可画面にリダイレクトされます。ログインして、表示された許可画面に同意し、アクセス トークンを生成します。アクセス トークンの生成が正常に終了すると、認証プロファイルが保存され、統合の編集を続行できます。

Apps Script タスクを設定する

Apps Script タスクで Apps Script プロジェクトを構成するには、次の手順を行います。

  1. タスク構成ペインで、[Apps Script プロジェクトの構成] をクリックします。

    [Apps Script 構成] ダイアログが表示されます。

  2. 既存の Apps Script プロジェクトにリンクするか、新しい Apps Script プロジェクトを作成できます。

    Apps Script プロジェクトを構成すると、Apps Script プロジェクトが Application Integration の統合に関連付けられます。

  3. [保存] をクリックします。
  4. [Apps Script プロジェクトを開く] をクリックします。

    Apps Script エディタでは、次のファイルを表示できます。

    • Run.gs: 実行可能コードが含まれます。run 関数内でスクリプトを記述します。この関数は、Apps Script タスクの実行時に呼び出されます。スクリプトでは、統合レベルで定義された変数を使用できます。統合変数の使用ついての情報は、統合変数の使用をご覧ください。
    • Main.gs: 統合から Apps Script を実行するための初期化コードが含まれています。このファイルは、編集 / 変更しないでください。
    • Test.gs: テスト実行の実行コードが含まれます。testRun 関数内にスクリプトを記述して、スクリプトをテストできます

    プロジェクトは、ウェブアプリ形式でデプロイしてください。さまざまなデプロイモードの詳細については、デプロイの作成と管理をご覧ください。

統合変数にアクセスする

Apps Script タスクでは、AppsScriptTask ライブラリを使用します。このライブラリにより、スクリプトで統合変数を使用できます。AppsScriptTask ライブラリが自動的にインポートされ、run 関数で使用できます。

Apps Script の統合変数にアクセスするには、変数をタスク パラメータの形式で Apps Script タスクに渡す必要があります。タスク パラメータは Key-Value ペアです。ここで、Key は AppsScript タスクの変数の名前、Value は対応する統合変数名です。タスク設定ペインの [Task Parameters] セクションで、1 つ以上のタスク パラメータを追加できます。

たとえば、Apps Script で使用する Product という名前の統合変数がある場合は、KeyProductKey、その値を Product として定義できます。このように処理すると、Apps Script で AppsScriptTask.getTaskParameter('ProductKey') を使用して Product 変数を読み取ることができます。

AppsScriptTask ライブラリには、統合変数にアクセスするための次のメソッドが用意されています。

関数名 説明 用途

setIntegrationVariable

指定された値を変数に設定します。

構文: setIntegrationVariable(value,value)

例:

// Write to an Integer variable
AppsScriptTask.setIntegrationVariable('EmployeeIDKey','456');
      

getTaskParameter

変数の値を取得します。

構文: getTaskParameter(value)

例:

// Read an integration variable
AppsScriptTask.getTaskParameter('EmployeeIDKey');
       

AppsScriptTaskライブラリで使用可能なすべての関数を表示するには、Apps Script エディタの [AppsScriptTask] メニュー項目にカーソルを合わせて、Apps Script エディタのメニュー項目で、[その他] > [新しいタブで開く] の順にクリックします。

Apps Script をテストする

統合を公開する前に、testRun ファイルで利用可能な testRun 関数を使用してスクリプトをテストできます。テストコードは、testRun ライブラリを使用して、testRun 関数に記述します。このライブラリを使用すると、アサーション ベースのテストケースを実行でき、testRun 関数で使用するために自動的にインポートされます。

AppsScriptTaskTest ライブラリの利用可能なすべての関数を表示するには、Apps Script エディタで AppsScriptTaskTest メニュー項目にカーソルを合わせ、その他アイコン > [新しいタブで開く] をクリックします。

次のサンプルでは、AppsScriptTaskTest ライブラリ関数の使用方法を示します。

function testRun(){

  // Create a new request
  let req = AppsScriptTaskTest.createNewTestRequest('myCustomTest');

  // Add a task parameter that references an integration variable with the value 5
  AppsScriptTaskTest.setIntegrationVariableAndCreateReference(req, 'input', '$input$', 5);

  // Add a task parameter that references an integration variable
  AppsScriptTaskTest.createReference(req, 'output', '$output$');

  // Run the task(assuming the task increments the input by 1) and get the response
  let res = AppsScriptTaskTest.runTest(req, executeScript);

  // Check the response for the expected integration variable and its corresponding values
  AppsScriptTaskTest.containsIntegrationVariable(res, 'output', true);
  AppsScriptTaskTest.containsIntegrationVariable(res, 'someOtherIntegrtionVariable', false);
  AppsScriptTaskTest.containsIntegrationVariableWithValue(res, 'output', 6);
}

次のサンプルは、testRun メソッドで JSON と配列変数にアクセスする方法を示しています。

function testRun(){

  // Create a new request
  let req = AppsScriptTaskTest.createNewTestRequest('json-test');

  // Add a task parameter that references a JSON integration variable
  AppsScriptTaskTest.setIntegrationVariableAndCreateReference(req, "emp", "employee", {name:"snape", age:35});

  // Add a task parameter that references an array integration variable
  AppsScriptTaskTest.setIntegrationVariableAndCreateReference(req, "arr", "array", ["A", "B", "C"]);


  // Run the task and get the response
  // Assume that the run method increases the age of the employee by 5 and appends a new element in the array
  let res = AppsScriptTaskTest.runTest(req, executeScript);

  // Check the response for the expected integration variable and its corresponding values
  AppsScriptTaskTest.containsIntegrationVariableWithValue(res, "employee", {name:"snape", age:40});
  AppsScriptTaskTest.containsIntegrationVariable(res, "array", true);
  AppsScriptTaskTest.containsIntegrationVariableWithValue(res, "array", ["A", "B", "C", "D"]);
}

テストケースを実行すると、実行ログでアサーションを表示できます。ログを表示するには、メニューの [実行ログ] をクリックします。

ベスト プラクティス

統合でタスクのレイテンシを 1~2 秒未満にする必要がある場合、Apps Script タスクの使用はおすすめしません。

また、パフォーマンスのボトルネックを最小限に抑えるため、複数の Apps Script タスクをチェーン化するのではなく、すべてのロジックを単一の Apps Script タスクにコーディングすることをおすすめします。

Apps Script タスクに適用される使用量上限については、使用量上限をご覧ください。

考慮事項

Apps Script タスクを統合設計に含める場合は、次のシステム制限を考慮してください。

  • AppsScript のアクティブなデプロイの最大数: 50
  • API 実行可能ファイルの秒間クエリ数(QPS): 5,000 / 分
  • ウェブアプリ デプロイメントの秒間クエリ数(QPS): 5,000 / 分
  • API 実行可能ファイルのレイテンシ: 1.5 秒
  • Webapp のレイテンシ: 2.5 秒
  • AppsScript 内のすべての統合変数の最大累積サイズ: 15 MB

エラー処理方法

タスクのエラー処理方法では、一時的なエラーによってタスクが失敗した場合のアクションを指定します。エラー処理方式と、さまざまな種類のエラー処理方式の詳細については、エラー処理方法をご覧ください。

SLA の免責

Apps Script タスクは、Google Apps Script プロダクトに依存しています。 この依存関係は Application Integration の外部にあるため、Apps Script タスクの失敗が原因で実行がすべて失敗した active 統合は、Application Integration サービスレベル契約(SLA)の利用規約から除外されます。

割り当てと上限

割り当てと上限については、割り当てと上限をご覧ください。

次のステップ