LoginSignup
2
0

More than 3 years have passed since last update.

[Azure Functions] GitHub Actions を使って関数をデプロイする

Last updated at Posted at 2021-03-09

はじめに

先日、Azure Functions 関数を Azure DevOps の Pipelines を使ってデプロイする方法を記事にしました。

今回は、Azure Pipelines の代わりに GitHub Actions を使って同様にデプロイする方法を紹介したいと思います。

前提

  • GitHub リポジトリ
    初めてリポジトリを作成する方は、以下のドキュメントをもとにご作成ください。
    https://docs.github.com/ja/github/getting-started-with-github/create-a-repo

  • Azure Functions
    「はじめに」で記した前回記事と同じ構成で作成しておきます。

    • ランタイムスタック : Node.js (14 LTS)
    • オペレーティングシステム : Windows
    • プラン : 消費量 (サーバーレス)
  • Visual Studio Code
    ローカル開発環境での関数作成および git コミットまでについても前回記事同様です。
    コミットしたら上記で作成した GitHub リポジトリに push しておきます。

※ 前回記事:https://qiita.com/tomohat/items/02c0e189750192e435c5

GitHub Actions の作成

発行プロファイルの設定

GitHub Actions から Azure Functions へデプロイする際に使用する認証情報として、発行プロファイルが推奨されています。
まずはこちらの設定から始めます。

Azure Functions の概要画面に遷移し、発行プロファイルの取得を押すとファイルがダウンロードできます。
2021-03-08_19h24_00.png

続いて、GitHub リポジトリに移動し、リポジトリ設定の Secrets > New repository secret を選択します。
2021-03-08_19h25_41.png
Secret 設定画面で、Name を AZURE_FUNCTIONAPP_PUBLISH_PROFILE とし、Value には先ほどダウンロードした発行プロファイルの中身を全て貼り付けます。
発行プロファイルは Visual Studio Code で開くと中身を確認できます。
2021-03-08_19h32_03.png

これで発行プロファイルの設定は完了です。

ワークフローの作成

ここから、Azure Functions にデプロイするためのワークフロー作成していきます。
まずは、Actions タブの set up a workflow yourself リンクを押下します。
2021-03-08_19h39_44.png
すると、YAML ファイル編集画面が表示されると思うので、公式ドキュメントを参考にした以下のコードで上書きます。
https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-how-to-github-actions?tabs=javascript#deploy-the-function-app

name: Deploy Node.js project to function app

on:
  push:
    branches: [ main ]
  workflow_dispatch:

jobs:
  build-and-deploy:
    runs-on: windows-latest
    env:
      AZURE_FUNCTIONAPP_PACKAGE_PATH: '.' 
      AZURE_FUNCTIONAPP_NAME: '(作成した Function App の名前)'
      NODE_VERSION: '14.x'                     
    steps:
      - name: 'Checkout GitHub Action'
        uses: actions/checkout@main

      - name: Setup Node ${{ env.NODE_VERSION }} Environment
        uses: actions/setup-node@v1
        with:
          node-version: ${{ env.NODE_VERSION }}

      - name: Resolve Project Dependencies Using Npm
        shell: pwsh
        run: |
          pushd './${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}'
          npm install
          npm run build --if-present
          npm run test --if-present
          popd
      - name: Run Azure Functions Action
        uses: Azure/functions-action@v1
        id: fa
        with:
          app-name: ${{ env.AZURE_FUNCTIONAPP_NAME }}
          package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}
          publish-profile: ${{ secrets.AZURE_FUNCTIONAPP_PUBLISH_PROFILE }}

上書きしたら Start commit ボタンを押下します。
GitHub 上で main ブランチをコミットすることでワークフローが走り出し、最初のビルドとデプロイが実行されます。
デプロイが完了したら、Azure Functions に移動して、実際にデプロイされているか確認してみましょう。

参考文献

2
0
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
2
0