はじめに

初めてAzureを使用する案件に携わりました。当初は手動でデプロイ作業を行っていましたが、そのプロセスが非常に手間だと感じていました。そこで自動化に挑戦してみたところ、意外にも簡単に実現でき、作業が大幅に楽になりました。
その際に、残した手順のメモを参考に記事を書いてみました。

なぜ自動化にしたのか

Microsoft製のVSCodeを使用すれば、手動でのデプロイは簡単で手順もそれほど多くありません。
基本的にはVisual Studio Code 用 Azure Functions 拡張機能を入れることさえ出来れば、ほとんどの作業はVSCodeで完結できていました。
詳しい手順

手間だった部分は案件の都合上、開発環境と本番環境でAzureのサブスクリプションが別れており、デプロイをする際に、一回一回コマンドを使用してサブスクリプションを切り替える必要などの細かい作業がありました。

上記の問題を、GitHub Actionsを使用することによって、GitHubのマージ作業を行うと同時にデプロイを可能になり作業効率を上げることができました。

前提条件

  • Azureアカウント
  • GitHubアカウント
  • GitHubリポジトリ内のソース コードを使用してAzure上でホストされ、機能しているAzure Functions

手順

Azure公式を参考にしています

1. 関数アプリの発行プロファイルのダウンロード

GitHub Actionsを使用してAzure Functionsのデプロイを行うには、まず発行プロファイルをダウンロードします。こちらはAzure portalから簡単にダウンロードできます。

  1. 作成したAzure Functionsの概要から発行プロファイルの取得を選択してダウンロード
  2. ダウンロードしたファイル内容をコピー

2. GitHub Secretsへ格納

1でダウンロードした発行プロファイルをGitHub Secretsに安全に格納する必要があります。GitHub Secretsを設定する権限があるので気をつけて下さい。
参考

  1. 該当のリポジトリを選択
  2. Settings→Secrets and variables→Actionsを順番に選択
  3. New repository secretを選択
  4. Nameの項目にAZURE_FUNCTIONAPP_PUBLISH_PROFILEを記入、Secretの項目にダウンロードした発行プロファイルの内容をペースト
  5. Add secretを選択

3. ワークフロー作成

ワークフローにはテンプレートがあるのでそちらを参考に作成してください。今回はPythonを例にしたサンプル画像を用意しました。
Pythonのテンプレート

  1. テンプレートを元に設定を書き込む。テンプレートから主に変更するのは以下の4つです。
    ① 実装するブランチの選択
    ② Azure Functionsの名前
    ③ Azure Functionsへのパス設定(デフォルトの'.'はリポジトリルートです。ほとんどの場合変更はしないかもしれません。)
    ④ Pythonのバージョンの指定

2.作成したYAML ファイルを/.github/workflows/配下に置く。

4. 動作確認

以上でこちらの作業は終了です。後は、指定したブランチへのマージやプッシュを行えばGitHub Actionsが自動的に動きます。

おわりに

デプロイの自動化を導入する際、初めは作業効率の向上に驚きながらも、設定や準備が大変だと感じていました。しかし、実際に手を動かしてみると、手順は驚くほど簡単で、思った以上にスムーズに進めることができました。サポートを受けながらの進行でしたが、「こんなに簡単でいいのか?」と思うほど、手軽に自動化を実現できたのは大きな収穫です。今後はこの経験を活かし、さらなる効率化を目指していきたいと思います。