Google Cloud Platform GAE.ソフトウェア開発入門




【2021最新 -Google Cloud Platformおすすめ本 – 独学での勉強にも!】も確認する

はじめに

本書は、Google App Engine (GAE)でアプリケーションを「正しく」開発したい方のための入門書です。 GAEは、Google Cloud Platform (GCP)が提供する、Webアプリケーション開発のためのプラットフォームです。GCPの中でも最も長い歴史があり、GCPを代表するサービスの1つです。スケーラビリティの高いWebアプリケーションを手軽に構築できる点が多くのファンを引きつけており、人気の高い多数のWebサービ スの基盤として利用されています。何かしらのWebアプリケーションを開発した経験があれば、GAE上でのアプリ開発はそれほど難しくありません。アプリの開発から公開まで、特別な手間はまったくかかりません。しかしながら、誰もがGAEを活用したアプリ開発を「正しく」行えるというわけではありません。そのためには、GCP全般に対する基礎知識が重要になります。

GCPには、数あるクラウドサービスの中でも、Googleの先端技術を取り入れたサービスが利用できるという特徴があります。優れたGAEアプリケーションを作るには、関連するGCPのサービスを理解して、最大限に活用することが求められます。本書では、ただ単にWebアプリケーションを作るのではなく、GAE上で提供するWebアプリケーションを「正しく開発する」ということにフォーカスを当てています。そのため、GAEだけではなく、開発に必要なGCPのサービスについても詳しく説明しています。「GAEとは何か」「GCPとは何か」 「Googleが目指すクラウドサービスは何か」ということを知ることが大切です。

筆者は、GAEが登場した頃からのヘビーユーザーで、今も変わらず使い続けています。そして、GAEがどのように進化してきたのかを見てきました。GAE単体のサービスから始まり、GCPのサービスとして統合された後にGAE Flexが登場し、さらには、最新バージョンのGAE 2ndへと進化しました。今やGAEは、Webアプリ ケーション開発の最高のソリューションになったと感じています。
「GAEにかかわって10年以上の経験から得たノウハウをわかりやすく伝えたい」「より多くの人にGAEの素晴らしさを感じてもらいたい」、そんな想いの下に本書を執筆しました。本書を手にしたみなさんがGAEア プリケーションを「正しく」開発できる、そのための手助けになれば幸いです。
2020年春
小林明大

謝辞
本書の執筆にあたり、たくさんの方々の協力を得て、原稿を書き上げることができました。多忙の中、監修を引き受けていただいた中井悦司さん、執筆初期の頃からレビュー、アプリケーションのデバッグに多大な協力していただいいた白川舞さん、クライアント画面の作成を全面的に手伝っていただいた石川孝之さん、アプリケーション開発の的確なアドバイスと画像提供をしてくれた宮山龍太郎さん、五十嵐毅さん、本当にありがとうございました。執筆に至らないところだらけの筆者を、優しく、厳しく支えてくれた技術評論社の編集部にお礼を申し上げます。
最後に執筆に専念している中、いつも暖かく応援をしてくれた妻に感謝しています。

推薦の言葉(監修:中井悦司)

「もしかしたらこれは、マイクロサービスを実装するための最適な入門書ではないだろうか?」
監修者として、本書の原稿を一読した際の私の感想です。本書で扱うサンプルアプリケーションは、1つのプロセスで実行される簡単な掲示板システムですが、機能ごとにAPIが分かれており、バックエンドには、GCSやCloud Datastoreといったスケーラビリティの高いGCPのサービスが活用されています。さらには、Cloud Tasksを用いた非同期タスクの実装方法までもが解説されています。マイクロサービスアーキテクチャーを正しく実装するうえでは、クラウドが提供するスケーラブルな基盤を活用することが必須となりますが、そのための基礎知識が凝縮された内容です。
GAEは、当初より、マイクロサービスの実装を意識したサービスでしたが、最新のGAE 2ndで一つの完成形を実現したようにも思われます。GAEの入門書であると同時に、マイクロサービスの実践入門として、クラウド時代のソフトウェアエンジニアを目指すすべての方々に本書をお勧めしたいと思います。

