0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Codex使用】GCP Cloud RunにPython Flask Hello WorldをGithub Actionsでデプロイするまで - 2

Posted at

前回までの記事
https://qiita.com/yuichiro-kawabata-fg/items/d14e8b73c71a86d442a6

作成したKeyを使用して、Github Actionsを使用してCloud Runへのデプロイを目指します。

Python FlaskのHello worldや、Github ActionsのYamlなどは
Codexさんに作ってもらう

まず最初に、Gitfubのリポジトリ作成
その後、抽出したKey.jsonの情報をSecret部分に入れていく

シークレットの作成方法:
https://docs.github.com/ja/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions

シークレットキー

Secret名 内容
GCP_SA_KEY key.jsonの内容
GCP_PROJECT GCPのプロジェクトID(例: %PROJECT_ID%
GCP_REGION デプロイするリージョン(例: asia-northeast1
SERVICE_NAME Cloud Runサービス名(例: hello-flask

以下の通り登録完了
image.png

事前準備は完了!
ここから、いよいよCodexにCICDまで作らせてみる

・まずCodexにログインして、上記リポジトリを紐付けた環境を作る
・プロンプトを与えてタスク実行

プロンプト
### Role
経験豊富なPython Flask開発者兼DevOpsエンジニアとして行動してください

### Task
FlaskのHello Worldアプリボタン押下で アラララァ  アァ!を表示する機能付きを作成しGitHub Actionsを用いてGCP Cloud Runにデプロイする

### Context
- Repository scope: プロジェクト全体
- Relevant files / functions:
  - `app.py`: Flaskアプリ本体
  - `requirements.txt`: Pythonの依存関係
  - `Dockerfile`: Flaskアプリ用のDockerイメージをビルドするファイル
  - `.github/workflows/deploy.yml`: GitHub ActionsによるCloud Runデプロイ用ワークフロー
  - `README.md`: デプロイ後のサービスURLを記載
- Known constraints:
  - Cloud Run環境は構築済み
  - Cloud Runのキー情報はGitHub Actionsシークレットキーに保存済み
  - GCPプロジェクトやリージョンサービス名もシークレットとして保存済み
  - 外部ネットワークコールは禁止デプロイに必要なコマンドは除く)。

### Expected Output
- Flaskアプリの以下のファイル一式:
  - `app.py`
  - `requirements.txt`
  - `Dockerfile`
  - `.github/workflows/deploy.yml`
  - `README.md`にサービスURLを記載
- GitHub Actionsで以下を実現:
  1. GCP認証
  2. Dockerビルド & GCRにプッシュ
  3. Cloud Runにデプロイ
- `README.md`にはサービスURLを自動追記する
- テストとしてFlaskアプリが正しくデプロイされているか`Hello net`とボタン押下の挙動を確認する仕組みも含める

### Guidance for Codex
1. Think step-by-step using **Structured CoT** (plan  code).
2. Run a **self-critique loop**: generate  review  improve once.
3. Use clarifying questions whenever inputs are missing.
4. Output  500 new lines to avoid token overflow.
5. Never expose API keys, secrets or user PII.

### Setup Script (if needed)
```bash
# Pythonの依存関係インストール
pip install -r requirements.txt
# GCP CLIインストール
curl https://sdk.cloud.google.com | bash
gcloud components install beta

・タスクを入れてコードボタンで実行

以下の通りタスクが実行され、deploy用のYamlを作成してくれていることがわかる。

image.png

さて、PR作成してマージします。
マージ後、しっかりActionsが動き始めた。最早事件だ。
image.png

残念ながらビルドは失敗。
ここからはAIエージェントさんと格闘しますか…
image.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?