arrow_back

API Explorer: App Engine

参加 ログイン
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

API Explorer: App Engine

Lab 45分 universal_currency_alt クレジット: 1 show_chart 入門
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP422

Google Cloud セルフペース ラボ

概要

Google APIs Explorer は、さまざまな Google API をインタラクティブに試せるツールです。API Explorer を使用すると、以下のようなことができます。

  • 利用可能な API とバージョンをすばやくブラウジングする。
  • 各 API で利用可能なメソッドを表示して、サポートされているパラメータやインライン ドキュメントを確認する。
  • 任意のメソッドに対してリクエストを実行し、リアルタイムでレスポンスを確認する。
  • 認証および承認済みの API 呼び出しを行う。
  • すべてのサービス、メソッド、最近のリクエストの中から目的のものをすばやく検索する。

App Engine では、フルマネージド型のプラットフォームにアプリケーションをデプロイできます。基盤となるインフラストラクチャを特別に管理する必要なく、アプリケーションをシームレスにスケーリングできます。サーバーの管理も環境の構成も不要なため、デベロッパーは優れたアプリケーションを構築することだけに集中できるほか、管理上のオーバーヘッドも発生しません。

このラボでは、シンプルな Hello World アプリケーションを App Engine にデプロイし、API Explorer ツールから App Engine Admin API を使用して構成を更新します。

目標

このラボでは、次の作業を行います。

  • API Explorer ツールを使用して App Engine アプリケーションを作成する。
  • Hello World サンプルコードから App Engine インスタンスをデプロイする。
  • API Explorer ツールを使用して App Engine のファイアウォール ルールを構成する。
  • コードベースに変更を加えて、API Explorer ツールでアプリケーションの新しいバージョンを作成する。

前提事項

これは基礎レベルのラボです。API の基本的な機能とアーキテクチャに精通している必要があります。また、Google Cloud Shell とコマンドライン インターフェース ツールの使用経験があるとなおよいでしょう。

API Explorer ツールに関する知識があることも推奨されます。このため、このラボを受講する前に少なくとも以下のラボを受講してください。

App Engine をまだよく理解していない場合は、App Engine: Qwik Start - Python ラボを受講すると、このラボの内容を理解するのに役立ちます。準備ができたら下にスクロールし、手順に沿ってラボ環境を設定します。

設定と要件

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

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

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

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

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

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

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。

    • [Google コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google コンソールを開く] をクリックします。 ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。

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

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、[ラボの詳細] パネルから [ユーザー名] をコピーして [ログイン] ダイアログに貼り付けます。[次へ] をクリックします。

  4. [ラボの詳細] パネルから [パスワード] をコピーして [ようこそ] ダイアログに貼り付けます。[次へ] をクリックします。

    重要: 認証情報は左側のパネルに表示されたものを使用してください。Google Cloud Skills Boost の認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  5. その後次のように進みます。

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

その後このタブで Cloud Console が開きます。

注: 左上にある [ナビゲーション メニュー] をクリックすると、Google Cloud のプロダクトやサービスのリストが含まれるメニューが表示されます。 ナビゲーション メニュー アイコン

Cloud Shell をアクティブにする

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

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

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

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

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

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

  2. 出力は次のようになります。

出力:

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

出力:

[core] project = <project_ID>

出力例:

[core] project = qwiklabs-gcp-44776a13dea667a6 注: Google Cloud における gcloud ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。

タスク 1. apps.create で App Engine アプリケーションをビルドする

API Explorer から使用できるメソッドの 1 つを使用して、App Engine アプリケーションを作成します。

  1. App Engine の API Explorer ツールにアクセスするには、ナビゲーション メニューを開いて [API とサービス] > [ライブラリ] を選択します。

  2. 検索バーに「App Engine」と入力し、検索結果のリストで [App Engine Admin API] を選択します。API が有効になっていることを確認します。有効になっていない場合は、[有効にする] をクリックします。

  3. これで、API が有効になっていることを確認できたので、Method: apps.create reference を開きます。apps create メソッドが開きます。

  4. 右側のパネルにある [Try this method] で [Request body] フィールドをクリックして、次の内容を追加します。

  • ID プロパティ。値をプロジェクト ID に設定します。
  • locationId プロパティ。値を に設定します。この必須フィールドによって、App Engine リソースのロケーションが Google Cloud に伝わります。
  1. 各フィールドに余分なスペースが含まれていないことを確認し、[Credentials] の [Google OAuth 2.0] と [API key] がオンになっていることを確認します。

