Deploy the function

進行状況を確認

/ 100

このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。

GSP080

Google Cloud セルフペース ラボ

概要

Cloud Run functions の関数は、HTTP リクエスト、メッセージ サービスからのメッセージ、ファイル アップロードなどのイベントに応答して実行されるコードです。クラウド イベントとは、クラウド環境で発生する事象のことを指します。たとえば、データベースでのデータの変更、ストレージ システムへのファイルの追加、新しい仮想マシン インスタンスの作成などがクラウド イベントとして扱われます。

Cloud Run functions は、何かが発生した場合にのみ実行されるイベント ドリブン型であるため、迅速に実行する必要があるタスクや、常時実行する必要がないタスクに適しています。

Cloud Run functions を使用して実現できることの例は次のとおりです。

  • Cloud Storage にアップロードされる画像のサムネイルを自動的に生成する
  • Pub/Sub で新しいメッセージを受信したときに、ユーザーのスマートフォンに通知を送信する
  • Cloud Firestore データベースのデータを処理し、レポートを生成する

Node.js に対応している任意の言語でコードを作成できます。また、数回クリックするだけでコードをクラウドにデプロイできます。Cloud Run functions の関数がデプロイされると、イベントに応答して自動的に実行が開始されます。

このハンズオンラボでは、Google Cloud コンソールで Cloud Run 関数を作成、デプロイ、テストする方法について説明します。

このハンズオンラボでは、Google Cloud Shell のコマンドラインを使用して、Cloud Run 関数を作成、デプロイ、テストする方法について説明します。

演習内容

  • Cloud Run 関数を作成する
  • Cloud Run 関数をデプロイしてテストする
  • ログを表示する

設定

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 右側の [ラボの設定とアクセス] パネルには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • このラボで使用する一時的な認証情報(ユーザー名とパスワード)
    • このラボを行うために必要なその他の情報(ある場合)

    ラボのタイマーはページの上部に表示され、残り時間が示されます。

  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示された場合は、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの設定とアクセス] パネルでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの設定とアクセス] パネルでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで指定された認証情報を使用する必要があります。ご自身の Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後のページはクリックして先に進みます。

    • 利用規約に同意します。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

しばらくすると、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニューのアイコンと検索フィールド

Cloud Shell をアクティブにする

Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。

  1. Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン 「Cloud Shell をアクティブにする」アイコン をクリックします。

  2. ウィンドウで次の操作を行います。

    • Cloud Shell 情報ウィンドウで操作を進めます。
    • Cloud Shell が認証情報を使用して Google Cloud API を呼び出すことを承認します。

接続した時点で認証が完了しており、プロジェクトに各自の Project_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。

  1. (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
gcloud auth list
  1. [承認] をクリックします。

出力:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
gcloud config list project

出力:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} 注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。

タスク 1. 関数を作成する

最初に、helloWorld という簡単な関数を作成します。これは Cloud Run functions のログにメッセージを書き込む関数です。この関数は Cloud Run functions のイベントでトリガーされ、関数の実行が完了したことを通知するコールバック関数を受信します。

このラボで取り扱う Cloud Run functions のイベントは Pub/Sub トピックに関するものです。Pub/Sub は、メッセージの送信者とメッセージの受信者を切り離すメッセージング サービスです。メッセージが送信または投稿されたときにメッセージ自体とそのアラートを受信者が受信するには、サブスクリプションが必要です。Pub/Sub の詳細については、Pub/Sub ガイドの Pub/Sub: Google 規模のメッセージ サービスをご覧ください。

イベント パラメータとコールバック パラメータの詳細については、Cloud Run functions のドキュメントのバックグラウンド関数をご覧ください。

