Cloud Storage から直接イベントを受信する(Google Cloud コンソール)
このクイックスタートでは、一般公開アクセスを許可する Cloud Run サービスで Cloud Storage から直接イベントを受信する方法について説明します。
Cloud Storage バケット内のさまざまなイベント(オブジェクトの作成、削除、アーカイブ、メタデータの更新)に応じて通知のトリガーを構成できます。詳細については、Cloud Storage イベントを Cloud Run に転送するトリガーを作成するをご覧ください。
このクイックスタートでは Google Cloud コンソールを使用します。Google Cloud CLI の使用方法については、Cloud Storage から直接イベントを受信する(gcloud CLI)をご覧ください。
このクイックスタートでは、以下の操作を行います。
イベントソースとなる Cloud Storage バケットを作成する。
Cloud Run にサンプル サービスをデプロイしてイベントを受信する。
イベントのフィルタリングとルーティングを行う Eventarc トリガーを作成する。
Cloud Storage バケットにファイルをアップロードしてイベントを生成し、Cloud Run のログで確認する。
このタスクを Google Cloud コンソールで直接行う際の順を追ったガイダンスについては、「ガイドを表示」をクリックしてください。
始める前に
組織で定義されているセキュリティの制約により、次の手順を完了できない場合があります。トラブルシューティング情報については、制約のある Google Cloud 環境でアプリケーションを開発するをご覧ください。
- Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build and Eventarc APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build and Eventarc APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
必要なロール
このクイックスタートを完了するために必要な権限を取得するには、プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。
-
Cloud Run 管理者(
roles/run.admin) -
Eventarc 管理者(
roles/eventarc.admin) - ログ閲覧者(
roles/logging.viewer) -
プロジェクト IAM 管理者(
roles/resourcemanager.projectIamAdmin) -
サービス アカウント ユーザー(
roles/iam.serviceAccountUser) - ストレージ管理者(
roles/storage.admin)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
Cloud Storage バケットを作成する
このクイックスタートでは、イベントソースとして Cloud Storage を使用します。Google Cloud コンソールで、[Cloud Storage] > [概要] ページに移動します。
[バケットを作成] をクリックします。
バケットの名前を入力します。
例:
hello-bucket[次へ] をクリックします。
[ロケーション タイプ] で [リージョン] を選択し、[us-central1(アイオワ)] を選択します。
他の値はデフォルトを使用します。
[作成] をクリックします。
イベントソースの作成後、Cloud Run にイベント レシーバ サービスをデプロイできます。
イベント レシーバ サービスを Cloud Run にデプロイする
イベントを受信してロギングするサンプルの Cloud Run サービスをデプロイします。
Google Cloud コンソールで、[Cloud Run] > [サービス] ページに移動します。
[コンテナをデプロイ] をクリックします。
[サービスの作成] フォームで、次の操作を行います。
[既存のコンテナ イメージから 1 つのリビジョンをデプロイする] を選択します。
[サンプル コンテナでテスト] をクリックします。
[リージョン] リストで、サービスのロケーションとして [us-central1(アイオワ)] を選択します。
[認証] で、[一般公開アクセスを許可] を選択します。
他の値はデフォルトを使用します。
サンプル コンテナ イメージをデプロイするには、[作成] をクリックします。
hello サービスのデプロイには、最長で 2 分ほどかかる場合があります。
Eventarc トリガーを作成する
Eventarc トリガーは、Cloud Storage バケットからサンプルの Cloud Run サービスにイベントを送信します。Google Cloud コンソールで、[Eventarc] > [トリガー] ページに移動します。
[トリガーを作成] をクリックします。
トリガー名を入力します。
たとえば、
hello-triggerと入力します。[トリガーのタイプ] リストで、[Google ソース] を選択します。
これにより、 Google Cloud プロバイダから(直接または Cloud Audit Logs エントリを介して)送信されたイベント、または Pub/Sub メッセージを使用してプロバイダから送信されたイベントがフィルタリングされます。
[イベント プロバイダ] リストで、[Cloud Storage] を選択します。
[イベントタイプ] リストで、[直接] > [google.cloud.storage.object.v1.finald] を選択します。
[バケット] で、先ほど作成した hello-bucket Cloud Storage バケットを選択します。
プロンプトが表示されたら、次のロールを付与します。
- Pub/Sub サービス アカウントに対するサービス アカウント トークン作成者(
roles/iam.serviceAccountTokenCreator) - デフォルトのコンピューティング サービス アカウントに対する Eventarc イベント受信者(
roles/eventarc.eventReceiver) - Cloud Storage サービス アカウントに対する Pub/Sub パブリッシャー(
roles/pubsub.publisher)
- Pub/Sub サービス アカウントに対するサービス アカウント トークン作成者(
サービスを呼び出すサービス アカウントとして、デフォルトのコンピューティング サービス アカウントを使用します。
[イベントの宛先] リストで、[Cloud Run] を選択します。
[Cloud Run サービス] で、以前に作成したサンプル hello サービスを選択します。
他の値はデフォルトを使用します。
[作成] をクリックします。
必要なすべての権限が Eventarc サービス エージェントに反映されるまでに数分かかることがあります。Permission denied
while using the Eventarc Service Agent エラーが発生した場合は、数分待ってからもう一度試してください。トリガーの作成後、トリガーが完全に機能するまでに 2 分ほどかかることがあります。
イベントを生成して表示する
イベントを生成し、Eventarc トリガーが想定どおり動作していることを確認します。
イベントを生成するには:
「Hello World」というテキストを含むテキスト ファイルを
random.txtというファイル名で作成します。Google Cloud コンソールで、[Cloud Storage] > [バケット] ページに移動します。
作成したストレージ バケットの名前をクリックします。
[オブジェクト] タブで、[ファイルをアップロード] をクリックして
random.txtファイルをアップロードします。
アップロードによりイベントが生成され、Cloud Run サービスはイベントのメッセージをロギングします。
ログエントリを表示するには:
Google Cloud コンソールで、[Cloud Run] > [サービス] ページに移動します。
作成したサービスの名前をクリックします。
このサービスのすべてのリビジョンのログエントリを取得するには、[サービスの詳細] ページで [ログ] タブをクリックします。ログの重大度でフィルタリングできます。
次のようなログエントリを探します。
Received event of type google.cloud.storage.object.v1.finalized. Event data: [...]
これで完了です。これで、イベント レシーバ サービスを Cloud Run にデプロイし、Eventarc トリガーを作成して、Cloud Storage からイベントを生成し、それを Cloud Run ログで確認できました。
クリーンアップ
このページで使用したリソースについて、 Google Cloud アカウントに課金されないようにするには、次の手順を実施します。
サービスが使用されていない場合、Cloud Run の料金は発生しませんが、次の料金が発生する場合があります。イメージの削除、ストレージ バケットの削除、Cloud Run サービスの削除を行うことができます。
Eventarc トリガーを削除するには:
Google Cloud コンソールで、[Eventarc] > [トリガー] ページに移動します。
作成したトリガーの名前をクリックします。
[トリガーの詳細] ページで、[ 削除] をクリックします。
また、 Google Cloud プロジェクトを削除して、料金が発生しないようにすることもできます。 Google Cloud プロジェクトを削除すると、そのプロジェクト内で使用されているすべてのリソースに対する課金が停止します。
- Google Cloud コンソールで [リソースの管理] ページに移動します。
- プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
- ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。