
始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Create a Cloud Storage bucket
/ 5
Add objects to bucket
/ 5
Create a Datastore entity
/ 5
Cloud Storage では、世界中のどこからでも、いつでもデータを保存、取得できます。データの量に制限はありません。ウェブサイト コンテンツの提供、アーカイブと障害復旧のためのデータの保存、直接ダウンロードによるユーザーへの大きなデータ オブジェクトの配布など、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 にプリインストールされており、タブ補完がサポートされています。
出力:
出力例:
出力:
出力例:
このセクションでは、Cloud Shell にアクセスして、クイズ アプリケーションを含む git リポジトリのクローンを作成し、そのクイズ アプリケーションを実行します。
このラボのサンプル ファイルが含まれているディレクトリに移動します。
アプリケーションを構成します。
このスクリプト ファイルを実行すると、以下の処理が行われます。
GCLOUD_PROJECT
をエクスポートするmvn clean install
を実行するアプリケーションの構成が完了すると、次のような出力が表示されます。
次のコマンドを実行して、アプリケーションを実行します。
[ウェブでプレビュー] アイコン > [ポート 8080 でプレビュー] をクリックして、アプリケーションをプレビューします。
Quite Interesting Quiz が開きます。
ツールバーの [Create Question] をクリックします。
シンプルなフォームが表示されます。このフォームには、質問と解答用のテキストボックスと、正解を選択するためのラジオボタンが含まれています。
このフォームには、ファイル アップロード用の新しい項目があり、画像ファイルや動画ファイルをアップロードすることができます。このラボでは画像ファイルをアップロードしますが、動画ファイルをアップロードする場合のプロセスも同じです。
このセクションでは、Cloud Shell テキスト エディタを使用して、クイズ アプリケーションのコードを確認します。
Cloud Shell で [エディタを開く] をクリックして、コードエディタを起動します。
エディタの左側にあるファイル ブラウザ パネルを使用して、/cloudstorage/start
フォルダに移動します。
.../src/main/resources/templates
フォルダにある new_question.html
ファイルを選択します。
このファイルには、[Create Question] フォームの Thyme テンプレートが含まれています。このフォームでは、enctype
に multipart/form-data
が使用されています。また、画像用と動画用の次の 2 つのフォーム コントロールがあります。
image
: ファイル アップロード用コントロールimageUrl
: 非表示項目.../src/main/java/com/google/training/appdev
フォルダを選択します。
Java のファイルパスは、このフォルダからの相対パスです。
.../web/QuestionsController.java
を選択します。
このファイルの POST ハンドラは、画像サービスのメソッドを呼び出します。
.../services/gcp/cloudstorage/ImageService.java
ファイルを選択します。
このファイルに、画像ファイルのデータを Cloud Storage に保存するためのコードを記述します。
このセクションでは、Cloud Storage バケットを作成し、それを参照する環境変数をエクスポートします。
Cloud Shell に戻り、Ctrl+C キーを押してアプリケーションを停止します。
次のコマンドを実行して、<プロジェクト ID>-media
という名前の Cloud Storage バケットを作成します。
gcloud storage buckets create
コマンドを使用し、このコマンドにバケットの名前として gs://BUCKET_NAME
を渡します。
ここでは、接頭辞 $DEVSHELL_PROJECT_ID
に -media
を付けたバケット名を指定します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
次のコマンドを実行して、GCLOUD_BUCKET
という名前の環境変数として Cloud Storage バケット名をエクスポートします。
このアプリケーションでは、構成に環境変数を利用します。環境変数を使用することで、開発チームはこれらの変数を変更するだけでアプリケーションを開発環境、テスト環境、ステージング環境、本番環境にデプロイできます。
このセクションでは、アップロードされたファイルを Cloud Storage に保存するためのコードを記述します。
// TODO
と // END TODO
の間にあるコードを更新してください。
学習効果を最大限に高めるために、コード、インライン コメント、関連する API とリファレンスのドキュメントを確認してください。
コードエディタで .../services/gcp/cloudstorage/ImageService.java
ファイルの先頭に移動します。
com.google.cloud.storage.*
パッケージのワイルドカード インポートを記述します。
StorageOptions
クラスを使用して、storage
という名前の Cloud Storage クライアントを作成します。
bucketName
という名前の String を宣言し、Spring の @Value アノテーションを使用して google.storage.bucket
というプロパティから値を取得します。
引き続き ImageService.java
を更新します。saveImage(MultipartFile file)
ハンドラで、Cloud Storage クライアントを使用して、Cloud Storage バケットにファイルをアップロードして公開します。
BlobInfo
オブジェクトを宣言し、storage クライアント オブジェクトを使用して初期化します。Builder
を使用して、BlobInfo
オブジェクトをカスタマイズします。オプションを使用してコンテンツ タイプを設定し、未認証の読み取りアクセスを許可する ACL を設定します。
新しい Cloud Storage オブジェクトの公開 URL を文字列として返します。
.../services/gcp/cloudstorage/ImageService.java
を保存して、Cloud Shell に戻ります。
次のように入力してアプリケーションを開始します。
ここから画像ファイルをローカルマシンにダウンロードします。
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 |
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
Cloud コンソールに戻り、ナビゲーション メニュー > [Cloud Storage] に移動します。
[Cloud Storage] > [バケット] ページで、適切なバケット(<プロジェクト ID>-media
という名前)をクリックします。
#UniqueNumber#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 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください