どうも、月見(@Suzuka14144156)です。
今回の記事では、Pythonを無料サーバーで定期実行する方法を解説したいと思います。
よって、この記事では、このような悩みをお持ちの方におすすめです。
![悩んでいる人](https://tsukimitech.com/wp-content/themes/cocoon-master/images/ojisan.png)
- Pythonを無料で定期実行する方法が分からない
- Herokuの代わりになるサーバを探している
- Google Cloud Functions で、Pythonを定期実行する方法がオススメ!
- 簡易的なDashbord系のサイトを立ち上げるには、Streamlit Shareを活用するのがオススメ(Link)
Pythonを定期実行できる無料サーバー一覧
- Google Cloud Functionsが無料枠の観点からオススメです
プラットフォーム | Google Cloud Functions | AWS Lambda | Heroku |
---|---|---|---|
無料枠 | 200万回/月の呼び出し 400,000 GB 秒、200,000 GHz 秒のコンピューティング時間と、1 か月あたり 5 GB のインターネット下りトラフィック | 100万回/月の呼び出し 40万GB秒のコンピューティング時間 | 無料枠終了(22年11月) |
対応言語 | Node.js、Python、Ruby Go、PHP、Java | Java、Go、PowerShell Node.js、C#、Python、Ruby | Ruby、Java、PHP、Python、Node、Go、Scala、Clojure |
リンク | 参考:Cloud Functions の料金 | 参考:AWS Lambda 料金 | 参考:「Heroku」の無償プランが廃止へ |
Google Cloud Functionsとは?
スケーラブルな従量課金制 Functions as a Service(FaaS)プロダクトにより、サーバーやコンテナによる管理なしでクラウド上でコードを実行します。
なので、Pythonなどのコードをクラウド上で、実行できるということですね。
Google Cloud Functionsの登録方法
Google Cloud Functionsの登録は、以下から可能です。
- ニーズを入力
- 利用規約に✓
- 続行をクリック
![](https://tsukimitech.com/wp-content/uploads/2022/12/image.png)
- クレジットカードの情報を登録
![](https://tsukimitech.com/wp-content/uploads/2022/12/image-1-925x1024.png)
- 検討理由の入力
![](https://tsukimitech.com/wp-content/uploads/2022/12/image-2.png)
- チュートリアルは、スキップ
![](https://tsukimitech.com/wp-content/uploads/2022/12/image-3-1024x552.png)
Google Cloud Functionsの使用方法
- 今回は、Pythonスクリプトを定期実行する方法を解説します。
大まかなな流れは、以下です。
- 1Pythonスクリプトを登録
- 2Cloud Schedulerで定期実行を登録
Pythonスクリプトを登録して、それを指定した時間間隔で定期実行するというものです。
Pythonスクリプトを登録
以下にアクセス。
プロジェクトの作成
- 画面上の、「My First・・・」をクリック
![](https://tsukimitech.com/wp-content/uploads/2022/12/image-4.png)
- 画面上の、「新しいプロジェクト」をクリック
- 適当なプロジェクト名にして作成
![](https://tsukimitech.com/wp-content/uploads/2022/12/image-6.png)
- 作成したプロジェクトを選択
![](https://tsukimitech.com/wp-content/uploads/2022/12/image-7.png)
- 以下のアイコンをクリック
![](https://tsukimitech.com/wp-content/uploads/2022/12/image-9.png)
- 下にスクロールして、「その他プロダクト」をクリック
![](https://tsukimitech.com/wp-content/uploads/2022/12/image-10-429x1024.png)
- 下にスクロールして、「Cloud Funcrtion」をクリック
![](https://tsukimitech.com/wp-content/uploads/2022/12/image-11.png)
- 画面上の「関数を作成」をクリック
![](https://tsukimitech.com/wp-content/uploads/2022/12/image-12.png)
- APIの有効化ですべて有効化します
![](https://tsukimitech.com/wp-content/uploads/2022/12/image-13.png)
- トリガーのタイプはhttpではなく「Cloud Pub/Cub」を指定
- トピックを新規作成(適当名前でOK)
![](https://tsukimitech.com/wp-content/uploads/2022/12/image-15.png)
- 「トピックを作成する」をクリック
![](https://tsukimitech.com/wp-content/uploads/2022/12/image-16.png)
- 今回は、以下のような感じで作成します
![](https://tsukimitech.com/wp-content/uploads/2022/12/image-17.png)
- 画面したの「次へ」をクリック
![](https://tsukimitech.com/wp-content/uploads/2022/12/image-18.png)
- ランタイムから「Python3.8」を選択
![](https://tsukimitech.com/wp-content/uploads/2022/12/image-19.png)
import base64
def hello_pubsub(event, context):
"""Triggered from a message on a Cloud Pub/Sub topic.
Args:
event (dict): Event payload.
context (google.cloud.functions.Context): Metadata for the event.
"""
pubsub_message = base64.b64decode(event['data']).decode('utf-8')
print(pubsub_message)
このコードがデフォルトで記述されます。
- 画面左下から「デプロイ」を選択
![](https://tsukimitech.com/wp-content/uploads/2022/12/image-21.png)
Cloud Schedulerで定期実行を登録
- プロジェクトのホーム画面
![](https://tsukimitech.com/wp-content/uploads/2022/12/image-22.png)
- 画面左上のメニューから「Cloud Scheduler」をクリック
![](https://tsukimitech.com/wp-content/uploads/2022/12/image-23-421x1024.png)
- 「ジョブのスケジュール設定」をクリック
![](https://tsukimitech.com/wp-content/uploads/2022/12/image-24.png)
- 名前、リージョン、説明、頻度、タイムゾーンを設定する
- 「続行」をクリック
![](https://tsukimitech.com/wp-content/uploads/2022/12/image-25.png)
- ターゲットタイプ「Pub/Sub」
- トピックは、先ほど作成したトピックを指定
- メッセージ本文を入力
- 「続行」をクリック
![](https://tsukimitech.com/wp-content/uploads/2022/12/image-26.png)
- 「作成」をクリック
![](https://tsukimitech.com/wp-content/uploads/2022/12/image-27.png)
- 1分後、「最後の実行ステータス」が成功となっていればOK
![](https://tsukimitech.com/wp-content/uploads/2022/12/image-28.png)
Google Cloud Functionsの料金アラート設定
Cloud Billing の予算を作成して、Google Cloud のすべての料金を 1 か所でモニタリングすることで、想定外の請求が発生する事態を回避します。
参考にした情報:本
筆者が、本記事を作成するにあたり参考にした、Pythonの本は以下です。
Python 1年生 体験してわかる!会話でまなべる!
Pythonの基本的な記述方法は、以下の本がオススメです。
図解即戦力 Google Cloudのしくみと技術がこれ1冊でしっかりわかる教科書
Google Cloudのしくみは以下の本を参考にしています。
参考にした情報:Udemy
現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
シリコンバレーでバリバリコーディングしている酒井 潤 (Jun Sakai)さんの講義で、非常に参考になりました。
![](https://tsukimitech.com/wp-content/uploads/2022/12/image-29-1024x326.png)
![](https://tsukimitech.com/wp-content/uploads/cocoon-resources/blog-card-cache/4e8b13f00633ee105983c09a0e577207.jpg)
Google Cloud(GCP)の基礎 – 図解と実践でインフラの基礎を固める
Google Cloud(GCP)の基礎は、この講義で包括されているので、オススメです。
![](https://tsukimitech.com/wp-content/uploads/cocoon-resources/blog-card-cache/befad0e2dac0e88b980216792053394f.jpg)
より簡単な方法(Streamlitを使う方法)
簡易的なDashbordを作成するには、Streamlitというライブラリを活用するのがオススメです。
作成した画像を以下にはっておきます。
![](https://tsukimitech.com/wp-content/uploads/2023/05/image-29-1024x696.png)
サイトの詳細は、以下に作成したサイトを公開しているのでみてみてください。
参考:作成したサイト
本サイトのに関しては、以下の記事を参考にしてみてください。
コメント