
始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Create a bucket
/ 50
Upload objects to your bucket
/ 50
Cloud Storage では、世界中のどこからでも、いつでもデータを保存、取得できます。データの量に制限はありません。ウェブサイト コンテンツの提供、アーカイブと障害復旧のためのデータの保存、直接ダウンロードによるユーザーへの大きなデータ オブジェクトの配布など、さまざまなシナリオで Cloud Storage を使用できます。
このラボでは、Cloud Storage を使用してアプリケーション データを保存、取得するようにアプリケーションを構成します。使用するアプリケーションはオンライン クイズ アプリケーション、使用するデータはそのフォームデータです。フォームに含める画像をローカルマシンからアップロードします。
このラボでは、次のタスクの実行方法について学びます。
こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。
このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。
ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
[ラボの詳細] ペインでもユーザー名を確認できます。
[次へ] をクリックします。
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
[ラボの詳細] ペインでもパスワードを確認できます。
[次へ] をクリックします。
その後次のように進みます。
その後、このタブで Google Cloud コンソールが開きます。
Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン をクリックします。
ウィンドウで次の操作を行います。
接続した時点で認証が完了しており、プロジェクトに各自の Project_ID、
gcloud
は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
出力:
出力:
gcloud
ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。
YOUR-PROJECT-ID
は実際のプロジェクト ID に置き換えます。このセクションでは、Cloud Shell にアクセスしてクイズ アプリケーションを含む git リポジトリのクローンを作成し、アプリケーションを実行します。
作業ディレクトリを変更します。
変数を使用してリージョンを設定します。
アプリケーションを構成します。
このスクリプト ファイルを実行すると、以下の処理が行われます。
GCLOUD_PROJECT
をエクスポートする。pip install -r requirements.txt
を実行する。アプリケーションを実行します。
アプリケーションの実行が開始されると、次のような出力が表示されます。
[ウェブでプレビュー] アイコン > [ポート 8080 でプレビュー] をクリックして、アプリケーションをプレビューします。
ツールバーの [Create Question] をクリックします。
シンプルなフォームが表示されます。このフォームには、質問と解答用のテキスト ボックスと、正解を選択するためのラジオボタンが含まれています。
このセクションでは、このケーススタディ用アプリケーションのコードを確認します。
このラボでは、ファイルの閲覧と編集を行います。Cloud Shell にインストールされている nano
や vim
などの shell エディタや、Cloud Shell コードエディタを使用できます。
このラボでは、Cloud Shell コードエディタを使用してこのクイズ アプリケーションのコードを確認します。
エディタの左側にあるファイル ブラウザ パネルを使用して、/training-data-analyst/courses/developingapps/python/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 バケットを作成します。
バケットを作成するには gsutil mb コマンドを使用します。バケットの名前として gs://BUCKET_NAME を渡します。
接頭辞 $DEVSHELL_PROJECT_ID に -media を付けたバケット名を使用します。
次のコマンドを実行して、Cloud Storage バケット名を GCLOUD_BUCKET
という名前の環境変数としてエクスポートします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このセクションでは、アップロードされたファイルを Cloud Storage に保存するためのコードを記述します。
Cloud Storage の API ドキュメントについて詳しくは、API とリファレンスをご覧ください。
...quiz/gcp/storage.py
ファイルの先頭に移動します。GCLOUD_BUCKET
環境変数からバケット名を取得します。google.client
パッケージから 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
を保存します。...gcp/storage.py
ファイルと ...webapp/questions.py
ファイルを保存してから、Cloud Shell コマンドに戻ります。Google のストレージから画像ファイルをローカルマシンにダウンロードします。
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 | Container 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] をクリックし、各質問に答えます。
先ほど追加した質問まで進むと、クライアント側ウェブ アプリケーションに画像が表示されます。
ラボ「アプリ開発: Cloud Storage への画像ファイルと動画ファイルの保存 - Python」はこれで終了です。Cloud Storage を使ってアプリケーション データの保存と取り出しを行いました。
画像や動画で他にどのようなことができるか確認します。
Google Cloud 上の Python をご確認ください。
マニュアルの最終更新日: 2025 年 1 月 24 日
ラボの最終テスト日: 2024 年 1 月 24 日
Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください