チェックポイント
Deploying the Endpoints configuration
/ 20
Deploying the API backend
/ 20
Sending requests to the API
/ 20
Add a quota to the API
/ 20
Create API key and testing quota limit by sending requests
/ 20
Cloud Endpoints: Qwik Start
GSP164
概要
このラボでは、Google Cloud Endpoints でサンプル API をデプロイします。Google Cloud Endpoints とは、App Engine アプリケーション内で API を生成するためのツールセットです。サンプルコードには次の内容が含まれます。
- 3 文字の
IATA
コード(SFO、JFK、AMS など)から空港名を取得できる REST API - API 構成を Cloud Endpoints にアップロードするためのスクリプト
- サンプル API をホストする Google App Engine フレキシブル バックエンドをデプロイするためのスクリプト
サンプル API にいくつかのリクエストを送信した後、Cloud Endpoints のアクティビティ グラフやログを確認できます。これらのツールを使って API をモニタリングしたり、使用状況に関する分析情報を入手したりすることができます。
設定と要件
[ラボを開始] ボタンをクリックする前に
こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。
このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
- 標準的なインターネット ブラウザ(Chrome を推奨)
- ラボを完了するために十分な時間を確保してください。ラボをいったん開始すると一時停止することはできません。
ラボを開始して Google Cloud コンソールにログインする方法
-
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。
- [Google Cloud コンソールを開く] ボタン
- 残り時間
- このラボで使用する必要がある一時的な認証情報
- このラボを行うために必要なその他の情報(ある場合)
-
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウでリンクを開く] を選択します)。
ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。 -
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
{{{user_0.username | "Username"}}} [ラボの詳細] パネルでも [ユーザー名] を確認できます。
-
[次へ] をクリックします。
-
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
{{{user_0.password | "Password"}}} [ラボの詳細] パネルでも [パスワード] を確認できます。
-
[次へ] をクリックします。
重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。 -
その後次のように進みます。
- 利用規約に同意してください。
- 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
- 無料トライアルには登録しないでください。
その後、このタブで Google Cloud コンソールが開きます。
Cloud Shell をアクティブにする
Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
- Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン をクリックします。
接続した時点で認証が完了しており、プロジェクトに各自の PROJECT_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。
gcloud
は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
- (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
-
[承認] をクリックします。
-
出力は次のようになります。
出力:
- (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
出力:
出力例:
gcloud
ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。
タスク 1. サンプルコードの取得
- Cloud Shell に次のコマンドを入力して、サンプル API とスクリプトを取得します。
- サンプルコードが入っているディレクトリに移動します。
タスク 2. Endpoints 構成をデプロイする
Endpoints に対して REST API を公開するには、API が記述されている OpenAPI 構成ファイルが必要です。このラボのサンプル API には、事前に構成された OpenAPI ファイル(openapi.yaml
)が付属しています。
Endpoints は、Google Cloud のインフラストラクチャ サービスである Service Management
を使用して、API とサービスの作成と管理を行います。Endpoints を使用して API を管理するには、API の OpenAPI 構成を Service Management にデプロイします。
Endpoints 構成をデプロイするには:
-
endpoints-qwikstart
ディレクトリで、次のように入力します。
- サンプルに含まれている次のスクリプトを実行します。
Cloud Endpoints では、OpenAPI 構成ファイル内の host
フィールドに基づいてサービスが識別されます。deploy_api.sh
スクリプトを実行すると、host
フィールドに構成された名前の一部として Cloud プロジェクトの ID が設定されます(独自のサービス用の OpenAPI 構成ファイルを準備する際には、この処理を手動で行う必要があります)。
その後、スクリプト内の gcloud endpoints services deploy openapi.yaml
コマンドによって、OpenAPI 構成が Service Management にデプロイされます。
Service Management でサービスの作成と構成が行われる際に、コンソールに情報が出力されます。openapi.yaml
内のパスが API キーを要求していないという内容の警告は無視してかまいません。正常に完了すると、サービス構成 ID とサービス名を示す次のような行が表示されます。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
タスク 3. API バックエンドをデプロイする
ここまでの作業で、OpenAPI 構成が Service Management にデプロイされましたが、API バックエンドを処理するコードはまだデプロイされていません。ラボのサンプルに含まれている deploy_app.sh
スクリプトにより、API バックエンドをホストする App Engine フレキシブル環境が作成され、API が App Engine にデプロイされます。
- API バックエンドをデプロイするには、現在のディレクトリが
endpoints-quickstart/scripts
であることを確認し、次のスクリプトを実行します。
このスクリプトでは、gcloud app create --region="$REGION"
コマンドを実行することによって、
App Engine フレキシブル バックエンドが作成されるまでには数分かかります。
ERROR: NOT_FOUND: Unable to retrieve P4SA: from GAIA
」メッセージが表示される場合は、deploy_app.sh
スクリプトを再度実行します。
App Engine が作成されると、Cloud Shell に次のように表示されます。
続いて gcloud app deploy
コマンドが実行され、サンプル API が App Engine にデプロイされます。
Cloud Shell に次のような行が表示されます。
API が App Engine にデプロイされるまでに数分かかります。デプロイが正常に完了すると、次のような行が表示されます。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
タスク 4. API にリクエストを送信する
- サンプル API をデプロイしたら、次のスクリプトを実行して API にリクエストを送信できます。
このスクリプトでは、API にリクエストを送信するために使用される curl
コマンドがエコーされ、その結果が表示されます。Cloud Shell に次のような行が表示されます。
API には、SEA や JFK などの有効な IATA 空港コードを設定した 1 つのクエリ パラメータ iataCode
を渡します。
- テストのため、Cloud Shell で次の例を実行します。
これで Cloud Endpoints の API のデプロイとテストが完了しました。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
タスク 5. API の活動を追跡する
デプロイされた API を Cloud Endpoints で利用すると、Cloud コンソールで重要なオペレーション指標をモニタリングし、Cloud Logging によってユーザーと使用状況に関する分析情報を得ることができます。
- Cloud Shell でトラフィック生成スクリプトを実行して、グラフとログにデータを入力します。
- コンソールで、ナビゲーション メニュー > [エンドポイント] > [サービス] を選択し、[Airport Codes] をクリックしてサービスのアクティビティ グラフを確認します。グラフにリクエストが反映されるまでにしばらく時間がかかる場合があります。データが表示されるまでの間に、次の操作を行うことができます。
-
[権限] サイドパネルが開いていない場合は、[権限パネルを表示] をクリックします。[権限] パネルでは、API にアクセスできるユーザーとアクセスレベルを制御できます。
-
[デプロイの履歴] タブをクリックします。このタブには、デプロイ時間や変更のデプロイ担当者など、API のデプロイ履歴が表示されます。
-
[概要] タブをクリックします。ここには受信トラフィックが表示されます。トラフィック生成スクリプトを 1 分間実行した後で下にスクロールすると、合計レイテンシ グラフに 3 つの行(50 パーセンタイル値、95 パーセンタイル値、99 パーセンタイル値)が表示されます。このデータからレスポンス時間をすばやく推定できます。
-
Endpoints グラフの下部にある [メソッド] で、[GET/airportName] の [ログを表示] リンクをクリックします。[ログビューア] ページに API のリクエストログが表示されます。
-
Cloud Shell で Ctrl+C キーを押してスクリプトを停止します。
タスク 6. 割り当てを API に追加する
Cloud Endpoints では割り当てを設定できるため、アプリケーションが API を呼び出せるペース(レート)を制御できます。割り当てを使用して、単一のクライアントによる過度な使用から API を保護できます。
- 割り当てがあるエンドポイント構成をデプロイします。
- アプリケーションを再デプロイして、新しい Endpoints 構成を使用します(数分かかる場合があります)。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
- コンソールで、ナビゲーション メニュー > [API とサービス] > [認証情報] に移動します。
- [認証情報を作成] をクリックし、[API キー] を選択します。新しい API キーが画面に表示されます。
- [クリップボードにコピー] アイコンをクリックし、クリップボードにコピーします。
- Cloud Shell で、次のように入力します。YOUR-API-KEY は、先ほど作成した API キーに置き換えます。
- 先ほど作成した API キー変数を使用して API にリクエストを送信します。
コンソールに次のような行が表示されます。
- これで、API の 1 秒あたりのリクエスト数が 5 に制限されました。次のコマンドを実行してトラフィックを API に送信し、割り当て制限をトリガーします。
-
このスクリプトを 5〜10 秒間実行した後、Cloud Shell で Ctrl+C キーを押してスクリプトを停止します。
-
別の認証済みリクエストを API に送信します。
コンソールに次のような行が表示されます。
レスポンスが異なる場合は、generate_traffic_with_key.sh
スクリプトをもう一度実行してから、再試行してください。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
お疲れさまでした
これで、API のレート制限を正しく設定できました。API メソッドごとに異なる制限を設定したり、複数種類の割り当てを作成したり、どのユーザーがどの API を使用しているかを追跡したりすることもできます。
次のラボを受講する
このラボは Qwik Start と呼ばれるラボシリーズの一部です。これらのラボでは、Google Cloud で利用できる多くの機能を体験できます。ラボカタログで「Qwik Start」を検索し、興味のあるラボを探してみてください。
次のステップと詳細情報
割り当てについて詳しくは、以下を参照してください。
Google Cloud トレーニングと認定資格
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2024 年 4 月 25 日
ラボの最終テスト日: 2024 年 4 月 25 日
Copyright 2024 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。