[Troubleshooting] Azure Function App with GitHub Actions

[Troubleshooting] Azure Function App with GitHub Actions
Azure Function App
  1. Azure Function App을 Azure에서 기본 제공하는 GitHub Actions Deployment Template으로 CI/CD를 구성하면 애플리케이션 배포 후 Function을 찾지 못하는 문제가 발생합니다.
  2. 이유는 위 참고문서에서 나오듯 WEBSITE_RUN_FROM_PACKAGE 라는 환경변수가 자동으로 추가되기 때문입니다.
  3. 로컬 개발환경에서는 정상적으로 동작하는데 원격으로 배포만 하면 문제가 생겨서 GitHub Actions Yaml 파일에 Azure CLI로 해당 환경변수를 삭제하는 스크립트를 넣어보고 별 방법을 다 써 봤지만 결국 문제를 해결하지 못했습니다. ㅠㅠ
  4. 결국 로컬 개발 환경처럼 Azure Functions Core Tool을 통해 원격 클라우드 자원에 접근하게끔 GitHub Actions 배포 스크립트를 작성하면 됩니다.
    1. Checkout main repo to current directory.
    2. Install azure-functions-core-tools
    3. func azure functionapp publish

name: func-xxx

on:
  push:
    branches:
      - main
  workflow_dispatch:

env:
  AZURE_FUNCTIONAPP_PACKAGE_PATH: "." 
  PYTHON_VERSION: "3.11" 

jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Setup Python version
        uses: actions/setup-python@v5
        with:
          python-version: ${{ env.PYTHON_VERSION }}

      - name: Create and start virtual environment
        run: |
          python -m venv venv
          source venv/bin/activate

      - name: Install dependencies
        run: pip install -r requirements.txt

      - name: Publish function app by az-core-tools
        run: |
          curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
          sudo apt-get install azure-functions-core-tools-4
          
          az login --service-principal -u xxx -p xxx --tenant xxx
          
          func azure functionapp publish func-xxx
          
        shell: bash
  1. 정상 동작합니다. ^^

Read more

쉬어가며2

쉬어가며2

개발 일만 하다 보면 눈앞의 코드에만 집중하게 된다. 오늘은 조금 다른 이야기를 해볼까 한다. 바로 주식에 대한 이야기다. 왜 주식을 해야 하는가? 주식을 시작하면 자연스럽게 질문이 많아진다. "왜 이 회사는 영업이익이 늘었는데 주가는 떨어졌을까?" "PER이 낮은데 왜 아무도 사지 않을까?" 재무제표를 읽고, 뉴스를 찾아보고, 시장의 흐름을 추적하다 보면 세상을 보는

By Jeonggil
쉬어가며

쉬어가며

개발 일만 하다 보면 때로는 잠시 멈춰서 주변을 둘러보는 것도 중요하다. 오늘은 오래전에 다녔던 병원에서의 일을 가볍게 풀어볼까 한다. 고객이 병원에 방문하고, 그것이 수익으로 이어지기까지. 그 안에는 생각보다 훨씬 많은 전략과 기술, 그리고 사람들의 노력이 숨어있다. 1. 들어가며 오래전 다녔던 한 병원에서의 일이다. 당시 나는 "의료 IT"라는 낯선 도메인에

By Jeonggil