Credentials のチェックボックスが両方ともオンになっています。

注: 認証情報に関するよくある質問を表示するには、[Credentials] の横にある疑問符アイコンをクリックします。
  1. [EXECUTE] ボタンをクリックします。

  2. このラボを開始するときに使用した受講者アカウントを選択します。

  3. 次の画面で [許可] をクリックすると、API Explorer にアクセスできます。

次のようなレスポンスが返されます。

{ "name": "apps/qwiklabs-gcp-da84962e277c92a7/operations/193f576c-8791-4638-920e-b1ccb6305ae1", "metadata": { "@type": "type.googleapis.com/google.appengine.v1.OperationMetadataV1", "method": "google.appengine.v1.Applications.CreateApplication", "insertTime": "2019-10-16T12:37:36.743Z", "user": "gcpstaging92860_student@qwiklabs.net", "target": "apps/qwiklabs-gcp-da84962e277c92a7" } }

Google Cloud プロジェクトの App Engine アプリケーションが正常にビルドされました。

タスク 2. apps.get でアプリケーションの情報を取得する

次に、App Engine アプリケーションに関する情報をいくつか取得して、適切に作成されていることを確認します。

  1. 左側の [すべての API とリファレンス] セクションで [REST API] > [v1] > [apps] > [get] に移動します。または、この直接リンクを使用して apps.get メソッドに移動します。

  2. appsId フィールドに、ラボの [接続の詳細] セクションで見つけた <PROJECT_ID> を入力します。

  3. [Credentials] の [Google OAuth 2.0] と [API key] がオンになっていることを確認します。

Credentials セクション

  1. [EXECUTE] ボタンをクリックします。場合によっては、再度、受講者アカウントを選択して [許可] をクリックする必要があります。

次のようなレスポンスが返されます。

{ "name": "apps/qwiklabs-gcp-da84962e277c92a7", "id": "qwiklabs-gcp-da84962e277c92a7", "authDomain": "gmail.com", "locationId": "{{{ project_0.startup_script.app_region | REGION }}}", "codeBucket": "staging.qwiklabs-gcp-da84962e277c92a7.appspot.com", "servingStatus": "SERVING", "defaultHostname": "qwiklabs-gcp-da84962e277c92a7.appspot.com", "defaultBucket": "qwiklabs-gcp-da84962e277c92a7.appspot.com", "gcrDomain": "us.gcr.io", "featureSettings": { "splitHealthChecks": true, "useContainerOptimizedOs": true } }

このメソッドはサニティ チェックとして機能し、App Engine アプリケーションに関する有用な情報を提供します(デフォルトのホスト名、ロケーション、サービス提供ステータスなど)。

タスク 3. スターター コードをダウンロードする

App Engine アプリケーションをデプロイする前に、作業に使用するスターター コードをダウンロードする必要があります。

  1. Cloud コンソールに戻り、Cloud Shell で次のコマンドを実行して、シンプルな Hello World アプリケーションのコードベースを含むリポジトリのクローンを作成します。
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
  1. 現在の作業ディレクトリを変更します。
cd ~/python-docs-samples/appengine/standard_python3/hello_world

hello_world フォルダには、Flask ウェブ フレームワークを使用するシンプルな Python アプリケーションが含まれています。この Python アプリケーションは、リクエストに対して HTTP ヘッダーとメッセージ「Hello World!」で応答します。

タスク 4. App Engine アプリケーションをデプロイする

  1. このステップでは引き続き Cloud Shell セッションで作業します。次のコマンドを実行して、プロジェクト ID を環境変数として設定します。[YOUR_PROJECT_ID] は自分の Project ID に置き換えてください。
export PROJECT_ID=[YOUR_PROJECT_ID]
  1. その後、次の gcloud コマンドを実行して Hello World アプリケーションをデプロイします。
