チェックポイント
Deploy an app engine application
/ 50
Create and deploy a new version of your app
/ 50
API Explorer: App Engine
- GSP422
- 概要
- 設定と要件
- タスク 1. apps.create で App Engine アプリケーションをビルドする
- タスク 2. apps.get でアプリケーションの情報を取得する
- タスク 3. スターター コードをダウンロードする
- タスク 4. App Engine アプリケーションをデプロイする
- タスク 5. apps.firewall.ingressRules で上り(内向き)ファイアウォール ルールを構成する
- タスク 6. アプリケーション ファイルを更新する
- タスク 7. apps.services.versions.create でアプリケーションの新しいバージョンを作成する
- タスク 8. アプリケーションの新しいバージョンをデプロイする
- お疲れさまでした
GSP422
概要
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 コンソールを開く] ボタン
- 残り時間
- このラボで使用する必要がある一時的な認証情報
- このラボを行うために必要なその他の情報(ある場合)
-
[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. apps.create で App Engine アプリケーションをビルドする
API Explorer から使用できるメソッドの 1 つを使用して、App Engine アプリケーションを作成します。
-
App Engine の API Explorer ツールにアクセスするには、ナビゲーション メニューを開いて [API とサービス] > [ライブラリ] を選択します。
-
検索バーに「App Engine」と入力し、検索結果のリストで [App Engine Admin API] を選択します。API が有効になっていることを確認します。有効になっていない場合は、[有効にする] をクリックします。
-
これで、API が有効になっていることを確認できたので、Method: apps.create reference を開きます。apps create メソッドが開きます。
-
右側のパネルにある [Try this method] で [Request body] フィールドをクリックして、次の内容を追加します。
- ID プロパティ。値をプロジェクト ID に設定します。
-
locationId プロパティ。値を
に設定します。この必須フィールドによって、App Engine リソースのロケーションが Google Cloud に伝わります。
- 各フィールドに余分なスペースが含まれていないことを確認し、[Credentials] の [Google OAuth 2.0] と [API key] がオンになっていることを確認します。
-
[EXECUTE] ボタンをクリックします。
-
このラボを開始するときに使用した受講者アカウントを選択します。
-
次の画面で [許可] をクリックすると、API Explorer にアクセスできます。
次のようなレスポンスが返されます。
Google Cloud プロジェクトの App Engine アプリケーションが正常にビルドされました。
タスク 2. apps.get でアプリケーションの情報を取得する
次に、App Engine アプリケーションに関する情報をいくつか取得して、適切に作成されていることを確認します。
-
左側の [すべての API とリファレンス] セクションで [REST API] > [v1] > [apps] > [get] に移動します。または、この直接リンクを使用して
apps.get
メソッドに移動します。 -
appsId フィールドに、ラボの [接続の詳細] セクションで見つけた
<PROJECT_ID>
を入力します。 -
[Credentials] の [Google OAuth 2.0] と [API key] がオンになっていることを確認します。
- [EXECUTE] ボタンをクリックします。場合によっては、再度、受講者アカウントを選択して [許可] をクリックする必要があります。
次のようなレスポンスが返されます。
このメソッドはサニティ チェックとして機能し、App Engine アプリケーションに関する有用な情報を提供します(デフォルトのホスト名、ロケーション、サービス提供ステータスなど)。
タスク 3. スターター コードをダウンロードする
App Engine アプリケーションをデプロイする前に、作業に使用するスターター コードをダウンロードする必要があります。
- Cloud コンソールに戻り、Cloud Shell で次のコマンドを実行して、シンプルな Hello World アプリケーションのコードベースを含むリポジトリのクローンを作成します。
- 現在の作業ディレクトリを変更します。
hello_world
フォルダには、Flask ウェブ フレームワークを使用するシンプルな Python アプリケーションが含まれています。この Python アプリケーションは、リクエストに対して HTTP ヘッダーとメッセージ「Hello World!」で応答します。
タスク 4. App Engine アプリケーションをデプロイする
- このステップでは引き続き Cloud Shell セッションで作業します。次のコマンドを実行して、プロジェクト ID を環境変数として設定します。
[YOUR_PROJECT_ID]
は自分の Project ID に置き換えてください。
- その後、次の gcloud コマンドを実行して Hello World アプリケーションをデプロイします。
- 次のプロンプトが表示されたら、「Y」と入力します。
デプロイが完了するまでに数分かかります。完了すると次のような出力が表示されます。
- デプロイされたサービスのリンク(
https://qwiklabs-gcp-b5d5fa242d334941.appspot.com
のようなリンク)をコピーして、新しいタブに貼り付けます。Hello World アプリケーションが開いて、ページは次のようになります。
アプリケーションをデプロイできたので、今度は API Explorer を使用して App Engine の構成を変更します。
Hello World のページは開いたままにしておいてください。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。App Engine アプリケーションが正常にデプロイされている場合は、評価スコアが表示されます。
タスク 5. apps.firewall.ingressRules で上り(内向き)ファイアウォール ルールを構成する
ここでは、Hello World アプリケーションへのアクセスを規定するファイアウォール ルールを作成、表示、削除します。
上り(内向き)ファイアウォール ルールを作成する
-
[API とリファレンス] セクションで [REST API] > [v1] > [apps.firewall.ingressRules] > [create] に移動します。または、この直接リンクを使用して
apps.firewall.ingressRules.create
メソッドに移動します。 -
[appsId] フィールドにプロジェクト ID を入力します。
-
[Request body] をクリックして、次の内容を追加します。
-
sourceRange プロパティ。値を
*
に設定します。 - action プロパティ。値を DENY に設定します。
- priority プロパティ。値を 1 に設定します。
メソッドが次のようになります。
- 各フィールドに余分なスペースが含まれていないことを確認し、[Credentials] の [Google OAuth 2.0] と [API key] がオンになっていることを確認します。
- [EXECUTE] ボタンをクリックします。次のようなレスポンスが返されます。
このファイアウォール ルールは、Hello World アプリケーションへのすべてのリクエストを拒否します。
-
実際の動作を確認するには、ブラウザで Hello World のページを更新します。アプリケーションにアクセスできなくなっていることがわかります。
-
API Explorer のページに戻って、次のステップに進みましょう。
上り(内向き)ファイアウォール ルールを一覧表示する
-
左側の [すべての API とリファレンス] セクションで [REST API] > [v1] > [apps.firewall.ingressRules] > [list] に移動します。または、この直接リンクを使用して
apps.firewall.ingressRules.list
メソッドに移動します。 -
[appsId] フィールドにプロジェクト ID を入力します。
- [appsId] フィールドに余分なスペースが含まれていないことを確認し、[Credentials] の [Google OAuth 2.0] と [API key] がオンになっていることを確認します。
- [EXECUTE] ボタンをクリックします。
次のようなレスポンスが返されます。
ファイアウォール ルールが 2 つあります。アプリケーションへのトラフィックを許可するルールと、拒否するルールです。各上り(内向き)ルールの priority の値を書き留めます。これらはファイアウォール ルール ID としても機能します。
上り(内向き)ファイアウォール ルールを削除する
-
左側の [すべての API とリファレンス] セクションで [REST API] > [v1] > [apps.firewall.ingressRules] > [delete] に移動します。または、この直接リンクを使用して
apps.firewall.ingressRules.delete
メソッドに移動します。 -
[appsId] フィールドにプロジェクト ID を入力します。[ingressRulesId] フィールドに「1」と入力します。メソッドが次のようになります。
- 各フィールドに余分なスペースが含まれていないことを確認し、[Credentials] の [Google OAuth 2.0] と [API key] がオンになっていることを確認します。
- [EXECUTE] ボタンをクリックします。
次のようなレスポンスが返されます。
- ブラウザで Hello World のページを更新すると、再びアプリケーションにアクセスできるようになっています。
上り(内向き)ファイアウォール ルールを構成できるようになったので、次の段階に進んで、アプリケーションの新しいバージョンを作成してデプロイしてみましょう。
タスク 6. アプリケーション ファイルを更新する
アプリケーションのソースコードに小さな変更を加えます。
- このステップでは、Cloud Shell に戻ります。まだ
hello_world
ディレクトリにいるはずですが、いない場合は次のコマンドを実行します。
- 次に、
nano
テキスト エディタでmain.py
ファイルを開きます。
- hello 関数までスクロールして、「Goodbye World!」を返すように編集します。
-
Ctrl+X キー、Y > ENTER キーの順に押し、変更を保存して
nano
エディタを終了します。
タスク 7. apps.services.versions.create でアプリケーションの新しいバージョンを作成する
次に、更新した「Goodbye World!」のコードベースを使用する、アプリケーションの新しいバージョンを作成します。
- Cloud コンソールの、ナビゲーション メニュー()から Cloud Storage > バケットを選択します。次のようなバケットのリストが表示されます。
-
バケット名
staging.qwiklabs-gcp-xxxx.appspot.com
をコピーして保存します。 -
次に、そのバケットをクリックして、そこに含まれているファイルを表示します。
-
application/json
ファイルの名前をコピーして保存します。
これで、Hello World アプリケーションの新しいバージョンを作成するために必要な情報が揃いました。
-
API Explorer に戻って、次のステップに進みましょう。
-
左側の [すべての API とリファレンス] セクションで [REST API] > [v1] > [apps.services.versions] > [create] に移動します。または、この直接リンクを使用して
apps.services.versions.create
メソッドに移動します。 -
[appsId] フィールドにプロジェクト ID を入力します。[servicesId] フィールドに「default」と入力します。
-
[Request body] をクリックして、次の内容を追加します。
- id プロパティ。値を v1 に設定します。
- runtime プロパティ。値を python39 に設定します。
- さらに entrypoint プロパティを追加して、その中に shell プロパティを追加します。値は空のままにしておきます。
メソッドが次のようになります。
- 次に、deployment プロパティを追加します。
- その中に files という新しいプロパティを追加し、その下に表示される [Add] リンクをクリックして、「latest」という名前を付けます。
- latest に sourceUrl プロパティを追加して、次の値を設定します。
<YOUR_BUCKET_NAME>
は Cloud Storage のステージング バケットの名前に、<YOUR_JSON_FILE_NAME>
は JSON ファイルの名前に、それぞれ置き換えてください。これらは先ほどコピーした名前です。
メソッドが次のようになります。
- [Credentials] の [Google OAuth 2.0] と [API key] がオンになっていることを確認します。
- 入力が完了したら、[EXECUTE] ボタンをクリックします。
次の出力が表示されます。
入力するフィールドがたくさんありましたが、このようなときこそ API Explorer が役に立ちます。API Explorer では、すべてのパラメータが視覚的に表示され、互いにどのように関連しているのかが示されます。これは、API メソッドを正しく呼び出すうえで重要です。
タスク 8. アプリケーションの新しいバージョンをデプロイする
-
このステップは Cloud コンソールに戻って行います。
-
ナビゲーション メニューを開き、[App Engine] > [バージョン] を選択します。
アプリケーションのバージョンが 2 つ表示されます。
- Cloud Shell セッションに戻ります。まだ
hello_world
ディレクトリにいるはずですが、いない場合は次のコマンドを実行します。
次に、アプリケーションの新しいバージョンをデプロイします。
- 次のコマンドを実行して、「Goodbye World!」のメッセージが表示される新しいバージョンをデプロイします。
- 次のプロンプトが表示されたら、「Y」と入力します。
デプロイが完了するまでに数分かかります。
完了すると次のような出力が表示されます。
- 表示されたリンクをコピーするか、ブラウザでアプリケーションのページを更新します。次の結果が表示されます。
Cloud コンソールに戻って [App Engine] > [バージョン] を確認すると、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 の練習を続けるには、以下のラボもご覧ください。
次のステップと詳細情報
- App Engine Admin API のドキュメント
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 の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。