現在の見出し:5.3節:GitHubで本番環境へデプロイする方法とエラー対処法
見出し一覧
- 5.3節:GitHubで本番環境へデプロイする方法とエラー対処法
- - Azure Functionにデプロイする種類と違い
- - ローカルのデータをGitHubにプッシュするまでの手順
- - GitHubで新規リポジトリを作る
- - GitでGitHubにプッシュする
- - Azure PortalでWebJobsStorageを設定する
- - AzureとGitHubを連携させる
- - デプロイ時にエラーが生じたときの対処法
【PR】『Python』を学べる企業・個人向けのプログラミングコース
Azure Functionにデプロイする種類と違い
クラウドクラウドはインターネット上にあるITリソースを、必要な時に必要なだけ利用できる仕組みです。上で動くサーバーサーバーはインターネットやネットワーク上で、データやプログラムを提供するために使用されるコンピューターです。レスな関数関数は一定の処理をまとめたプログラムの塊です。実行サービス「Azure Functions」へプロジェクトプロジェクトは特定の目的や目標を達成するために行われる一連の開発作業です。フォルダをデプロイする方法には、「ZIPデプロイ」と「GitHub Actions」の2種類あります。
各デプロイ方法の特徴は以下の通りです。
比較項目 | ZIPデプロイ(Storage経由) | GitHub Actions などのCI/CD連携 |
---|---|---|
初期構築の手軽さ | ◎:ローカルでZIPを作ってすぐデプロイできる | △:YAML作成やパーミッション設定が必要 |
本番環境の再現性 | △:履歴や変更ログが手動管理 | ◎:コミットコミットはバージョン管理システムで用いられる用語です。履歴+CIログで完全再現可能 |
自動化・再現性 | △:毎回ZIP作成→手動アップロード | ◎:Pushだけで自動デプロイ可能 |
権限管理・監査性 | △:誰が何をしたか追いづらい | ◎:GitHubリポジトリ+CIログで可視化される |
ロールバック(戻す) | ✕:明確な履歴管理がないと不可 | ◎:GitGitはソースコードのバージョン管理を容易にする分散型のバージョン管理システムです。の履歴で自由に切り戻せる |
チーム開発との相性 | △:衝突・手動対応が必要 | ◎:Pull Requestベースで安全に進行可 |
長期保守性 | ✕:手順が属人化しやすい | ◎:構成・デプロイがコード化されて属人化しにくい |
ZIPデプロイはプロジェクトフォルダをローカルでZip化し、デプロイするだけでなので作業がスムーズです。
一方、GitHub Actionsを使ったデプロイは、Gitの設定やGitHubとの連携など最初のにひと手間かかります。しかし、一度デプロイするとGitHub上でコードを編集・反映させられるのでコード編集から反映までの流れがスムーズになるのが魅力です。
そこで今回は、GitHub Actionsでデプロイする方法で作業を進めていきます。
GitHubにアクセスして、新しいリポジトリを作成します(例: rag-function-app)。
ローカルのデータをGitHubにプッシュするまでの手順
GitHubで新規リポジトリを作る
まずは専用のGitHubリポジトリを作成します。自身のGitHubページを開き、右上の下矢印をクリック。表示内容から「New repository」をクリックします。
リポジトリの設定画面が表示されるので、任意のリポジトリ名を入力して作成してください。
GitでGitHubにプッシュする
先ほど作成したGitHubリポジトリへローカルのデータをプッシュ(反映させること)します。
git init # Gitのリポジトリを初期化する(.gitフォルダを作成)
git remote add origin https://github.com/ユーザー名/rag-function-app.git # リモートリポジトリを origin という名前で登録
git add . # 全ファイルをステージに追加(コミット準備)
git commit -m "initial commit" # 最初のコミット(コメント付きで保存)
git push -u origin main # mainブランチを初回push&リモートと接続設定
以下のように表示されたら、無事GitHubへプッシュされています。
Enumerating objects: 9, done.
Counting objects: 100% (9/9), done.
Delta compression using up to 8 threads
Compressing objects: 100% (9/9), done.
Writing objects: 100% (9/9), 3.06 KiB | 1.53 MiB/s, done.
Total 9 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
To https://github.com/d2805b/rag-function-app.git
* [new branch] master -> master
branch 'master' set up to track 'origin/master'.