Search code examples
pythonazure-functionsgithub-actions

Unable to explain why my Python based Azure Function is not appearing when using GitHub actions to deploy


I don't seem to be able to diagnose why my python based azure function (deployed via github actions) is not appearing in the azure function list. Something subtle is causing it to not be processed

I have successfully deployed my python script using github actions (see pic1). enter image description here

I have been able to successfully see the app files visible within my azure function (see pic2).

enter image description here

And yet I am unable to see my function within the functions list (see pic3). enter image description here

I feel like if I just had the ability to see what or how Azure is processing my files, to see if there's a problem with some configuration OR modules OR something then I would have a starting point. But right now it feels like a blackbox and I don't know what methodology to follow to figure out what's wrong.

I feel like there is something simple missing OR misconfigured, please help


Solution

  • I tried the Azure Function Deployment with Github actions and it was successful.

    Initially, When I deployed the Function it was not visible, Refer below:-

    enter image description here

    Make sure your init.py and function.json is inside one directory and other files are outside that directory for the deployment to work successfully, Refer below:-

    Reference:- SO Thread answer by jsprovoke

    enter image description here

    Now, I deployed the Function with Github action and the Function was visible in the Portal refer below:-

    Refer my complete github workflow in this Link.

    name: Build and deploy Python project to Azure Function App - siliconfunc12
    
    on:
      push:
        branches:
          - main
      workflow_dispatch:
    
    env:
      AZURE_FUNCTIONAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root
      PYTHON_VERSION: '3.10' # set this to the python version to use (supports 3.6, 3.7, 3.8)
    
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
          - name: Checkout repository
            uses: actions/checkout@v2
    
          - name: Setup Python version
            uses: actions/setup-python@v1
            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
            
          # Optional: Add step to run tests here
    
          - name: Upload artifact for deployment job
            uses: actions/upload-artifact@v2
            with:
              name: python-app
              path: |
                . 
                !venv/
    
      deploy:
        runs-on: ubuntu-latest
        needs: build
        environment:
          name: 'Production'
          url: ${{ steps.deploy-to-function.outputs.webapp-url }}
    
        steps:
          - name: Download artifact from build job
            uses: actions/download-artifact@v2
            with:
              name: python-app
              path: .
    
          - name: 'Deploy to Azure Functions'
            uses: Azure/functions-action@v1
            id: deploy-to-function
            with:
              app-name: 'siliconfunc12'
              slot-name: 'Production'
              package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}
              publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_E640D92BF68849679F8A36682B022D5F }}
              scm-do-build-during-deployment: true
              enable-oryx-build: true
    

    Output:-

    enter image description here

    enter image description here

    Python Function HTTPTrigger visible in Portal like below:-

    enter image description here

    Add the settings below to run your function app from Zip:-

    enter image description here

    HTTPTrigger ran successfully like below:-

    enter image description here

    enter image description here

    You can directly run your Function app deployment from Deployment center with Github that will automatically create Github workflow and deploy your Function Trigger to Function app, Refer below:-

    enter image description here