Python: クラウドで動かす
PR

Python: クラウドで動かす

プログラミング
記事内に広告が含まれています。
スポンサーリンク

数当てゲームHit and Blow。Web化したので、次はクラウドで動かしてみます。

スポンサーリンク

Google App Engineで動かす

クラウドで動かすと言うと、「サーバを借りて、OSをセットアップして、必要なミドルウェアを入れて…」と考えてしまいます。「サーバを動かしたいんじゃない。アプリを動かしたいんだ!」と叫びたくなるところですが、そこは成長を続けるクラウドの世界。サーバを管理しなくてよいサーバレスというカテゴリのサービスがあります。

Google App Engineは、サーバレスに分類されるサービスの1つです。

Pythonの環境も用意されているので、それを使ってみます。手軽に動かしたいので、スタンダード環境のPythonにします。

サポートされているPythonの最新バージョンは3.10ですね。

App Engineを触ったことがないようであれば、チュートリアルをやっておいたほうがいいでしょう。

ウェブサービスをデプロイするまでやれば、Google App Engineを設定して使えるようになります。

devcontainer.jsonの変更

Web化する時に、手を入れています。

Pythonは3.10にして、Google Cloudを操作するためのコマンドをfeaturesで追加しています。認証情報はコンテナの外に置くようにするため、"mounts"を設定しています。Windowsの場合、ここのPathを変更する必要があるかもしれません。

Flaskをインストールするのが、これ。

App Engineでは、requirements.txtに書いたパッケージをインストールしてくれます。ですので、パッケージ管理にpipを使います。postCreateCommandを使って、コンテナを作る際にパッケージをインストールしてしまいます。requirements.txtはこちら。

App Engineの設定

設定ファイルはこちら。

default値で良いものは書く必要がないので、シンプルです。
serviceは、App Engineで動かすプログラムを区別するために必要です。
runtimeは、Python 3.10を使うために記述します。
handlers以下はおまじないということでよいでしょう。

起動するためのentrypointを書いていませんが、defaultの設定が使われるように作ったからです。

デプロイしないファイルの設定。デプロイ時間を短縮するために必要です。今回は小さなプログラムですので気にならないですが、requirements.txtに書いたパッケージをインストールする際に生成される中間ファイルなど、デプロイに不要なファイルを書きます。.gitignoreのgcloudコマンド版ですね。

11行目は、.gitignore の内容を取り込む命令として扱われます。

スポンサーリンク

App Engineにデプロイ

デプロイします。チュートリアルをやっていれば、必要な設定は終わっているはずです。
gcloudコマンドの設定情報は共有するようにしてあるので、Visual Studio Codeのターミナルからデプロイしましょう。

Visual Studio Codeのターミナルからデプロイ

gcloud app deploy と入力します。しばらくすれば終わるので、Google Cloudの管理画面から見てみます。
App Engineサービスを選ぶと、デプロイしたアプリケーションがリスト表示されます。

App Engineのサービス画面

hit-and-blowをクリックすると、デプロイしたhit-and-blowで遊べます。

スポンサーリンク

App Engineを止める

App Engineにデプロイしたアプリケーションは、アクセスがあった時に動き出して、アクセスがなくなってしばらくしたら止まります。動いている時だけ課金されますが、誰でもアクセスできてしまうので、知らない間に動きっぱなしになっていることもあり得ます。

ですので、一通り遊んだら、動き出さないように止めてしまいましょう。
App Engine設定を選んで、[アプリケーションを無効にする] をクリックします。

App Engineの設定画面

残念ながら、hit-and-blowだけを止めるということはできません。デプロイしたアプリケーションすべてが止まってしまいます。注意しましょう。


Python: Hit and BlowをWeb化する

タイトルとURLをコピーしました