Cloud Storage
Google Cloud Storage コネクタによって、Google Cloud Storage に接続してファイル転送オペレーションを実行できます。
始める前に
Cloud Storage コネクタを使用する前に、次のタスクを行います。
- Google Cloud プロジェクトで次の操作を行います。
- ネットワーク接続が設定されていることを確認します。ネットワーク パターンの詳細については、ネットワーク接続をご覧ください。
- コネクタを構成するユーザーに roles/connectors.admin IAM ロールを付与します。
- コネクタに使用するサービス アカウントに、次の IAM ロールを付与します。
roles/secretmanager.viewer
roles/secretmanager.secretAccessor
roles/storage.admin
サービス アカウントは特別なタイプの Google アカウントで、Google API のデータにアクセスするのに認証を受ける必要がある人間以外のユーザーを表します。サービス アカウントがない場合は、サービス アカウントを作成する必要があります。詳細については、サービス アカウントを作成するをご覧ください。
- 次のサービスを有効にします。
secretmanager.googleapis.com
(Secret Manager API)connectors.googleapis.com
(Connectors API)
サービスを有効にする方法については、サービスを有効にするをご覧ください。
以前にプロジェクトでこうしたサービスを有効にしていない場合は、コネクタを構成するときにそれを有効にすることを求められます。
コネクタを構成する
コネクタを構成するには、データソース(バックエンド システム)への接続を作成する必要があります。接続はデータソースに特有です。つまり、多数のデータソースがある場合は、データソースごとに別々の接続を作成する必要があります。接続を作成する手順は次のとおりです。
- Cloud コンソールで、[Integration Connectors] > [接続] ページに移動し、Google Cloud プロジェクトを選択または作成します。
- [+ 新規作成] をクリックして [接続の作成] ページを開きます。
- [ロケーション] セクションで、接続のロケーションを選択します。
- リージョン: プルダウン リストからロケーションを選択します
サポートされているすべてのリージョンの一覧については、ロケーションをご覧ください。
- [NEXT] をクリックします。
- リージョン: プルダウン リストからロケーションを選択します
- [接続の詳細] セクションで、次の操作を行います。
- コネクタ: 使用可能なコネクタのプルダウン リストから [Cloud Storate] を選択します。
- コネクタのバージョン: 使用可能なバージョンのプルダウン リストからコネクタのバージョンを選択します。
- [接続名] フィールドに、接続インスタンスの名前を入力します。
接続名は次の条件を満たす必要があります。
- 接続名には英字、数字、ハイフンを使用できます。
- 文字は小文字のみを使用できます。
- 接続名の先頭には英字を設定し、末尾には英字または数字を設定する必要があります。
- 接続名は 49 文字以内で指定してください。
- 必要に応じて、接続インスタンスの [説明] を入力します。
- 必要に応じて、Cloud Logging を有効にして、ログレベルを選択します。デフォルトのログレベルは
Error
に設定されています。 - サービス アカウント: 必要なロールを持つサービス アカウントを選択します。
- 必要に応じて、接続ノードの設定を構成します。
- ノードの最小数: 接続ノードの最小数を入力します。
- ノードの最大数: 接続ノードの最大数を入力します。
ノードは、トランザクションを処理する接続の単位(またはレプリカ)です。1 つの接続でより多くのトランザクションを処理するには、より多くのノードが必要になります。逆に、より少ないトランザクションを処理するには、より少ないノードが必要になります。ノードがコネクタの料金に与える影響については、接続ノードの料金をご覧ください。値を入力しない場合は、デフォルトで最小ノード数は 2 に設定され(可用性を高めるため)、最大ノード数は 50 に設定されます。
- プロジェクト ID: データが存在する Google Cloud プロジェクトの ID。
- 必要に応じて、[+ ラベルを追加] をクリックして Key-Value ペアの形式でラベルを接続に追加します。
- [NEXT] をクリックします。
- 確認: 接続を確認します。
- [作成] をクリックします。
エンティティ、オペレーション、アクション
すべての Integration Connectors が、接続されたアプリケーションのオブジェクトを抽象化するレイヤを提供します。アプリケーションのオブジェクトには、この抽象化を通じてのみアクセスできます。抽象化は、エンティティ、オペレーション、アクションとして公開されます。
- エンティティ: エンティティは、接続されているアプリケーションやサービスのオブジェクト、またはプロパティのコレクションと考えることができます。エンティティの定義は、コネクタによって異なります。たとえば、データベース コネクタでは、テーブルがエンティティであり、ファイル サーバー コネクタでは、フォルダがエンティティです。また、メッセージング システム コネクタでは、キューがエンティティです。
ただし、コネクタでいずれのエンティティもサポートされていない、またはエンティティが存在しない可能性があります。その場合、
Entities
リストは空になります。 - オペレーション: エンティティに対して行うことができるアクティビティです。エンティティに対して次のいずれかのオペレーションを行うことができます。
使用可能なリストからエンティティを選択すると、そのエンティティで使用可能なオペレーションのリストが生成されます。オペレーションの詳細については、コネクタタスクのエンティティ オペレーションをご覧ください。ただし、コネクタがいずれかのエンティティ オペレーションをサポートしていない場合、サポートされていないオペレーションは
Operations
リストに含まれません。 - アクション: コネクタ インターフェースを介して統合で使用できる主要な関数の一つです。アクションを使用すると、1 つまたは複数のエンティティに対して変更を加えることができます。また、使用できるアクションはコネクタごとに異なります。通常、アクションには入力パラメータと出力パラメータがあります。ただし、コネクタがどのアクションもサポートしていない可能性があります。その場合は、
Actions
リストが空になります。
システムの上限
Google Cloud Storage コネクタは、ノードごとに 1 秒あたり最大 10 件のトランザクションを処理することができ、この上限を超えるトランザクションはすべてthrottlesされます。デフォルトでは、Integration Connectors は、接続に 2 つのノードを割り当てます(可用性を高めるため)。
Integration Connectors に適用される上限の詳細については、上限をご覧ください。
アクション
Google Cloud Storage 接続は、次のアクションをサポートしています。
DownloadObject アクション
次の表では、DownloadObject
アクションの入力パラメータを示します。
パラメータ名 | 必須 | データ型 | 説明 |
---|---|---|---|
バケット | ○ | 文字列 | ダウンロードするオブジェクトが格納されているバケット名。 |
ObjectFilePath | × | 文字列 | ダウンロードする必要があるオブジェクトの名前。指定しない場合は、指定したバケットからすべてのオブジェクトがダウンロードされます。
ダウンロードするオブジェクトがバケットの子フォルダにある場合は、そのオブジェクトのフルパスを指定する必要があります。たとえば、 |
HasBytes | × | ブール値 | コンテンツをバイトとしてダウンロードするかどうか。有効な値は true または false です。true に設定すると、コンテンツは Base64 エンコード文字列としてダウンロードされます。デフォルトでは、 |
UpdatedEndDate | × | 日付 | オブジェクトのダウンロードの終了日付範囲。指定しない場合は、指定された UpdatedStartDate から現在の日付までのオブジェクトがダウンロードされます。 |
UpdatedStartDate | × | 日付 | オブジェクトをダウンロードする期間の開始日。指定しない場合は、開始時点から UpdatedEndDate までのオブジェクトがダウンロードされます。 |
DownloadObject
アクションの構成例については、例をご覧ください。
UploadObject アクション
次の表では、UploadObject
アクションの入力パラメータを示します。
パラメータ名 | 必須 | データ型 | 説明 |
---|---|---|---|
バケット | ○ | 文字列 | オブジェクトがアップロードされるバケット名。 |
FolderPath | × | 文字列 | オブジェクトをアップロードする先のフォルダへのパス。 |
ContentBytes | × | 文字列 | バイト形式(Base64 でエンコードされた文字列)でアップロードするコンテンツ。 |
HasBytes | × | ブール値 | コンテンツをバイトとしてアップロードするかどうか。有効な値は true 、false です。true に設定した場合、アップロードするコンテンツは、Base64 でエンコードされた文字列である必要があります。デフォルトでは、 |
Content | ○ | 文字列 | アップロードするコンテンツ。 |
ObjectName | × | 文字列 | アップロードするオブジェクトの名前。 |
UploadObject
アクションの構成例については、例をご覧ください。
CopyObject アクション
次の表では、CopyObject
アクションの入力パラメータを示します。
パラメータ名 | 必須 | データ型 | 説明 |
---|---|---|---|
BucketSource | ○ | 文字列 | オブジェクトのコピー元のバケット名。 |
ObjectSource | ○ | 文字列 | オブジェクトのコピー先フォルダのフルパス。 |
BucketDestination | ○ | 文字列 | オブジェクトのコピー先のバケット名。 |
ObjectDestination | × | 文字列 | オブジェクト名を含む宛先のフルパス。オブジェクト名を指定しない場合は、ソース オブジェクトの名前が保持されます。 |
CopyObject
アクションの構成例については、例をご覧ください。
MoveObject アクション
次の表では、MoveObject アクションの入力パラメータを示します。
パラメータ名 | 必須 | データ型 | 説明 |
---|---|---|---|
BucketSource | ○ | 文字列 | オブジェクトの移動元のバケット名。 |
ObjectSource | ○ | 文字列 | オブジェクトの移動先フォルダのフルパス。 |
BucketDestination | ○ | 文字列 | オブジェクトの移動先のバケット名。 |
ObjectDestination | × | 文字列 | オブジェクト名を含む宛先のフルパス。オブジェクト名を指定しない場合は、ソース オブジェクトの名前が保持されます。 |
DeleteObject アクション
次の表では、DeleteObject
アクションの入力パラメータを示します。
パラメータ名 | 必須 | データ型 | 説明 |
---|---|---|---|
BucketSource | ○ | 文字列 | 削除するオブジェクトが格納されているバケット名。 |
ObjectSource | ○ | 文字列 | 削除するオブジェクトの名前。 |
世代 | × | 倍精度 | 削除するオブジェクトのバージョン。対象のバージョンが存在する場合は、最新バージョンではなく、指定されたリビジョンを完全に削除します。これがデフォルトの動作です。 |
IfGenerationMatch | × | 倍精度 | オブジェクトの現在の世代が指定値と一致しているかどうかに応じて削除操作を実行します。この値を |
IfGenerationNotMatch | × | 倍精度 | オブジェクトの現在の世代が指定値に一致していないかどうかに応じて削除操作を実行します。ライブ オブジェクトが存在しない場合、前提条件は失敗します。この値を 0 に設定すると、オブジェクトのライブ バージョンが存在する場合にのみオペレーションが成功します。 |
IfMetagenerationMatch | × | 倍精度 | 削除オペレーションを、オブジェクトの現在のメタ世代が指定した値と一致するかどうかに基づいて行います。 |
IfMetagenerationNotMatch | × | 倍精度 | 削除オペレーションを、オブジェクトの現在のメタ世代が指定した値と一致しないかどうかに基づいて行います。 |
SignURL アクション
次の表に、指定したオブジェクトの署名付き URL を作成する SignURL
アクションの入力パラメータを示します。
パラメータ名 | 必須 | データ型 | 説明 |
---|---|---|---|
バケット | ○ | 文字列 | オブジェクトが存在するバケット名。 |
オブジェクト | ○ | 文字列 | SignedURL を生成するオブジェクトの名前。 |
RequestMethod | × | 文字列 | 署名付きリクエストで使用するメソッド。デフォルト値は GET です。 |
場所 | × | 文字列 | 指定したバケットのロケーション。デフォルト値は auto です。 |
ActiveDateTime | × | 文字列 | SignedURL が有効になる日時。指定しない場合、現在の dateTime が使用されます。 |
クエリ | × | 文字列 | SignedURL の使用時に含める必要があるクエリ文字列で、指定されていない場合、クエリ文字列は使用されません。 |
CustomHeaders | × | 文字列 | SignedURL で使用するヘッダーの name=value のカンマ区切りのリストで、指定されていない場合、カスタム ヘッダーが使用されます。 |
ExpiresIn | ○ | 文字列 | SignedURL の有効期限で、1d2h3m4s の形式で指定する必要があり、最大値は 7d0h0m0s です。 |
HmacAccessKey | × | 文字列 | HMAC アクセスキー。詳細については、HMAC キーをご覧ください。 |
HmacSecret | × | 文字列 | HMAC シークレット。 |
例
このセクションの例では、次のオペレーションについて説明します。
- すべてのオブジェクトを一覧表示する
- バケット内のすべてのオブジェクトを一覧表示する
- すべてのバケットを一覧表示する
- オブジェクトのダウンロード
- バイナリ オブジェクトをダウンロードする
- バイナリ オブジェクトをバケットにアップロードする
- バケットにオブジェクトをアップロードする
- オブジェクトをフォルダにアップロードする
- オブジェクトのコピー
- オブジェクトを移動する
- オブジェクトを削除する
- オブジェクトの署名付き URL を作成する
次の表では、コネクタのタスクのサンプル シナリオと対応する構成を示します。
タスク | 構成 |
---|---|
すべてのオブジェクトを一覧表示する |
これにより、すべてのバケット内のすべてのオブジェクトが一覧表示されます。オブジェクトは、 |
バケット内のすべてのオブジェクトを一覧表示する |
|
すべてのバケットを一覧表示する |
|
オブジェクトのダウンロード |
この例では、 |
バイナリ オブジェクトをダウンロードする |
バイナリ オブジェクトをダウンロードする手順は、前述の通常のオブジェクトをダウンロードするものと同じです。また、 { "Bucket": "bucket-test-01", "ObjectFilePath": "image01.png", "HasBytes" : true } ダウンロードが成功すると、 { "Success": "true", "ContentBytes": "SGVsbG8gdGVzdCE\u003d" } デフォルトでは、 ファイルに ä、Ø、Thành などの特殊文字が含まれている場合は、次のようにします。
|
バイナリ オブジェクトをバケットにアップロードする |
この例では、 |
バケットにオブジェクトをアップロードする |
この例では、 |
オブジェクトをフォルダにアップロードする |
この例では、 |
オブジェクトのコピー |
この例では、 コピーが成功すると、 { "Success": "true" } |
オブジェクトを移動する |
この例では、 コピーが成功すると、 { "Success": "true" } |
オブジェクトを削除する |
この例では、 コピーが成功すると、 { "Success": "true" } |
オブジェクトの署名付き URL を作成する |
この例では、 { "Success": "true", "SignURL": "https://storage.googleapis.com/example-bucket/cat.jpeg?X-Goog-Algorithm= GOOG4-RSA-SHA256&X-Goog-Credential=example%40example-project.iam.gserviceaccount.com %2F20181026%2Fus-central1%2Fstorage%2Fgoog4_request&X-Goog-Date=20181026T18 1309Z&X-Goog-Expires=900&X-Goog-SignedHeaders=host&X-Goog-Signature=247a2aa45f16 9edf4d187d54e7cc46e4731b1e6273242c4f4c39a1d2507a0e58706e25e3a85a7dbb891d62afa849 6def8e260c1db863d9ace85ff0a184b894b117fe46d1225c82f2aa19efd52cf21d3e2022b3b868dc c1aca2741951ed5bf3bb25a34f5e9316a2841e8ff4c530b22ceaa1c5ce09c7cbb5732631510c2058 0e61723f5594de3aea497f195456a2ff2bdd0d13bad47289d8611b6f9cfeef0c46c91a455b94e90a 66924f722292d21e24d31dcfb38ce0c0f353ffa5a9756fc2a9f2b40bc2113206a81e324fc4fd6823 a29163fa845c8ae7eca1fcf6e5bb48b3200983c56c5ca81fffb151cca7402beddfc4a76b13344703 2ea7abedc098d2eb14a7" } |
考慮事項
- ダウンロード可能なオブジェクトの最大サイズは 10 MB です。
UploadObject
アクションを使用して複数のファイルをアップロードすることはできません。アップロードできるのは単一のファイルだけです。
Terraform を使用して接続を作成する
Terraform リソースを使用して、新しい接続を作成できます。Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。
接続作成用の Terraform テンプレートのサンプルを表示するには、サンプル テンプレートをご覧ください。
Terraform を使用してこの接続を作成する場合は、Terraform 構成ファイルで次の変数を設定する必要があります。
パラメータ名 | データ型 | 必須 | 説明 |
---|---|---|---|
project_id | STRING | True | データが存在する Google Cloud プロジェクトの ID。 |
統合で Cloud Storage 接続を使用する
接続を作成すると、Apigee Integration と Application Integration の両方で使用できるようになります。この接続は、コネクタタスクを介して統合で使用できます。
- Apigee Integration で Connectors タスクを作成して使用する方法については、Connectors タスクをご覧ください。
- Application Integration で Connectors タスクを作成して使用する方法については、Connectors タスクをご覧ください。
Google Cloud コミュニティの助けを借りる
Google Cloud コミュニティの Cloud フォーラムで質問を投稿したり、このコネクタについてディスカッションしたりできます。次のステップ
- 接続を一時停止して再開する方法を確認する。
- コネクタの使用状況をモニタリングする方法を確認する。
- コネクタログを表示する方法を確認する。