arrow_back

API Gateway を使ってみる: チャレンジラボ

ログイン 参加
700 以上のラボとコースにアクセス

API Gateway を使ってみる: チャレンジラボ

ラボ 45分 universal_currency_alt クレジット: 1 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

ARC109

Google Cloud セルフペース ラボのロゴ

概要

チャレンジラボでは、シナリオと一連のタスクが提供されます。手順ガイドに沿って進める形式ではなく、コース内のラボで習得したスキルを駆使して、ご自身でタスクを完了していただきます。タスクが適切に完了したかどうかは、このページに表示される自動スコアリング システムで確認できます。

チャレンジラボは、Google Cloud の新しいコンセプトについて学習するためのものではありません。デフォルト値を変更する、エラー メッセージを読み調査を行ってミスを修正するなど、習得したスキルを応用する能力が求められます。

100% のスコアを達成するには、制限時間内に全タスクを完了する必要があります。

設定

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

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

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

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

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

チャレンジ シナリオ

あなたは、ジュニア データ エンジニアのポジションに就いて、バックエンドのデータリソースを作成、管理、アクセスする各チームをサポートしています。

これらのタスクのスキルや知識がすでにあると想定されています。

チャレンジ

あなたは、新しく結成された開発チームをサポートするように言われました。バックエンド サービスを API として公開する新しいプロジェクトを進めるにあたり、その初期作業である API Gateway の使用に関してチームを支援するよう依頼されており、次のタスクを完了するよう求められています。

  • Cloud Run functions の関数を使用してバックエンド システムを開発する。
  • フルマネージド ゲートウェイを使用して、バックエンド サービスを公開する API をデプロイして管理する。
  • Pub/Sub トピックにパブリッシュされるメッセージをサブスクライブして、イベントに対応する。

それぞれのタスクについて以下に詳しく説明します。それでは始めましょう。

タスク 1. Cloud Run functions の関数を作成する

注: Cloud Run functions(第 2 世代)は Cloud Run Admin API に依存して機能します。Cloud Run Admin API は、このラボの開始時にすでに有効になっていますが、有効なサービスがすべて反映されるまでに数分かかることがあります。Cloud Run functions の関数のデプロイ時に問題が発生した場合は、数分待ってからもう一度お試しください。

Node.js 22 を使用して、 リージョンに gcfunction という新しい Cloud Run functions(第 2 世代)の関数を作成し、認証されていない関数呼び出しを許可します。ここでは、関数が呼び出されたときに「Hello World!」を返すようにします。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Cloud Run functions の関数を作成する

タスク 2. API Gateway を作成する

Cloud Run functions の関数をデプロイしたら、バックエンドへのリクエストをプロキシするように API Gateway を構成します。

openapispec.yaml という名前のファイルを作成し、タスク 1 でデプロイした Cloud Run functions の関数を参照します(以下のコードを使用します)。

API Gateway をデプロイするときは openapispec.yaml を使用し、次のようにプロパティを指定します。

名前
表示名 gcfunction API(リクエストされた場合)
API ID gcfunction-api
サービス アカウントの選択 Compute Engine のデフォルトのサービス アカウント
ロケーション
構成名 gcfunction-api
swagger: '2.0' info: title: gcfunction API description: Sample API on API Gateway with a Google Cloud Run functions backend version: 1.0.0 schemes: - https produces: - application/json x-google-backend: address: https://gcfunction-{{{ project_0.startup_script.project_number | PROJECT_NUMBER }}}.{{{project_0.default_region | REGION}}}.run.app paths: /gcfunction: get: summary: gcfunction operationId: gcfunction responses: '200': description: A successful response schema: type: string 注: Gateway の作成オペレーションが完了するまで数分(約 10 分)かかります。 ゲートウェイの作成とデプロイ プロセスのステータスを確認するには、上部のメイン ナビゲーション バーにある通知アイコン(ベルアイコン)をクリックしてステータス通知を表示します。[ゲートウェイ「gcfunction API」を作成しています] のアイコンのステータスに緑色のチェックマークが付いていることを確認してから作業を続行してください。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 API Gateway を作成する。

タスク 3. Pub/Sub トピックを作成し、API バックエンド経由でメッセージをパブリッシュする

開発チームは、demo-topic という名前の新しい Pub/Sub トピックに API バックエンドからメッセージがパブリッシュされるメッセージ フローを希望しています。

新しい Pub/Sub トピック(demo-topic)を作成し、先ほどデプロイした Cloud Run functions の関数でメッセージを push します。トピックを作成する際は、デフォルトのサブスクリプションを作成するオプションを必ず有効にしておいてください。

以下のスニペットを使用して、タスク 1 でデプロイした Cloud Run functions の関数の package.json ファイルと index.js コードを更新します。

package.json

{ "dependencies": { "@google-cloud/functions-framework": "^3.0.0", "@google-cloud/pubsub": "^3.4.1" } }

index.js

/** * Responds to any HTTP request. * * @param {!express:Request} req HTTP request context. * @param {!express:Response} res HTTP response context. */ const {PubSub} = require('@google-cloud/pubsub'); const pubsub = new PubSub(); const topic = pubsub.topic('demo-topic'); const functions = require('@google-cloud/functions-framework'); exports.helloHttp = functions.http('helloHttp', (req, res) => { // Send a message to the topic topic.publishMessage({data: Buffer.from('Hello from Cloud Run functions!')}); res.status(200).send("Message sent to Topic demo-topic!"); });

index.js ファイルと package.json ファイルが更新されたら、Cloud Run functions の関数を再デプロイします。

次に、API Gateway 経由で Cloud Run functions の関数を呼び出します。正しく実行されると、このタスクで作成したトピック demo-topic にメッセージがパブリッシュされます。

注: API Gateway エンドポイントを呼び出した後、パブリッシュされたメッセージがサブスクリプションの [メッセージ] セクションに表示されるまで数分(約 5 分)かかります。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Pub/Sub トピックを作成し、API バックエンド経由でメッセージをパブリッシュする。

お疲れさまでした

フルマネージド ゲートウェイを使用して、バックエンド サービスを公開する API をデプロイして管理するチャレンジを完了しました。

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

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

マニュアルの最終更新日: 2025 年 4 月 1 日

ラボの最終テスト日: 2025 年 4 月 1 日

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

始める前に

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

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

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

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

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

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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