ワークフローから Google スプレッドシートに書き込む

Google スプレッドシートは、リアルタイムでの共同編集が可能な、データの可視化、処理、通信のためのツールを提供するクラウドベースのスプレッドシート ソリューションです。

次の例は、ワークフローからスプレッドシートに書き込む方法を示しています。このワークフローは、BigQuery データセットに対してクエリを実行し、結果を Google スプレッドシートに書き込みます。Workflows コネクタを使用して、 Google Cloud API の呼び出しを簡素化します。

始める前に

このドキュメントの例を試す前に、次のことが完了していることを確認してください。

  1. Compute Engine、Google ドライブ、Google スプレッドシート、Workflows API を有効にします。

    コンソール

    API を有効にする

    gcloud

    gcloud services enable \
        compute.googleapis.com \
        drive.googleapis.com \
        sheets.googleapis.com \
        workflows.googleapis.com
  2. Compute Engine のデフォルトのサービス アカウントをメモしておいてください。テスト目的で、このサービス アカウントをワークフローの例に関連付けます。Compute Engine API が有効になっている新しいプロジェクトには、IAM 基本編集者ロールや、以下のメール形式を持つサービス アカウントが作成されます。

    PROJECT_NUMBER-compute@developer.gserviceaccount.com

    プロジェクト番号は、 Google Cloud コンソールの [ようこそ] ページで確認できます。また、次の方法で取得することもできます。

    gcloud projects describe PROJECT_ID

    本番環境では、新しいサービス アカウントを作成して、必要最小限のアクセス許可を含む、最小権限の原則に従った 1 つ以上の IAM ロールを付与することを強くおすすめします。

  3. Google ドライブに新しいフォルダを作成します。このフォルダはスプレッドシートの保存に使用されます。共有フォルダの権限を設定することで、ワークフローによるスプレッドシートへの書き込みができるようになります。

    1. drive.google.com にアクセスする。
    2. [新規] > [新しいフォルダ] をクリックします。
    3. フォルダ名を入力します。
    4. [作成] をクリックします。
    5. 新しいフォルダを右クリックし、[共有] を選択します。
    6. Compute Engine のデフォルト サービス アカウントのメールアドレスを追加します。

      これにより、サービス アカウントにフォルダへのアクセスが許可されます。サービス アカウントをワークフローに関連付けると、そのワークフローにはフォルダ内の任意のファイルに対する編集権限が付与されます。ファイル、フォルダ、ドライブの共有の詳細

    7. 編集者のロールを選択します。

    8. [通知] チェックボックスをオフにします。

    9. [共有] をクリックします。

スプレッドシートを作成する

スプレッドシートは、次のいずれかの方法で作成できます。

Google Sheets API を使用して、指定したフォルダ内に直接スプレッドシートを作成するオプションはありません。ただし、次の例に示すように、スプレッドシートを作成した後に、特定のフォルダに移動するなど、別の方法もあります。詳細については、Google ドライブ フォルダを操作するをご覧ください。

Google スプレッドシートを使用してスプレッドシートを作成する

Google スプレッドシートを使用して作成したスプレッドシートは、Google ドライブに保存されます。デフォルトでは、スプレッドシートはドライブのルートフォルダに保存されます。

  1. sheets.google.com にアクセスします。

  2. [新規] をクリックします。Plus

    新しいスプレッドシートが作成され、開きます。各スプレッドシートには一意の spreadsheetId 値があり、これには文字、数字、ハイフン、アンダースコアが含まれます。スプレッドシート ID は Google スプレッドシートの URL で確認できます。

    https://docs.google.com/spreadsheets/d/spreadsheetId/edit#gid=0

  3. この ID はワークフローの作成時に必要になるため、メモしておいてください。

  4. 前に作成した Google ドライブ フォルダにスプレッドシートを移動します。

    1. スプレッドシートで、[ファイル] > [移動] を選択します。
    2. 作成したフォルダに移動します。
    3. [移動] をクリックします。

Google Sheets API コネクタを使用してスプレッドシートを作成する

Google Sheets API コネクタを使用してスプレッドシートを作成できます。Workflows はサービス アカウントをトリガー ID として使用するため、サービス アカウントの Google ドライブのルートフォルダにスプレッドシートが作成されます。その後、スプレッドシートを別のフォルダに移動できます。

次のワークフローでは、spreadsheetIdresp の結果から取得されます。

YAML

main:
  steps:
    - init:
        assign:
          - folder_id: 'FOLDER_ID'
          - drive_url: 'https://www.googleapis.com/drive/v3/files/'
          - drive_auth_scope: 'https://www.googleapis.com/auth/drive'
    - create_sheet:
        call: googleapis.sheets.v4.spreadsheets.create
        args:
          body: null