Невозможно найти версию dotnet при развертывании приложения функции гибкого потребления с помощью действий GitHub

Я пытаюсь развернуть приложение-функцию .Net 8 в гибком плане потребления в нашей подписке Azure. Однако, когда я запускаю действие после сборки, я получаю сообщение об ошибке «Ошибка: не удалось обнаружить версию для платформы dotnet в репозитории».

Журнал ошибок Github

name: Deploy DotNet project to Azure Function App

on:
  push:
    branches: ["main"]

env:
  AZURE_FUNCTIONAPP_NAME: 'function app name'   
  AZURE_FUNCTIONAPP_PACKAGE_PATH: '.'       
  DOTNET_VERSION: '8.0.x'                   

jobs:
  build-and-deploy:
    runs-on: windows-latest # For Linux, use ubuntu-latest
    environment: dev
    steps:
    - name: 'Checkout GitHub Action'
      uses: actions/checkout@v4

    # If you want to use Azure RBAC instead of Publish Profile, then uncomment the task below
    # - name: 'Login via Azure CLI'
    #   uses: azure/login@v1
    #   with:
    #     creds: ${{ secrets.AZURE_RBAC_CREDENTIALS }} # set up AZURE_RBAC_CREDENTIALS secrets in your repository

    - name: Setup DotNet ${{ env.DOTNET_VERSION }} Environment
      uses: actions/setup-dotnet@v3
      with:
        dotnet-version: ${{ env.DOTNET_VERSION }}

    - name: 'Resolve Project Dependencies Using Dotnet'
      shell: pwsh
      run: |
        pushd './${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}'
        dotnet build --configuration Release --output ./output
        popd

    - name: 'Run Azure Functions Action'
      uses: Azure/functions-action@v1
      id: fa
      with:
        sku: flexconsumption
        remote-build: true
        scm-do-build-during-deployment: false
        enable-oryx-build: false
        app-name: ${{ env.AZURE_FUNCTIONAPP_NAME }}
        package: '${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}/output'

Я объявил версию dotnet как переменную в файле рабочего процесса, проверил решение и файл .csproj, и они также включают версию dotnet.

🤔 А знаете ли вы, что...
C# также используется для разработки игр с помощью Unity3D, популярного игрового движка.


99
1

Ответ:

Решено
name: Deploy DotNet project to Azure Function App

on:
  push:
    branches: ["main"]

env:
  AZURE_FUNCTIONAPP_NAME: 'afreen-fa'   
  AZURE_FUNCTIONAPP_PACKAGE_PATH: '.'       
  DOTNET_VERSION: '8.0.x'                   

jobs:
  build-and-deploy:
    runs-on: ubuntu-latest  # For ubuntu-latest, use windows-latest 
    environment: dev
    steps:
    - name: 'Checkout GitHub Action'
      uses: actions/checkout@v4

    - name: Setup DotNet ${{ env.DOTNET_VERSION }} Environment
      uses: actions/setup-dotnet@v3
      with:
        dotnet-version: ${{ env.DOTNET_VERSION }}

    - name: 'Resolve Project Dependencies Using Dotnet'
      shell: pwsh # For Linux, use bash
      run: |
        pushd './${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}'
        dotnet build --configuration Release --output ./output
        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 }}/output'
        publish-profile: ${{ secrets.AZURE_FUNCTIONAPP_PUBLISH_PROFILE }}
  • К сожалению, этот код завершится ошибкой 404 при развертывании в приложении функции Flex Consumption, поскольку приложение Flex Consumption ожидает, что URI публикации с zip-файлом будет scm_url + /api/publish, тогда как оно использует scm_url + /api/zipdeploy.

  • Команда разработчиков работает над исправлением, о котором вы можете узнать из этой проблемы на github.
  • Я успешно развернул свою функцию в приложении функции потребления Flex, используя код Visual Studio. Итак, я бы посоветовал вам пока использовать код Visual Studio или основные инструменты.