Ошибка скрипта az cli: ‘.’ не является допустимым локальным путем к файлу – Развертывание Node.js с помощью GitHub Actions.

Вопрос или проблема

Я пытаюсь развернуть проект React JS “Hello World”. У меня проблема с конкретным разделом кода yml. Полный файл yml доступен здесь, https://gist.github.com/Jay-study-nildana/aaa22f47da2c288dc1b04b53028f126f

    # Публикация веб-сайта в Azure App Service с использованием CLI (WebApp)
    - name: Публикация веб-сайта в WebApp
      uses: Azure/cli@v2
      with:
        inlineScript: |
             az webapp deploy --name ${{ env.WEBAPP-NAME }} --resource-group ${{ env.RESOURCE-GROUP }} --src-path ${{ env.AZURE_WEBAPP_PACKAGE_PATH }}  

и переменные окружения

#Переменные окружения https://docs.github.com/en/actions/learn-github-actions/environment-variables
env:
  RESOURCE-GROUP: devops_rg_oct1a
  LOCATION: centralindia
  TEMPLATE-FILE: infra/webapp.bicep
  SUBSCRIPTION-ID: 
  WEBAPP-NAME: devopswebappoct1a
  AZURE_WEBAPP_PACKAGE_PATH: '.'      # установить путь к вашему проекту веб-приложения, по умолчанию корень репозитория
  NODE_VERSION: '18.x'                # установить версию узла для использования

Примечание: Я вижу в портале Azure, что приложение веба успешно создано. Таким образом, Azure CLI может успешно войти в систему с использованием сервисного принципала, который имеет полный доступ для развертывания.

Примечание: Я использовал идентичный скрипт для развертывания dot net, который сработал отлично. Теперь я использую пример, представленный здесь, https://github.com/Azure/actions-workflow-samples/blob/master/AppService/node.js-webapp-on-azure.yml, и модифицирую его для работы с моим существующим yml файлом. Связанный файл использует ‘AZURE_WEBAPP_PUBLISH_PROFILE’, но я пытаюсь сделать развертывание с помощью azure cli, так как это уже сработало для моего развертывания на dot net.

И ошибка выглядит так.

20s
Запуск Azure/cli@v2
  с:
    inlineScript: az webapp deploy --name devopswebappoct1a --resource-group devops_rg_oct1a --src-path .      
  
    azcliversion: agentazcliversion
  env:
    RESOURCE-GROUP: devops_rg_oct1a
    LOCATION: centralindia
    TEMPLATE-FILE: infra/webapp.bicep
    SUBSCRIPTION-ID: 
    WEBAPP-NAME: devopswebappoct1a
    AZURE_WEBAPP_PACKAGE_PATH: .
    NODE_VERSION: 18.x
  
Начало выполнения скрипта через образ докера mcr.microsoft.com/azure-cli:2.64.0
WARNING: Тип развертывания: статический. Чтобы переопределить тип развертывания, укажите параметр --type. Возможные значения: war, jar, ear, zip, startup, script, static
WARNING: Инициация развертывания
WARNING: Развертывание из локального пути: .
ERROR: Либо '.' не является допустимым локальным файловым путем, либо у вас нет разрешений на доступ к нему
Error: Ошибка: скрипт az cli завершился с ошибкой.
очистка контейнера...
MICROSOFT_AZURE_CLI_1727760580737_CONTAINER
Error: Скрипт az cli завершился с ошибкой.

Вы загружаете

infra/webapp.bicep

в

bicep-template/webapp.bicep

Это то, что ожидает ваше развертывание? Если нет, удалите или скорректируйте строку 76.

Ответ или решение

Проблема, с которой вы столкнулись, возникает из-за того, что Azure CLI не может найти указанный путь '.' для развертывания вашего приложения. Давайте шаг за шагом рассмотрим, как вы можете решить эту проблему.

1. Проверьте корневую директорию

Убедитесь, что ваш проект действительно находится в корневой директории, которую вы используете для сборки вашего приложения. Путь '.' соответствует корневой папке вашего репозитория. Если у вас есть подпапка с вашим проектом, например, my-react-app, вам нужно будет указать это в переменной AZURE_WEBAPP_PACKAGE_PATH.

2. Измените переменную окружения

Если ваш проект находится в подпапке, измените переменную AZURE_WEBAPP_PACKAGE_PATH следующим образом:

AZURE_WEBAPP_PACKAGE_PATH: 'my-react-app/build'  # замените на актуальный путь

Если ваш проект React собирается в папку build, это будет правильный путь для развертывания.

3. Убедитесь в корректности сборки

Прежде чем развертывать на Azure, убедитесь, что ваше приложение React собрано (обычно с помощью команды npm run build). Убедитесь, что этап сборки присутствует в вашем файле YAML, например:

- name: Build React App
  run: npm install && npm run build

Добавьте этот шаг перед шагом развертывания в вашем GitHub Actions YAML.

4. Обновите шаг развертывания

После внесения всех вышеуказанных изменений ваш шаг развертывания должен выглядеть примерно так:

- name: Publish Website to WebApp
  uses: Azure/cli@v2
  with:
    inlineScript: |
      az webapp deploy --name ${{ env.WEBAPP-NAME }} --resource-group ${{ env.RESOURCE-GROUP }} --src-path ${{ env.AZURE_WEBAPP_PACKAGE_PATH }}

5. Путь к месту назначения

Также убедитесь, что у вас есть достаточные права доступа для чтения файлов по указанному пути. Если проблема сохраняется, попробуйте использовать абсолютный путь в качестве временного обходного пути для определения, является ли это проблемой с относительным путем.

6. Логи и диагностика

Если ошибка продолжает возникать, проверьте журналы выполнения вашего GitHub Actions. Они могут содержать полезные подсказки для решения проблемы. Включите дополнительные параметры для az webapp deploy, чтобы получить более детальную информацию о процессе развертывания.

Заключение

Следуя вышеуказанным шагам, вы сможете исправить ошибку и успешно развернуть свое приложение React на Azure. Если возникнут дополнительные вопросы, не стесняйтесь спрашивать. Удачи с вашим проектом!

Оцените материал
Добавить комментарий

Капча загружается...