Cloud Run 関数を作成するには:

  1. Cloud Shell で、次のコマンドを実行してデフォルトのリージョンを設定します。

    gcloud config set run/region {{{project_0.default_region |REGION}}}
  2. 関数コード用のディレクトリを作成します。

    mkdir gcf_hello_world && cd $_
  3. index.js を作成し、開いて編集します。

    nano index.js
  4. 次の内容を index.js ファイルにコピーします。

    const functions = require('@google-cloud/functions-framework'); // Pub/Sub トリガー トピックがメッセージを受信したときに実行される // CloudEvent コールバックを Functions Framework に登録します。 functions.cloudEvent('helloPubSub', cloudEvent => { // Pub/Sub メッセージは CloudEvent のデータ ペイロードとして渡されます。 const base64name = cloudEvent.data.message.data; const name = base64name ? Buffer.from(base64name, 'base64').toString() : 'World'; console.log(`Hello, ${name}!`); });
  5. ファイルを保存して nano を終了するには、Ctrl+X キーを押してから Y キーを押し、Enter キーを押します。

  6. package.json を作成し、開いて編集します。

  7. 以下のコードを package.json ファイルにコピーします。

    { "name": "gcf_hello_world", "version": "1.0.0", "main": "index.js", "scripts": { "start": "node index.js", "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { "@google-cloud/functions-framework": "^3.0.0" } }
  8. ファイルを保存して nano を終了するには、Ctrl+X キーを押してから Y キーを押し、Enter キーを押します。

  9. パッケージの依存関係をインストールする

    npm install

    予想される出力:

    added 140 packages, and audited 141 packages in 9s 27 packages are looking for funding run `npm fund` for details found 0 vulnerabilities

タスク 2. 関数をデプロイする

このラボでは、--trigger-topiccf_demo を指定します。

注:
Cloud Run functions はイベント ドリブン型であるため、トリガーのタイプを指定する必要があります。新しい関数をデプロイする場合、--trigger-topic--trigger-bucket--trigger-http が一般的なトリガー イベントです。既存の関数にアップデートをデプロイすると、特に指定のない限り、その関数は既存のトリガーを維持します。
  1. nodejs-pubsub-function 関数を cf-demo という Pub/Sub トピックにデプロイします。

    gcloud functions deploy nodejs-pubsub-function \ --gen2 \ --runtime={{{ project_0.startup_script.nodejs_version | nodejs_version }}} \ --region={{{ project_0.default_region | REGION }}} \ --source=. \ --entry-point=helloPubSub \ --trigger-topic cf-demo \ --stage-bucket {{{ project_0.project_id | PROJECT_ID }}}-bucket \ --service-account cloudfunctionsa@{{{ project_0.project_id | PROJECT_ID }}}.iam.gserviceaccount.com \ --allow-unauthenticated 注:
    サービス アカウント serviceAccountTokenCreator 通知を受け取った場合は、「n」を選択します。
  2. 関数のステータスを確認します。

    gcloud functions describe nodejs-pubsub-function \ --region={{{ project_0.default_region | REGION }}}

    ACTIVE ステータスは、関数がデプロイされたことを表しています。

    予想される出力:

    BuildConfig: automaticUpdatePolicy: {} build: projects/630521560493/locations/{{{ project_0.default_region | REGION }}}/builds/7ff9d415-50d9-4557-9bcd-5afad42a6390 dockerRegistry: ARTIFACT_REGISTRY dockerRepository: projects/{{{ project_0.project_id | PROJECT_ID }}}/locations/{{{ project_0.default_region | REGION }}}/repositories/gcf-artifacts entryPoint: helloPubSub ... State: ACTIVE ... UpdateTime: '2024-08-05T13:51:05.317298824Z' Url: https://{{{ project_0.default_region | REGION }}}-{{{ project_0.project_id | PROJECT_ID }}}.cloudfunctions.net/nodejs-pubsub-function

トピックにメッセージが配信されるたびに関数の実行がトリガーされ、メッセージの内容が入力データとして送信されます。

完了したタスクをテストする

[進行状況を確認] をクリックして、実行したタスクを確認します。 タスクが正常に完了すると、評価スコアが提供されます。

関数をデプロイする

タスク 3. 関数をテストする

関数をデプロイしてそれがアクティブになっていることを確認したら、関数がイベントを検出してメッセージをクラウドログに書き込むかどうかをテストします。

  • いくつかのデータを使用して Pub/Sub を呼び出します。

    gcloud pubsub topics publish cf-demo --message="Cloud Function Gen2"

    出力例:

    messageIds: - '11927162971409664'

該当するログを表示して、その実行 ID のログメッセージが存在することを確認します。

タスク 4. ログを表示する

  • 該当のログを開き、ログ履歴の中に対象のメッセージがあることを確認します。

    gcloud functions logs read nodejs-pubsub-function \ --region={{{ project_0.default_region | REGION }}} 注:
    ログが表示されるまで 10 分ほどかかることがあります。 別の方法として、[ロギング] > [ログ エクスプローラ] を選択してログを表示することもできます。

    Cloud Run 関数は、次のような情報を出力します。

    LEVEL: NAME: nodejs-pubsub-function EXECUTION_ID: h4v6akxf4sxt TIME_UTC: 2024-08-05 15:15:25.723 LOG: Hello, Cloud Function Gen2! LEVEL: I NAME: nodejs-pubsub-function EXECUTION_ID: TIME_UTC: 2024-08-05 15:15:25.711 LOG: LEVEL: NAME: nodejs-pubsub-function EXECUTION_ID: h4oxfjn7zlyu TIME_UTC: 2024-08-05 15:10:34.303 LOG: Hello, Friend! LEVEL: I NAME: nodejs-pubsub-function EXECUTION_ID: TIME_UTC: 2024-08-05 15:10:34.291 LOG: LEVEL: NAME: nodejs-pubsub-function EXECUTION_ID: h4fjhyfxua3k TIME_UTC: 2024-08-05 15:03:16.342 LOG: Hello, "SGVsbG8gZnJvbSB0aGUgY29tbWFuZCBsaW5l"!

これでアプリケーションのデプロイ、テスト、ログの表示が完了しました。

タスク 5. 理解度チェック

  • 今回のラボで学習した内容の理解を深めていただくため、以下の多肢選択式問題を用意しました。正解を目指して頑張ってください。

お疲れさまでした

Google Cloud コンソールでコマンドラインを使用して Cloud Run 関数を作成、デプロイ、テストしました。

次のラボを受講する

このラボは Qwik Start と呼ばれるラボシリーズの一部です。「Qwik Start」と呼ばれるラボシリーズの一部です。ラボカタログで「Qwik Start」を検索し、興味のあるラボを探してみてください。

次のステップと詳細情報

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2026 年 3 月 26 日

ラボの最終テスト日: 2026 年 3 月 26 日

Copyright 2026 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボを実行するには、シークレット モードまたはシークレット ブラウジング ウィンドウを使用することをおすすめします。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。

ラボを開始するには、この簡単な手順を完了してください。