対象読者
本書の対象読者は、プログラミング言語のPythonを使ってGoogle App Engine (GAE) アプリを作成したい人です。GAEの入門書ではありますが、プログラミング言語の入門書ではありません。本書の理解を深めるためには、次の技術を理解していることが望ましいです。

●Pythonの基本構文
●基本的なLinuxコマンド
●HTML、CSS、JavaScriptの基本知識
●WebAPIの基本知識やJSONフォーマット

本書の読み方

本書では、各章ごとに用意した機能単位の「Exampleアプリケーション(以降、アプリ)」と、各章ごとに機能を追加していく 「GuestBookアプリ」を作成します。
Examplet GuestBookアプリもそれぞれ個別のGCPプロジェクトを使用しますので、間違えないようにしてください。アプリ作成は、先に練習として機能単位のExampleアプリを作成し、次に実習としてGuestBook アプリに機能を追加します。Exampleアプリを先に作成することでピンポイントで使い方を学び、アプリを拡張することで理解を深めることができます。
アプリがどのように変化していくのかは 「第5章 Webアプリケーション概要」で細かく説明します。最初は、2つのアプリと2つのGCPプロジェクトを使用するということだけ頭に入れておいてください。
Exampleアプリは各章ごとに独立した機能単位の練習用の小さなアプリです。GuestBookアプリは第4章から第10章までを通して完成する1つのアプリです。各章ごとに機能を追加していきます。各章で作成した、「Exampleアプリ」と「GuestBookアプリ」はGitHubで完成版を提供しています。各章で作成したアプリケーションの詳細について、GitHubのreadme.mdを参照してください。

開発環境はブラウザだけ
学習に必要な環境は次のとおりで、Googleアカウントとパソコンだけです。

■ 学習に必要なもの
●Googleアカウント
●Chromeがインストール済のPC(OS指定なし)

本書ではWebブラウザ(Chromeを推奨)上で実行するクラウドシェルというLinuxターミナルに似たインターフェースを使って開発します。そのためパソコンのOSは指定ありません。WindowsでもMacでもLinuxのUbuntuでもChromeBookでも対応できます。またコードエディターと呼ばれるブラウザベースの開発ツールを使うので、JavaやPythonなどのプログラミング言語のインストールやPyCharm、Eclipseなどのような開発ツールのセットアップも必要ありません。

GitHub
本書で解説している「Exampleアプリーション」と「GuestBookアプリケーション」の完成版をGitHubで公開しています。下記のURLを参照し、当該ファイルを適宜ダウンロードしてください。
https://github.com/hidecheck/gae_basics_webapp

