Pendoのデータ同期機能を使用すると、Pendoのデータ(Pendo Feedbackのデータを除く)をGoogle Cloud Storage(GCS)アカウントにエクスポートできます。この記事では、GCSのデータ同期の設定方法を説明します。
前提条件
- データ同期は有料の機能です。この機能を利用するには、Pendoの担当者にお問い合わせください。
- この作業においてクラウドストレージの保存先を設定するには、Pendoのサブスクリプション管理者であるか、データ同期の設定権限を持っている必要があります。
- ユーザーには、GCSの
storage.objects.create、storage.objects.delete、storage.objects.update権限が必要です。
設定の概要
GCSとのデータ同期では、Pendo側での設定と、Google Cloud環境での構成が必要になります。具体的には、以下の手順で実施します。
- Google Cloud Platform(GCP)のサービスアカウントを作成します。
- サービスアカウント用のJSONキーファイルを生成します。
- GCSバケットを作成します。
- GCSバケットにGCPサービスアカウントへの権限を付与します。
- Pendoでプロバイダーを選択します。
- PendoにサービスアカウントキーとバケットURLを入力します。
ステップ1:GCPサービスアカウントを作成する
サービスアカウントをお持ちでない方は、Google Cloud環境でGoogle Cloud Platform(GCP)のサービスアカウントを作成する必要があります。
- Google Cloudコンソールで、[IAM と管理(IAM & Admin)]>[サービスアカウント(Service Accounts)]に移動し、[サービスアカウントを作成(Create service account)]を選択します。
- サービスアカウント名や説明など、サービスアカウントの詳細を入力します。
- 必要に応じて、サービスアカウントのアクセスレベルを選択します。
- [完了]を選択します。これにより、[IAMサービスアカウント(IAM Service Accounts)]ページにサービスアカウントと役割が作成されます。
- メール形式のサービスアカウント名をコピーします。この記事の ステップ4 で使用するため、保存しておいてください。
詳しい情報および手順については、Googleの サービス アカウント キーの作成と管理をご覧ください。
ステップ2:サービスアカウント用のJSONキーファイルを生成する
データ同期のためにサービスアカウントを新規に作成する場合でも、既存のものを利用する場合でも、Pendoのデータ同期の宛先に入力するJSONキーファイルは生成する必要があります。このキーの生成方法は次のとおりです。
- GCPで[IAM サービスアカウント(IAM Service Accounts)]ページに移動し、データ同期に使用するサービスアカウントを見つけます。
- [操作]列で、サービスアカウントの横にある縦並びの点をクリックし、 [鍵を管理]を選択します。
- [鍵を追加]ドロップダウンメニューから[新しい鍵を作成]を選択します。
- 鍵のタイプとして[JSON]を選択し、[作成]をクリックします。
- お使いのコンピューターにキーが保存されたことを伝えるメッセージが表示されます。このメッセージは閉じて構いません。
これで、キーがコンピューターにインストールされました。この記事のステップ6 で使用するため、キーは必ず保存してください。
ステップ3:GCSバケットを作成する
PendoからエクスポートされたデータはGCSバケットにコピーされます。GCSバケットは次の手順で作成します。
- Cloud Storageで[バケット(Buckets)]に移動し、ページの上部にある[+作成(+ CREATE)]を選択します。
- バケットにわかりやすい名前を付けます。
- Googleワークフローに従って、データの場所とストレージクラスを選択し、オブジェクトへのアクセスを制御する方法とオブジェクトデータを保護する方法を指定します。
- [作成]をクリックします。
- パブリックアクセスがブロックされていることを知らせるメッセージが生成されます。[確認]をクリックします。
その後、Google Cloudの空のバケットが開きます。
ステップ4:GCSバケットにサービスアカウントへのアクセス権を付与する
GCPのサービスアカウントをGCSバケットのメンバーにして、ストレージ管理者の権限をサービスアカウントに付与します。
-
Cloud Storageのバケットでデータ同期用のバケットを見つけ、次のいずれかを実施します。
- データ同期用のバケットを開き、上部の[権限]タブを選択し、[権限を付与]を選択します。
- [バケット] ページでデータ同期用バケットの横にある縦並びの点を選択し、 [権限を編集]を選択します。
- [プリンシパルを追加(Add principal)]を選択し、この記事のステップ1でコピーしたサービスアカウント名を貼り付けて、バケットへのアクセスを許可します。
-
[役割を選択(Select a role)]で、 [クラウドストレージ(Cloud Storage)]>[ストレージ管理者(Storage Admin)]の順に選択します。これにより、GCSリソースの完全なコントロールが可能になります。または、特定の要件(
storage.objects.create、storage.objects.delete、storage.objects.update)で独自の役割を作成します。 - [保存]を選択し、サービスアカウントにデータ同期バケットへのストレージ管理者権限があることを確認します。
ステップ5:Pendoでプロバイダーを選択する
ストレージバケットにデータを送信する前に、Pendoでターゲットとなる送信先を設定する必要があります。
- Pendoで、[設定(Settings)]>[データ同期(Data Sync)]の順に進みます。
- [宛先に接続(Connect to destination)]を選択します。
- 右側にスライドアウトするパネルで[Google Cloud Storage]タイルにカーソルを合わせ、[保存先を選択(Choose destination)]を選択します。パネルには、次のステップがまとめられています。
ステップ6. PendoでGCSアカウントの宛先を設定する
最後に、サービスアカウントキーをアップロードし、バケットURLをPendoに設定します。
- バケットのURLを入力します。これは、[Google Cloud Storage]>[バケット(Buckets)]で作成されたデータ同期用バケットの構成(CONFIGURATION)タブにあります。概要(Overview )表の[gsutil URI]行にあるURLをコピーします。
- [JSONファイルをアップロード(Upload JSON file)]を選択し、本記事のステップ2で作成しダウンロードしたJSONキーファイルをアップロードします。
- サービスアカウントとシークレットキーを手動で入力する場合は、次の手順を実行します。
- JSONキーファイルに対応するサービスアカウントのメール名を入力します。
- サービスアカウントのJSONキーから
private_keyの値を入力します。
- [宛先を検証(Validate destination)]を選択し、入力した認証情報をテストします。検証結果はボタンの下に表示されます。検証に失敗した場合は、表示されたメッセージを確認するか、利用可能な場合は[エラーを表示(View error)]を選択し、宛先情報を修正してから再試行してください。
- 正常に認証されたら、[宛先を作成(Create Destination)]を選択します。
認証情報をローテーションする
Pendoで宛先を構成した後に認証情報を更新するには、以下の2つの方法があります。
- Pendo UIを使って手動で更新する。
- 公開APIを使って自動で更新する。
公開APIのエンドポイントを使用してデータ同期の認証情報を更新するには、書き込み権限のあるインテグレーションキーが必要です。
Pendo UIを使う
- Pendoで、[設定(Settings)]>[データ同期(Data Sync)]の順に進みます。
- 宛先が複数ある場合は、ページ上部でこの GCS の宛先を選択します。
- ページの右上にある[宛先を管理(Manage destination)]を選択します。
- 新しい認証情報を入力します。
公開APIを使う
- Pendoのインテグレーションキーの記事で説明されている手順に従って、新しいPendoインテグレーションキーを生成します。
- Pendoの公開API資料で、[データ同期]に移動します。
- クラウドストレージの宛先に対応する
PUTエンドポイントを選択します。 - 公開APIのエンドポイントを使用してクラウドストレージの認証情報を更新する手順に従います。
クラウドストレージの宛先を更新する
クラウドストレージの宛先を、あるGCSバケットから別のバケットに移動したり、クラウドストレージサービスをMicrosoft AzureやAmazon S3などの別のプロバイダーに変更するオプションがあります。
GCSバケットを更新する
あるGCSバケットから別の既存のGCSバケットに変更する場合は、PendoでバケットURLを更新します。1つのサブスクリプションにつき、顧客所有のGCS宛先は1つしか設定できないため、2つ目を追加するのではなく、既存の宛先を更新してください。
- Pendoで、[設定(Settings)]>[データ同期(Data Sync)]の順に進みます。
- 宛先が複数ある場合は、ページ上部でこの GCS の宛先を選択します。
- ページの右上にある[宛先を管理(Manage destination)]を選択します。
- Bucket URLフィールドのエントリを、データ同期に使用する新しいGCSバケットの名前に置き換えます。
- [宛先を更新(Update destination)]を選択します。
クラウドストレージプロバイダーを変更する
GCSからAmazon S3、Microsoft Azure Storage、またはデータウェアハウスの宛先など、別の種類の宛先に移行するには、現在のGCSの宛先がまだ稼働している間に、新しい宛先を追加してください。最初にGCSの宛先を削除しないでください。
- 該当する宛先タイプの設定方法に関する記事の手順に従って、新しい宛先を設定してください。
- 新しい宛先に必要なエクスポートを作成してください。設定と定期エクスポートは、GCSの宛先からコピーされません。
- 新しい宛先にエクスポートが届いていることを確認します。
- 以下の方法でGCS宛先を削除します。
- Pendoで、[設定(Settings)]>[データ同期(Data Sync)]の順に進みます。
- ページ上部にあるこのGCSの宛先を選択します。
- ページの右上にある[宛先を管理(Manage destination)]を選択します。
- 宛先を削除(Delete destination)を選択します。
- 宛先を削除することを確定します。
宛先を削除すると、その宛先の定期的なエクスポートと継続的なメタデータの更新は自動的にオフになり、進行中のエクスポートはすべてキャンセルされます。その他の設定済み宛先は引き続き同期されます。
サブスクリプションごとに、各タイプの宛先を1つのみ設定できます。PendoがホストするGCSと顧客所有のGCSは、異なるタイプとして扱われます。PendoがホストするGCSに関する詳細については、Pendoのアカウントチームにお問い合わせください。
次のステップ
宛先が作成されたら、エクスポートを作成し、それらをロードするパイプラインを構築します。
- イベントのエクスポートを作成および読み込むにはデータ同期イベントのエクスポート処理を参照してください。
- アカウントと訪問者のエクスポートを作成して読み込むにはデータ同期アカウントと訪問者のエクスポート処理を参照してください。
- エクスポートファイルごとのフィールドについてはデータ同期スキーマの定義を参照してください。