gcloud app deploy app.yaml --project $PROJECT_ID
  1. 次のプロンプトが表示されたら、「Y」と入力します。
Do you want to continue(Y/n)?

デプロイが完了するまでに数分かかります。完了すると次のような出力が表示されます。

File upload done. Updating service [default]...done. Setting traffic split for service [default]...done. Deployed service [default] to [https://qwiklabs-gcp-b5d5fa242d334941.appspot.com]
  1. デプロイされたサービスのリンク(https://qwiklabs-gcp-b5d5fa242d334941.appspot.com のようなリンク)をコピーして、新しいタブに貼り付けます。Hello World アプリケーションが開いて、ページは次のようになります。

「Hello World!」と表示されているウェブページ

アプリケーションをデプロイできたので、今度は API Explorer を使用して App Engine の構成を変更します。

Hello World のページは開いたままにしておいてください

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

[進行状況を確認] をクリックして、実行したタスクを確認します。App Engine アプリケーションが正常にデプロイされている場合は、評価スコアが表示されます。

App Engine アプリケーションをデプロイする

タスク 5. apps.firewall.ingressRules で上り(内向き)ファイアウォール ルールを構成する

ここでは、Hello World アプリケーションへのアクセスを規定するファイアウォール ルールを作成、表示、削除します。

上り(内向き)ファイアウォール ルールを作成する

  1. [API とリファレンス] セクションで [REST API] > [v1] > [apps.firewall.ingressRules] > [create] に移動します。または、この直接リンクを使用して apps.firewall.ingressRules.create メソッドに移動します。

  2. [appsId] フィールドにプロジェクト ID を入力します。

  3. [Request body] をクリックして、次の内容を追加します。

  • sourceRange プロパティ。値を * に設定します。
  • action プロパティ。値を DENY に設定します。
  • priority プロパティ。値を 1 に設定します。

メソッドが次のようになります。

[Request body] フィールドに表示されているメソッド

  1. 各フィールドに余分なスペースが含まれていないことを確認し、[Credentials] の [Google OAuth 2.0] と [API key] がオンになっていることを確認します。

Credentials セクション

  1. [EXECUTE] ボタンをクリックします。次のようなレスポンスが返されます。
{ "priority": 1, "action": "DENY", "sourceRange": "*" }

このファイアウォール ルールは、Hello World アプリケーションへのすべてのリクエストを拒否します。

  1. 実際の動作を確認するには、ブラウザで Hello World のページを更新します。アプリケーションにアクセスできなくなっていることがわかります。
    表示されている Google 403 エラー。

  2. API Explorer のページに戻って、次のステップに進みましょう。

上り(内向き)ファイアウォール ルールを一覧表示する

  1. 左側の [すべての API とリファレンス] セクションで [REST API] > [v1] > [apps.firewall.ingressRules] > [list] に移動します。または、この直接リンクを使用して apps.firewall.ingressRules.list メソッドに移動します。

  2. [appsId] フィールドにプロジェクト ID を入力します。

[appsId] テキスト フィールドにハイライト表示されているプロジェクト ID

  1. [appsId] フィールドに余分なスペースが含まれていないことを確認し、[Credentials] の [Google OAuth 2.0] と [API key] がオンになっていることを確認します。

Credentials セクション

  1. [EXECUTE] ボタンをクリックします。

次のようなレスポンスが返されます。

{ "ingressRules": [ { "priority": 1, "action": "DENY", "sourceRange": "*" }, { "priority": 2147483647, "action": "ALLOW", "sourceRange": "*", "description": "The default action." } ] }

ファイアウォール ルールが 2 つあります。アプリケーションへのトラフィックを許可するルールと、拒否するルールです。各上り(内向き)ルールの priority の値を書き留めます。これらはファイアウォール ルール ID としても機能します。

上り(内向き)ファイアウォール ルールを削除する

  1. 左側の [すべての API とリファレンス] セクションで [REST API] > [v1] > [apps.firewall.ingressRules] > [delete] に移動します。または、この直接リンクを使用して apps.firewall.ingressRules.delete メソッドに移動します。

  2. [appsId] フィールドにプロジェクト ID を入力します。[ingressRulesId] フィールドに「1」と入力します。メソッドが次のようになります。

[Request parameters] セクションに表示されているメソッド

  1. 各フィールドに余分なスペースが含まれていないことを確認し、[Credentials] の [Google OAuth 2.0] と [API key] がオンになっていることを確認します。

Credentials セクション

  1. [EXECUTE] ボタンをクリックします。

次のようなレスポンスが返されます。

{}
  1. ブラウザで Hello World のページを更新すると、再びアプリケーションにアクセスできるようになっています。

「Hello World!」と表示があるウェブページ

上り(内向き)ファイアウォール ルールを構成できるようになったので、次の段階に進んで、アプリケーションの新しいバージョンを作成してデプロイしてみましょう。

タスク 6. アプリケーション ファイルを更新する

アプリケーションのソースコードに小さな変更を加えます。

  1. このステップでは、Cloud Shell に戻ります。まだ hello_world ディレクトリにいるはずですが、いない場合は次のコマンドを実行します。
cd ~/python-docs-samples/appengine/standard_python3/hello_world
  1. 次に、nano テキスト エディタで main.py ファイルを開きます。
nano main.py
  1. hello 関数までスクロールして、「Goodbye World!」を返すように編集します。
@app.route('/') def hello(): """Return a friendly HTTP greeting.""" return 'Goodbye World!'
  1. Ctrl+X キー、Y > ENTER キーの順に押し、変更を保存して nano エディタを終了します。

タスク 7. apps.services.versions.create でアプリケーションの新しいバージョンを作成する

次に、更新した「Goodbye World!」のコードベースを使用する、アプリケーションの新しいバージョンを作成します。

  1. Cloud コンソールの、ナビゲーション メニュー(ナビゲーション メニュー アイコンから Cloud Storage > バケットを選択します。次のようなバケットのリストが表示されます。

バケットのリストが表示されているブラウザページ

  1. バケット名 staging.qwiklabs-gcp-xxxx.appspot.comコピーして保存します。

  2. 次に、そのバケットをクリックして、そこに含まれているファイルを表示します。

  3. application/json ファイルの名前をコピーして保存します。

[オブジェクト] タブページにハイライト表示されている application/json ファイルの名前

これで、Hello World アプリケーションの新しいバージョンを作成するために必要な情報が揃いました。

  1. API Explorer に戻って、次のステップに進みましょう。

  2. 左側の [すべての API とリファレンス] セクションで [REST API] > [v1] > [apps.services.versions] > [create] に移動します。または、この直接リンクを使用して apps.services.versions.create メソッドに移動します。

  3. [appsId] フィールドにプロジェクト ID を入力します。[servicesId] フィールドに「default」と入力します。

  4. [Request body] をクリックして、次の内容を追加します。

  • id プロパティ。値を v1 に設定します。
  • runtime プロパティ。値を python39 に設定します。
  • さらに entrypoint プロパティを追加して、その中に shell プロパティを追加します。値は空のままにしておきます。

メソッドが次のようになります。

[Request parameters] セクションに表示されているメソッド

  1. 次に、deployment プロパティを追加します。
  • その中に files という新しいプロパティを追加し、その下に表示される [Add] リンクをクリックして、「latest」という名前を付けます。
  • latest に sourceUrl プロパティを追加して、次の値を設定します。<YOUR_BUCKET_NAME> は Cloud Storage のステージング バケットの名前に、<YOUR_JSON_FILE_NAME> は JSON ファイルの名前に、それぞれ置き換えてください。これらは先ほどコピーした名前です。
https://storage.googleapis.com/<YOUR_BUCKET_NAME>/<YOUR_JSON_FILE_NAME>

メソッドが次のようになります。

[Request body] テキスト フィールドに表示されているメソッド

  1. [Credentials] の [Google OAuth 2.0] と [API key] がオンになっていることを確認します。

Credentials セクション

  1. 入力が完了したら、[EXECUTE] ボタンをクリックします。

次の出力が表示されます。

{ "name": "apps/qwiklabs-gcp-da84962e277c92a7/operations/7ca371a7-3bf6-4215-871e-7f9aac815714", "metadata": { "@type": "type.googleapis.com/google.appengine.v1.OperationMetadataV1", "method": "google.appengine.v1.Versions.CreateVersion", "insertTime": "2019-10-16T14:39:19.231Z", "user": "gcpstaging92860_student@qwiklabs.net", "target": "apps/qwiklabs-gcp-da84962e277c92a7/services/default/versions/v1" } }

入力するフィールドがたくさんありましたが、このようなときこそ API Explorer が役に立ちます。API Explorer では、すべてのパラメータが視覚的に表示され、互いにどのように関連しているのかが示されます。これは、API メソッドを正しく呼び出すうえで重要です。

タスク 8. アプリケーションの新しいバージョンをデプロイする

  1. このステップは Cloud コンソールに戻って行います。

  2. ナビゲーション メニューを開き、[App Engine] > [バージョン] を選択します。

アプリケーションのバージョンが 2 つ表示されます。

アプリケーションの 2 つのバージョンが表示されているバージョン ページ

注: バージョンが 2 つ表示されない場合は、更新がまだ反映されていない可能性があります。ページが上のスクリーンショットのようになるまで、左上にある [更新] ボタンを何度かクリックしてみてください。
  1. Cloud Shell セッションに戻ります。まだ hello_world ディレクトリにいるはずですが、いない場合は次のコマンドを実行します。
cd ~/python-docs-samples/appengine/standard_python3/hello_world

次に、アプリケーションの新しいバージョンをデプロイします。

  1. 次のコマンドを実行して、「Goodbye World!」のメッセージが表示される新しいバージョンをデプロイします。
gcloud app deploy -v v1
  1. 次のプロンプトが表示されたら、「Y」と入力します。
Do you want to continue(Y/n)?

デプロイが完了するまでに数分かかります。

完了すると次のような出力が表示されます。

File upload done. Updating service [default]...done. Setting traffic split for service [default]...done. Deployed service [default] to [https://qwiklabs-gcp-b5d5fa242d334941.appspot.com]
  1. 表示されたリンクをコピーするか、ブラウザでアプリケーションのページを更新します。次の結果が表示されます。

「Goodbye World!」と表示されているウェブページ

Cloud コンソールに戻って [App Engine] > [バージョン] を確認すると、v1 が実行されていることがわかります。

ステータスが処理中で、トラフィックの割り当てが 100% の v1 を表示しているサービスページ

これで、API Explorer でアプリケーションの新しいバージョンを作成し、Cloud Shell でデプロイできました。

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

[進行状況を確認] をクリックして、実行したタスクを確認します。アプリケーションの新しいバージョンが正常に作成されている場合は、評価スコアが表示されます。

アプリケーションの新しいバージョンを作成しデプロイする

お疲れさまでした

このラボでは、API Explorer を使用して App Engine Admin API のメソッドを実際に試してみました。まず、API Explorer ツールを使用して App Engine アプリケーションを作成し、Hello World サンプルコードからインスタンスをデプロイしました。次に、API Explorer ツールを使用して上り(内向き)ファイアウォール ルールを設定する方法を学びました。さらに、コードベースに変更を加えて API Explorer でアプリケーションの新しいバージョンを作成し、それをデプロイして正常にアクセスできることを確認しました。「API の確認」の他のラボも受講してください。

クエストを完了する

このセルフペース ラボは、「Exploring APIs」クエストの一部です。クエストとは学習プログラムを構成する一連のラボのことで、完了すると成果が認められてバッジが贈られます。バッジは公開して、オンライン レジュメやソーシャル メディア アカウントにリンクできます。このラボの修了後、こちらのクエストまたはこのラボが含まれるクエストに登録すれば、すぐにクレジットを受け取ることができます。受講可能なすべてのクエストについては、Google Cloud Skills Boost カタログをご覧ください。

次のラボを受講する

API Explorer の練習を続けるには、以下のラボもご覧ください。

次のステップと詳細情報

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

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

マニュアルの最終更新日: 2023 年 11 月 2 日

ラボの最終テスト日: 2023 年 11 月 2 日

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