
始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Create a bucket
/ 50
Upload objects to your bucket
/ 50
Cloud Storage では、世界中のどこからでも、いつでもデータを保存、取得できます。データの量に制限はありません。ウェブサイト コンテンツの提供、アーカイブと障害復旧のためのデータの保存、ユーザーへの大きなデータ オブジェクトの配布(直接ダウンロードによる)など、さまざまなシナリオで Google Cloud Storage を使用できます。
このラボでは、データの保存と取得に Cloud Storage を使用するようにアプリケーションを構成します。使用するアプリケーションはオンライン クイズ アプリケーション、使用するデータはそのフォームデータです。フォームに含める画像をローカルマシンからアップロードします。
このラボでは、次のタスクの実行方法について学びます。
各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。
Qwiklabs にシークレット ウィンドウでログインします。
ラボのアクセス時間(例: 1:15:00
)に注意し、時間内に完了できるようにしてください。
一時停止機能はありません。必要な場合はやり直せますが、最初からになります。
準備ができたら、[ラボを開始] をクリックします。
ラボの認証情報(ユーザー名とパスワード)をメモしておきます。この情報は、Google Cloud Console にログインする際に使用します。
[Google Console を開く] をクリックします。
[別のアカウントを使用] をクリックし、このラボの認証情報をコピーしてプロンプトに貼り付けます。
他の認証情報を使用すると、エラーが発生したり、料金の請求が発生したりします。
利用規約に同意し、再設定用のリソースページをスキップします。
Google Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。
Google Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
Google Cloud コンソールで、右上のツールバーにある [Cloud Shell をアクティブにする] ボタンをクリックします。
[続行] をクリックします。
環境がプロビジョニングされ、接続されるまでしばらく待ちます。接続した時点で認証が完了しており、プロジェクトに各自のプロジェクト ID が設定されます。次に例を示します。
gcloud は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
出力:
出力例:
出力:
出力例:
virtualenv
を使用してユーザー空間の仮想環境を作成します。この環境では、プロジェクトごとに異なる Python パッケージ セットをインストールできます。また、virtualenv を使用すると、Python パッケージをグローバルにインストールする必要がなくなるので、インストールが原因で発生するシステムツールや他の Python プロジェクトの障害を回避できます。このラボでは、virtualenv を使用してすべての Python コマンドに Python3 が使用されるようにします。
Python 3 の virtualenv 環境を構成します。
仮想環境をアクティブにします。
このセクションでは、Cloud Shell にアクセスしてクイズ アプリケーションを含む git リポジトリのクローンを作成し、アプリケーションを実行します。
次のコマンドを実行して、クラスのリポジトリのクローンを作成します。
作業ディレクトリへのショートカットとしてソフトリンクを作成します。
作業ディレクトリを変更します。
アプリケーションを構成します。
警告が表示されても無視します。
このスクリプト ファイルを実行すると、以下の処理が行われます。
GCLOUD_PROJECT
をエクスポートするpip install -r requirements.txt
を実行するアプリケーションを実行します。
アプリケーションの実行が開始されると、次のような出力が表示されます。
[ウェブでプレビュー] アイコン > [ポート 8080 でプレビュー] をクリックして、アプリケーションをプレビューします。
ツールバーの [Create Question] をクリックします。
シンプルなフォームが表示されます。このフォームには、質問と解答用のテキストボックスと、正解を選択するためのラジオボタンが含まれています。
このセクションでは、このケーススタディ用アプリケーションのコードを確認します。
このラボでは、ファイルの閲覧と編集を行います。Cloud Shell にインストールされている nano
や vim
などの shell エディタや、Cloud Shell コードエディタを使用できます。
このラボでは、Cloud Shell コードエディタを使用してこのクイズ アプリケーションのコードを確認します。
エディタの左側にあるファイル ブラウザ パネルから、/cloudstorage/start
フォルダに移動します。
...quiz/webapp/templates/
フォルダにある add.html
ファイルを選択します。
このファイルには、Create Question フォームのテンプレートが含まれています。
フォームが変更されていることに注意してください。enc-type
に multipart/form-data
が使用され、次の 2 つのフォーム コントロールが追加されています。
image
: ファイル アップロード用コントロールimageUrl
: 非表示項目...quiz/webapp
フォルダにある routes.py
ファイルを選択します。
このファイルには、フォームデータを受け取る POST ハンドラのルートが含まれています。フォームから画像ファイルを取得するように変更されています。
...quiz/webapp
フォルダにある questions.py
ファイルを選択します。
このファイルには、routes.py
ファイルで抽出されたフォームデータを処理するハンドラが含まれています。Cloud Storage のクライアントである新しいモジュールを使用できるように、このファイルを変更します。
...quiz/gcp/storage.py
ファイルを選択します。
このファイルに、画像ファイルのデータを Cloud Storage に保存するためのコードを記述します。
このセクションでは、Cloud Storage バケットを作成し、それを参照する環境変数をエクスポートします。
Cloud Shell コマンドラインに戻り、[ターミナルを開く] をクリックします。
Ctrl+C キーを押してアプリケーションを停止します。
<プロジェクト ID>-media
という名前の Cloud Storage バケットを作成します。
バケットを作成するには gcloud storage buckets create
コマンドを使用し、このコマンドにバケットの名前として gs://BUCKET_NAME を渡します。
接頭辞 $DEVSHELL_PROJECT_ID の後に -media を続けたバケット名を使用します。
次のコマンドを実行して、Cloud Storage バケット名を GCLOUD_BUCKET
という名前の環境変数としてエクスポートします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このセクションでは、アップロードされたファイルを Cloud Storage に保存するためのコードを記述します。
// TODO
// END TODO
学習効果を最大限に高めるために、コード、インライン コメント、関連する API ドキュメントを確認してください。
Cloud Storage の API ドキュメントについて詳しくは、API とリファレンスをご覧ください。
...quiz/gcp/storage.py
ファイルの先頭に移動します。GCLOUD_BUCKET
環境変数からバケット名を取得します。google.cloud
パッケージから storage モジュールをインポートします。quiz/gcp/storage.py:
storage.py
で、upload_file(...)
関数の既存の pass ステートメントを削除してから、Cloud Storage クライアントを使用して、Cloud Storage バケットにファイルをアップロードして公開します。quiz/gcp/storage.py upload_file(...)
関数:
storage.py
を保存します。...quiz/webapp/questions.py
ファイルの先頭に移動します。upload_file(...)
関数に移動し、storage クライアントを使用してファイルをアップロードし、返された公開 URL を変数に代入します。save_question(...)
関数に移動し、image_file
が存在するかどうかを確認する if テストを記述します。upload_file(...)
関数を呼び出して、imageUrl という名前のエンティティ プロパティに公開 URL を割り当てます。quiz/webapp/questions.py:
questions.py
を保存します。ローカルマシンに storage ロゴの画像ファイルをダウンロードします。
Cloud Shell で [ウェブでプレビュー] アイコン > [ポート 8080 でプレビュー] をクリックして、クイズ アプリケーションをプレビューします。
[Create Question] をクリックします。
フォームに次の値を入力して、[Save] をクリックします。
フォームの項目 | 値 |
---|---|
Author | 自分の名前 |
Quiz | Google Cloud Platform |
Title | Which product does this logo relate to? |
Image | 先ほどダウンロードした Google_Cloud_Storage_logo.png ファイルをアップロード |
Answer 1 | App Engine |
Answer 2 |
Cloud Storage ([Answer 2] のラジオボタンを選択します) |
Answer 3 | Compute Engine |
Answer 4 | Kubernetes Engine |
Google Cloud コンソールに戻り、ナビゲーション メニュー > [Cloud Storage] に移動します。
[Cloud Storage] > [バケット] ページで、適切なバケット(<プロジェクト ID>-media
という名前)をクリックします。
Google_Cloud_Storage_logo.png
という名前の新しいオブジェクトが表示されます。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
アプリケーションの URL の末尾に /api/quizzes/gcp
を追加します。
先ほどこのウェブ アプリケーションに追加した質問に対応する JSON データがクライアントに返されるはずです。
imageUrl プロパティには、Cloud Storage のオブジェクトに対応する値が含まれています。
アプリケーションのホームページに戻り、[Take Test] リンクをクリックします。
[GCP] をクリックし、各質問に答えます。
先ほど追加した質問まで進むと、クライアントサイド ウェブ アプリケーションに画像が表示されます。
ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。
ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。
星の数は、それぞれ次の評価を表します。
フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。
フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。
Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください