Python×Cloud Run: サーバーレスで自動化を劇的効率化
PythonスクリプトをCloud Runでサーバーレスに実行し、タスク自動化を劇的に効率化する方法を解説します。環境構築、デプロイ、スケジュール実行までを網羅し、インフラ管理から解放され、開発に集中できる環境を構築します。
Cloud Runとは
Cloud Runは、Google Cloudが提供するサーバーレスのコンテナ実行プラットフォームです。コンテナイメージをデプロイするだけで、インフラの管理を気にせずにアプリケーションを実行できます。自動スケーリングや従量課金制により、コスト効率の高い運用が可能です。
PythonスクリプトをCloud Runで実行するメリット
- インフラ管理からの解放: サーバーの構築やメンテナンスが不要になります。
- 自動スケーリング: トラフィックに応じて自動的にスケールします。
- 従量課金制: 実際に使用したリソースに対してのみ課金されます。
- 簡単なデプロイ: Dockerコンテナイメージをデプロイするだけで実行できます。
環境構築
必要なツール
- Python 3.6以上
- Docker
- Google Cloud SDK (gcloud)
Google Cloud SDKのインストールと設定
Google Cloud SDKをインストールし、初期設定を行います。
gcloud init
gcloud config set project YOUR_PROJECT_ID
Dockerイメージの作成
PythonスクリプトをDockerコンテナイメージとしてパッケージングします。
Dockerfileの作成
Dockerfileを作成し、必要な依存関係をインストールします。
FROM python:3.9-slim-buster
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "your_script.py"]
requirements.txtの作成
必要なPythonパッケージを記述したrequirements.txt
ファイルを作成します。
requests
beautifulsoup4
Dockerイメージのビルドとプッシュ
Dockerイメージをビルドし、Google Container Registryにプッシュします。
docker build -t gcr.io/YOUR_PROJECT_ID/your-image:latest .
docker push gcr.io/YOUR_PROJECT_ID/your-image:latest
Cloud Runへのデプロイ
Cloud RunにDockerイメージをデプロイします。
gcloud run deploy your-service \
--image gcr.io/YOUR_PROJECT_ID/your-image:latest \
--platform managed \
--region YOUR_REGION \
--allow-unauthenticated
スケジュール実行
Cloud SchedulerとCloud Pub/Subを使用して、定期的にPythonスクリプトを実行します。
Cloud Pub/Subトピックの作成
gcloud pubsub topics create your-topic
Cloud Schedulerジョブの作成
Cloud Schedulerジョブを作成し、Cloud Pub/Subトピックにメッセージを送信します。
gcloud scheduler jobs create pubsub your-scheduled-job \
--schedule "0 0 * * *" \
--topic your-topic \
--message-body "run"
Cloud Runトリガーの設定
Cloud Pub/Subからのメッセージをトリガーとして、Cloud Runサービスを実行するように設定します。
(Cloud Runの設定はGUI上で行うのが簡単です。)
まとめ
PythonスクリプトをCloud Runでサーバーレスに実行することで、インフラ管理から解放され、タスク自動化を劇的に効率化できます。ぜひ試してみてください。
コメント