参考文献
・『プログラマのためのGoogle Cloud Platform入門 サービスの全体像からクラウドネイティブアプリケーション構築まで』阿佐志保(著)、中井悦司(著/監修)、翔泳社、2017年
・Flask Web Development : Developing Web Applications with Python Miguel Grinberg
(著)、O’Reilly Media、2018年
・GAE公式ドキュメント (https://cloud.google.com/appengine/docs/?hl=j)
・GCP公式ドキュメント (https://cloud.google.com/docs/overview/?hl=ja)
・GCP誕生から10年、その進化の歴史を振り返(https://ascii.jp/elem/000/001/757/1757103/)
・Google Cloud Next 2019の重要発表トップ6まとめ(https://jp.techcrunch.com/2019/04/11/2019-0410-the-6-most-important-announcements-from-google-cloud-next-2019))
・GCPのストレージサービスについてまとめてみた。(https://www.apps-gcp.com/gcp-storage-service/)

ランキングも確認する
出典:出版社HP

目次

はじめに

第1章 Google Cloud Platform
1.1 Google Cloud Platform とは
1.1.1 Googleのネットワークインフラストクラチャー
1.1.2 リージョンとゾーン
1.2 GCPの歴史
1.2.1 GCP年表
1.2.2 2008年GCPの幕開け――Google App Engineの登場
1.2.3 2010年 Google Cloud Storageの登場
1.2.4 2011年 BigQuery の衝撃
1.2.5 2012年 Google Compute Engineの登場
1.2.6 2013年FGoogle Cloud Platformi に統一
1.2.7 2014年GKEのリリース
1.2.8 2014年の企業買収とその成果
1.2.9 2015年 Cloud Datalabのリリース
1.2.10 2016年 Cloud Machine Learning Engineの登場
1.2.11 2017年~2018年 進化するGCPのAI
1.2.12 2019年 AI Platformの登場
1.2.13 2018年~2019年 マルチクラウドコンテナとサーバーレスコンテナ
1.3 なぜGCPなのか

第2章 Google App Engine
2.1 Google App Engineの種類
2.2 Google App Engineの特徴
2.2.1 2008年、第1世代のGAEの登場
2.2.2 2016年、GAEフレキシブル環境の登場
2.2.2.1 コンテナランタイムが異なる
2.2.2.2 スタンダード環境に比べてスピンアップが遅い
2.2.3 2018年第2世代のGAEの登場
2.2.3.1 GAE 2ndで対応するプログラミング言語とライブラリ
2.2.3.2 ローカルファイルシステムにアクセス
2.2.3.3 外部ネットワークへのアクセス
2.2.3.4 クラウドクライアントライブラリ
2.2.4 閉じていたGAEの環境の変化
2.3 GAEの目指すところ

第3章 開発環境の構築
3.1 GAEアプリケーションの開発環境を準備する
3.1.1 Google App Engineアプリケーションの開発環境
3.2 GCPプロジェクトとは
3.2.1 Google Cloud Identity & Access Management (IAM)
3.2.2 プロジェクトとアプリケーションは1対1
3.3 GCPプロジェクトを作成する
3.3.1 GuestBookアプリケーション用のGCPプロジェクトを作成する
3.4 Google Cloud Shellとは
3.4.1 クラウドシェルの使い方
3.5 コードエディターとは
3.5.1 コードエディターを使う
3.5.2 Python3の環境を用意する
3.5.2.1 仮想環境を用意する
column 「なぜ仮想環境を使うのか」
3.5.3 2回目以降の初期設定
3.5.3.1 クラウドシェルの注意事項
column 「マイクロサービスの場合」

第4章 GAEアプリケーション作成
4.1 最初のGAEアプリケーションを作成する
4.1.1 アプリの作成練習
4.1.1.1 作業フォルダと仮想環境の確認
4.1.1.2 [手順1] app.yamlの作成
4.1.1.3 [手順2] requirements.txtの作成
4.1.1.4 [手順3] 依存関係のインストール
4.1.1.5 [手順4] main.pyの作成
4.1.2 アプリケーションを実行する
4.1.3 動作確認
4.2 アプリケーションのデプロイ
4.2.1 デプロイの方法
4.2.1.1 [手順1] デプロイ先のGCPプロジェクトの確認
4.2.1.2 [手順2] デプロイする
4.2.2 動作確認
4.3 デプロイバージョンを管理する
4.3.1 新しいバージョンをデプロイする
4.3.2 トラフィック量を調整する
4.4 [実習] アプリケーションの作成
4.4.1 アプリケーション作成の手順
4.4.1.1 作業フォルダと仮想環境の確認
4.4.1.2 [手順1] app.yamlの作成
4.4.1.3 [手順2] requirements.txtの作成
4.4.1.4 [手順3] 依存関係のインストール
4.4.1.5 [手順4] main.pyの作成
4.4.2 動作確認
4.4.3 解答
4.5 アプリ作成のまとめ
4.6 課金上限を設定する
4.6.1 設定方法

第5章 Webアプリケーション概要
5.1 モダンなWebアプリケーション
column 「サーバーサイドレンダリングとクライアントサイドレンダリング 」
5.2 Web APIとは
5.2.1 RESTful とは
5.3 本書で作成するWebアプリについて
5.3.1本書で作成する Web API

第6章 FlaskによるHTTPリクエストの処理
6.1 Flaskフレームワーク
6.1.1 WSGI規格
6.2 テンプレートの利用
6.2.1 Jinja2を使う練習
6.2.1.1 開発環境の確認
6.2.1.2 [手順1] インポートモジュールの確認
6.2.1.3 [手順2] テンプレートファイルの作成
6.2.1.4 [手順3] レンダリング
6.2.2動作確認
6.3 [実習] Jinja2を使う
6.3.1 実習の手順
6.3.1.1 開発環境の確認
6.3.1.2 [手順1] インポートモジュールの確認
6.3.1.3 [手順2] テンプレートファイルの作成
6.3.1.4 [手順3] レンダリング
6.3.2動作確認
6.4 エラーページのカスタマイズ
6.4.1 エラーハンドリングの練習
6.4.1.1 開発環境の確認
6.4.1.2 [手順1] エラーハンドリング用のビュー関数を作成する
6.4.1.3 [手順2] WSGIアプリケーションにエラー用ビュー関数を登録する
6.4.1.4 main.py
6.4.1.5 動作確認
6.5 [実習] エラーハンドリング
6.5.1 実習の手順
6.5.1.1 開発環境の確認
6.5.1.2 [手順1] インポートモジュールの確認
6.5.1.3 [手順2] エラーハンドリングをするためのビュー関数を作成する
6.5.1.4 [手順3] WSGIアプリケーションにエラー処理用の関数を登録する
6.5.1.5 main.py
6.5.2動作確認
6.6 フォーム処理
6.6.1 WTFormsの練習
6.6.1.1 開発環境の確認
6.6.1.2 [準備] ライブラリをインストールする
6.6.1.3 [手順1] インポートモジュールの確認
6.6.1.4 [手順2] フォームを定義
6.6.1.5 [手順3] フォームのレンダリング
6.6.1.6 [手順] POSTメソッドの許可
6.6.1.7 [手順5] フォームデータのバリデート
6.6.1.8 [手順6] バリデートに成功したデータの利用
6.6.1.9 [手順1] バリデートに失敗した際のエラーのレンダリング
6.6.2動作確認
6.6.3 Exampleプロジェクトのクリーンアップ
6.7 Web APIの追加
6.8 GETメソッド[練習1] 6.8.1 list APID PEH Elli
6.8.1.1 開発環境の確認
6.8.1.2 [手順1] インポートモジュールの確認
6.8.1.3 [手順2] リクエストの処理の追加
6.8.2動作確認
6.9 [実習] GETメソッド1
6.9.1 実習の手順
6.9.1.1 開発環境の確認
6.9.1.2 [手順1] インポートモジュールの確認
6.9.1.3 [手順2] リクエストの処理の追加
6.9.1.4 [手順3] index.htmlの作成
6.9.2 動作確認
6.9.2.1 クラウドシェルで確認
6.10 POSTメソッドの練習
6.10.1 insert APIの作成手順
6.10.1.1 開発環境の確認
6.10.1.2 [手順1] インポートモジュールの確認
6.10.1.3 [手順2]リクエストの処理の追加
6.10.2 動作確認
6.11 [実習] POSTメソッド
6.11.1 実習の手順」
6.11.1.1 開発環境の確認
6.11.1.2 [手順1]リクエストの処理の追加
6.11.2 動作確認
6.11.2.1 クラウドシェルで確認
6.12 GETメソッド[練習2] 6.12.1 get APIの作成手順
6.12.1.1 開発環境の確認
6.12.1.2 [手順] リクエストの処理の追加
6.12.2 動作確認
6.13 [実習] GETメソッド2
6.13.1 実習の手順
6.13.1.1 開発環境の確認
6.13.1.2 [手順1] インポートモジュールの確認
6.13.1.3 [手順2] リクエストの処理の追加
6.13.2 動作確認
6.13.2.1 クラウドシェルで確認

第7章 ログ
7.1 アプリケーションログ
7.1.1 ログを出力する3つの方法
7.2 Python logging モジュールを使ったログ出力
7.2.1 Python logging モジュールを使ったログ出力の練習
7.2.1.1 開発環境の確認
7.2.1.2 [手順1] インポートモジュールの確認
7.2.1.3 [手順2] ログの出力
7.2.2 ローカル環境で確認
7.2.2.1 ログ出力の練習(続き)出力レベルの変更
7.2.2.2 Exceptionのログ出力
7.2.2.3 main.pyの修正個所
7.2.3 デプロイして確認
7.3 [実習]ログ出力
7.3.1 実習の手順
7.3.1.1 開発環境の確認
7.3.1.2 [手順1] インポートモジュールの確認
7.3.1.3 [手順2] ログの出力
7.3.2動作確認
7.3.3解答
7.4 Logging Client Libraries を使ったログ出力
7.4.1 Logging Client Libraries を使ったログ出力の方法の練習
7.4.1.1 開発環境の確認
7.4.2 [準備] Logging Client Librariesのインストール
7.4.2.1 [手順1] インポートモジュールの確認
7.4.2.2 [手順2] ログの出力
7.4.2.3 [手順3] 404エラーハンドラの修正
7.4.2.4 main.py
7.4.3動作確認
7.5 Cloud Logging Handlerを使ったログの出力
7.5.1Cloud Logging Handler を使ったログの出力の練習
7.5.1.1 [手順1] インポートモジュールの確認
7.5.1.2 [手順2] ロギングハンドラーの設定
7.5.1.3 [手順3] ログの出力
7.5.1.4 main.py
7.5.2動作確認
7.5.3 Exampleプロジェクトのクリーンアップ

ランキングも確認する
出典:出版社HP

第8章 Cloud Datastoreを使う
8.1 Cloud DatastoreとCloud Firestore
8.1.1 Cloud Firestoreとは
8.1.2Realtime Databaseとネイティブモード
8.1.3 Cloud DatastoreとDatastoreモード
8.1.4 Datastoreの特徴
8.1.4.1 NoSQL
8.1.4.2 スキーマレス
8.1.4.3 フルマネージドサービス
8.1.5 DatastoreとRDBの比較
8.1.5.1 クエリの違い
8.1.5.2 スケーラビリティの違い
8.1.6 Datastoreの構成
8.1.6.1 エンティティの構成要素
8.2 Datastoreにデータを保存する
8.2.1 Google Cloud Client Libraryのインストール
8.2.2 データの保存方法
8.2.3 データ保存の練習
8.2.3.1 開発環境の確認
8.2.3.2 [準備] ライブラリのインストール
8.2.3.3 [手順1] インポートモジュールの確認
8.2.3.4 [手順2] Datastoreに保存する
8.2.3.5 [手順3] レスポンスデータを返す
8.2.4動作確認
8.2.5[補足1] Entityオブジェクトのプロパティ設定方法
8.2.6[補足2] キーを指定してデータを保存する
8.3 [実習] データの保存
8.3.1insert APIの作成
8.3.2 実習の手順
8.3.2.1 開発環境の確認
8.3.2.2 [準備] ライブラリのインストール
8.3.2.3 [手順1] インポートモジュールの確認
8.3.2.4 [手順2] ds.pyファイルを作成する
8.3.2.5 [手順3] Datastoreに保存する
8.3.2.6 [手順4] レスポンスデータを返す
8.3.3 動作確認
8.3.3.1 クラウドシェルで確認
8.4 Datastoreからデータを取得する
8.4.1 クエリ
8.4.2データの取得方法
8.4.3データ取得の練習
8.4.3.1 開発環境の確認
8.4.3.2 [手順1] インポートモジュールの確認
8.4.3.3 [手順2] Datastoreからデータを取得する
8.4.3.4 [手順3] レスポンスデータを返す
8.4.4動作確認
8.4.5 [補足] 検索条件を指定する
8.4.5.1 プロパティを使って検索
8.5 [実習] データの取得
8.5.1 list APIの作成
8.5.2 実習の手順
8.5.2.1 開発環境の確認
8.5.2.2 [手順1] インポートモジュールの確認
8.5.2.3 [手順2] Datastoreからデータを取得する
8.5.2.4 [手順3] レスポンスデータを返す
8.5.3動作確認
8.5.3.1 クラウドシェルで確認
8.6 データを1件取得する
8.6.1 Keyを使ったデータ取得方法
8.6.2 Keyを使ったデータ取得の練習
8.6.2.1 開発環境の確認
8.6.2.2 [手順1] インポートモジュールの確認
8.6.2.3 [手順2] キーを使ってDatastoreからデータを取得する
8.6.2.4 [手順3] レスポンスデータを返す
8.6.3動作確認
8.7 [実習] Keyを使ったデータ取得
8.7.1get APIO PELE
8.7.2 実習の手順
8.7.2.1 開発環境の確認
8.7.2.2 [手順1] インポートモジュールの確認
8.7.2.3 [手順2] キーを使ってDatastoreからデータを取得する
8.7.2.4 [手順3] レスポンスデータを返す
8.7.3 動作確認
8.7.3.1 クラウドシェル で確認
8.8 Datastoreからデータを更新する
8.8.1データの更新方法
8.8.2 データ更新の練習
8.8.2.1 開発環境の確認
8.8.2.2 [手順1] インポートモジュールの確認
8.8.2.3 [手順2] データを更新する
8.8.2.4 [手順3] レスポンスを返す
8.8.3動作確認
8.9 [実習] データの更新
8.9.1 update APIO PELL
8.9.2 実習の手順
8.9.2.1 開発環境の確認
8.9.2.2 [手順1] インポートモジュールの確認
8.9.2.3 [手順2] Datastoreを更新する
8.9.2.4 [手順3] レスポンスデータを返す
8.9.3 動作確認
8.9.3.1 クラウドシェルで確認
8.10 Datastoreからデータを削除する
8.10.1 データの削除方法
8.10.2 データ削除の練習
8.10.2.1 開発環境の確認
8.10.2.2 [手順1] インポートモジュールの確認
8.10.2.3 [手順2] データを削除する
8.10.2.4 [手順3] レスポンスを返す
8.10.3 動作確認
8.11 [実習] データの削除
8.11.1 delete APIの作成
8.11.2 実習の手順
8.11.2.1 開発環境の確認
8.11.2.2 [手順1] インポートモジュールの確認
8.11.2.3 [手順2] データを削除する
8.11.2.4 [手順3] レスポンスデータを返す
8.11.3 動作確認
8.11.3.1 クラウドシェルで確認
8.12 実習をローカル環境で動かす
8.12.1 サービスアカウント
8.12.1.1 なぜローカル環境では動作しないのか
8.12.1.2 ローカル環境で動かすには
column 「デフォルトサービスアカウントの権限は強過ぎる」
column 「データストアエミュレーター」

第9章 エンティティグループ
9.1 エンティティグループとは
9.1.1 アンセスターパス
9.2 エンティティグループを作成する
9.2.1 エンティティグループの作成方法
9.2.2 エンティティグループの作成練習
9.2.2.1 開発環境の確認
9.2.2.2 [手順1] インポートモジュールの確認
9.2.2.3 [手順2] エンティティグループを作成する
9.2.2.4 [手順3] レスポンスを返す
9.2.2.5 動作確認
9.3 [実習]エンティティグループの作成
9.3.1 comment APIO PELJE
9.3.2 実習の手順
9.3.2.1 開発環境の確認
9.3.2.2 [手順1] インポートモジュールの確認
9.32.3 [手順2] エンティティグループを作成する
9.3.2.4 [手順3] レスポンスデータを返す
9.3.3 動作確認
9.3.3.1 クラウドシェルで確認
9.4 エンティティグループを取得する
9.4.1 エンティティグループの取得方法
9.4.2 エンティティグループの取得練習
9.4.2.1 開発環境の確認
9.4.2.2 [手順1] インポートモジュールの確認
9.4.2.3 [手順2] エンティティグループを取得する
9.4.2.4 [手順3] レスポンスを返す
9.4.2.5 動作確認
9.5 [実習] エンティティグループを取得する
9.5.1 listCommentAPIの作成
9.5.2 実習の手順
9.5.2.1 開発環境の確認
9.5.2.2 [手順1] インポートモジュールの確認
9.5.2.3 [手順2] エンティティグループを作成する
9.5.2.4 [手順3] レスポンスデータを返す
9.5.3 動作確認
9.5.3.1 クラウドシェルで確認

第10章 Google Cloud Storageを使う
10.1 Google Cloud Storageとは
10.1.1 GCSのコンポーネント
10.1.1.1 バケット
10.1.1.2 オブジェクト
10.1.2 ストレージクラス
10.1.3 アクセス制御
10.1.3.1 GCSのIAMの役割
10.1.4 アクセス制御リスト
10.2 実践GCS
10.2.1 GCSの練習
10.2.1.1 [手順1] バケットを作成する
10.2.1.2 [手順2] ファイルをアップロードする
10.2.1.3 [手順3] バケット内のファイルを一般公開する
10.2.2 動作確認
10.3 GAEからGCSを操作する
10.3.1 GCSを操作するための準備
10.3.1.1 [準備] Google Cloudクライアントライブラリのインストール
10.4 GCSにファイルをアップロードする
10.4.1 アップロードの方法
10.4.2 GCSにファイルをアップロードする練習
10.4.2.1 開発環境の確認
10.4.2.2 [手順1] インポートモジュールの確認
10.4.2.3 [手順2] アップロード画面の作成
10.4.2.4 [手順3] GCSにアップロードする
10.4.2.5 main.py
10.4.3 動作確認
10.5 [実] GCSにファイルをアップロードする
10.5.1 [実習]の手順
10.5.1.1 開発環境の確認
10.5.1.2 [準備O」 バケットを作成する
10.5.1.3 [準備2] ライブラリをインストールする
10.5.1.4 [手順1] インポートモジュールの確認
10.5.1.5 [手順2] アップロード画面の作成
10.5.1.6 [手順3] GCSにアップロードする
10.5.2 動作確認
10.6 GCSからファイルを取得する
10.6.1 オブジェクト取得の方法
10.6.2 GCSからファイルを取得する練習
10.6.2.1 開発環境の確認
10.6.2.2 [手順1] インポートモジュールの確認
10.6.2.3 [手順2] 画像一覧画面の作成
10.6.2.4 [手順3] GCSからファイルを取得する
10.6.2.5 main.py
10.6.3 動作確認
10.7 [実習] GCSからファイルを取得する
10.7.1 実習の手順
10.7.1.1 開発環境の確認
10.7.1.2 [手順1] インポートモジュールの確認
10.7.1.3 [手順2] 画像一覧画面の確認
10.7.1.4 [手順3] GCSから画像を取得する
10.7.2 動作確認
column 「データの取得方法」

ランキングも確認する
出典:出版社HP