BEMAロゴ

エンジニアの
成長を支援する
技術メディア

Azure Functionsへの手動デプロイ:Azure CLIのZIPデプロイ(config-zip)

はじめに

こんにちは、株式会社メンバーズ 生成AI基盤チームの谷森です。

今回は前回の記事Open in new tabで作成したAzure Functionsに手動でコードデプロイする方法を紹介します。
本記事は「CI/CD前の試行」や「小さな修正の即時反映」に向け、Azure CLIのconfig-zipを使ってAzure Functions(Function App)へ“最短で安全に”手動デプロイする方法をまとめたものです。
初学者でも迷わないよう、前提準備→ZIPの正しい作り方→デプロイ→検証→失敗時の対処を順に解説します。
最後にGitHub Actionsでの自動化への橋渡しも示します。

前回作成したAzureリソース

  • Azure Functions
  • Azure API Management
  • Azure App Service Plan
  • Azure Storage Account
  • Azure Log Analytics Workspace
  • Azure Application Insights

ディレクトリ構造

前回作成したディレクトリ内にAzure Functionsコードを下記のように格納します。

terraform-rag(任意のGitHubリポジトリ名)
├── .github
│   ├── workflows
│   │   └── terraform-apply.yml(任意のGitHub Actionsコードファイル名)
├── functions(任意のAzure Functionsコードディレクトリ名)
│   ├── rag-inquiry(任意のAzure Functions名)
│   └── rag-insertdb(任意のAzure Functions名)
├── terraform(任意のTerraformコードディレクトリ名)
│   ├── .terraform.lock.hcl
│   ├── main.tf
│   ├── rg.tf
│   └── variables.tf
├── .gitignore
└── README.md

コードデプロイ

作成したAzure Functionsのプランによって可能なコードデプロイ方法が異なります。

後にコードデプロイもGitHub Actionsで自動化する予定なので今回はZIPデプロイを使用します。

※参考:GitHub Actions を使用した継続的デリバリーOpen in new tab

手順

1. リポジトリの取得

ローカル環境にGitHubリポジトリをクローンします。

2. ZIPファイルの作成

デプロイしたいコードが記載されているファイルを下記コマンドでZIP化します。

※下記コマンドでは一例としてrag-insertdbファイルをZIP化しています。

zip -r rag-insertdb.zip functions/rag-insertdb

3. config-zipコマンドでのコードデプロイ

ご自身が指定したZIPファイルが作成されたことを確認して下記コマンドでコードデプロイします。

az functionapp deployment source config-zip \\
--resource-group "<リソースグループ名>" \\
--name "<Azure Functionsリソース名>" \\
--src rag-insertdb.zip

4. コードデプロイの確認

下記コマンドを実行することで指定したAzure Function App内にデプロイされているすべての関数(Functions)のリストをテーブル形式で取得することができます。

az functionapp functions list \
--resource-group "<リソースグループ名>" \
--name "<Function App名>" -o table

コードデプロイが完了すると下記のようにAzure ポータルで確認できます。(反映されるまでには数分かかります。)

よくあるエラーと対処

  • Malformed zip package / 関数が表示されない:ZIPのルートが誤っている場合はhost.jsonを含むアプリルートをZIP化し直すと解消します。
  • ランタイム不整合(Python/Nodeのバージョン違い):Function Appのスタック設定とアプリ実装のバージョンを一致させると解消します。
  • 設定値不足:接続文字列や環境変数が必要な場合はアプリケーション設定に追加すると解消します(az functionapp config appsettings set)。

まとめ

今回はGitHub ActionsとTerraformで作成したAzure FunctionsにAzure CLIを使って手動でコードをデプロイする方法をご紹介しました。

次回はコードデプロイの自動化をご紹介できればと考えているのでそちらも参考にしていただけると幸いです。

この記事が役に立ったと思ったら、
ぜひ「いいね」とシェアをお願いします!

リンクをコピーXでシェアするfacebookでシェアする

この記事を書いた人

生成AI基盤チーム
生成AI基盤チーム
メンバーズ社内の部署横断で、生成AI基盤の設計・構築、生成AI活用支援、ナレッジ共有などを行っているR&Dチームです。現在は、DevOps支援を専門とするデブオプスリードカンパニーのメンバーを中心とした構成になっています。DevOpsやSRE、インフラなどの観点を中心に、さまざまなナレッジを積極的に発信していきます!
詳しく見る
ページトップへ戻る