ZIP-развертывание функций Azure

Пытаюсь автоматизировать развертывание с помощью PowerShell, потому что у меня несколько конечных точек.

В итоге я создал этот файл ps1

param(
    [string]$subscriptionId,
    [string]$resourceGroup,
    [string[]]$functionAppNames,
    [bool]$build = $true,
    [bool]$deleteBuild = $true
)

clear

if ($build) {
    # # Build your NestJS app
    npm run build

    # Zip it up
    powershell Compress-Archive -Path .\dist\* -Update -DestinationPath dist.zip # slow...
    # & "C:\Program Files\7-Zip\7z.exe" a -r "dist.zip" ".\dist\*"
}

# Login to Azure and set the subscription
az login
az account set --subscription $subscriptionId

# Publish to each function app
foreach ($functionAppName in $functionAppNames) {
    Write-Host "Deploying to function app: $functionAppName"

    az functionapp config appsettings set --name $functionAppName --resource-group $resourceGroup --settings "SCM_DO_BUILD_DURING_DEPLOYMENT=true"
    az functionapp config appsettings set --name $functionAppName --resource-group $resourceGroup --settings "WEBSITE_RUN_FROM_PACKAGE=1"

    # tried both with no success...
    az functionapp deployment source config-zip -g $resourceGroup -n $functionAppName --src .\dist.zip
    # Publish-AzWebapp -ResourceGroupName $ResourceGroup -Name $functionAppName -ArchivePath .\dist.zip
}

if ($deleteBuild) {
    Remove-Item .\dist.zip
    Remove-Item .\dist\ -Recurse
}

Но по какой-то причине после завершения развертывания в моем приложении-функции нет функций.

ОС: Windows План: Потребление

PS: Если я выполняю развертывание с помощью Visual Code (ctrl + P и выбираю экземпляр), все работает нормально. Я хочу повторить те же шаги, но не могу найти способ заставить это работать.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
91
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

AFAIK, для функции Azure не существует командного сценария build, который создает папку dist. Чтобы функция Azure работала, необходимо заархивировать весь проект со всеми файлами.

Эта команда сработала для меня, поскольку я развертываю триггер HTTP.

Мой каталог:

Код:

Без названия1.ps1:

param(
    [string]$subscriptionId= "<subscription_ID>",
    [string]$resourceGroup = "<resourceGroup_Name>",
    [string[]]$functionAppNames = "<functionApp_name>",
    [bool]$build = $true,
    [bool]$deleteBuild = $true
)

clear

if ($build) {
    npm install
    powershell Compress-Archive -Path .\* -Update -DestinationPath dist.zip  
}

az login
az account set --subscription $subscriptionId

foreach ($functionAppName in $functionAppNames) {
    Write-Host "Deploying to function app: $functionAppName"

    az functionapp config appsettings set --name $functionAppName --resource-group $resourceGroup --settings "SCM_DO_BUILD_DURING_DEPLOYMENT=true"
    az functionapp config appsettings set --name $functionAppName --resource-group $resourceGroup --settings "WEBSITE_RUN_FROM_PACKAGE=1"

    az functionapp deployment source config-zip -g $resourceGroup -n $functionAppName --src .\dist.zip
}
if ($deleteBuild) {
    Remove-Item .\dist.zip
    Remove-Item .\dist\ -Recurse
}

Выход :

Лазурный портал:

Я смог увидеть свою функцию в приложении «Функция Azure».

Другие вопросы по теме

Похожие вопросы

Работнику не удалось индексировать функции с помощью функций Azure и локального FastAPI с помощью AsgiMiddleware
Функции Azure добавляют пользовательскую переменную среды во время публикации
В функциях Azure на Python. Установка SessionID при публикации сообщения в служебной шине Azure
Azure HTTP Trigger — как извлечь значение параметра запроса из входной привязки — CosmosDB
Microsoft.Azure.WebJobs.Script: WorkerConfig для среды выполнения: Python не найден
Асинхронная загрузка нескольких больших двоичных объектов — функция Azure — проверка наличия рабочего цикла
Документы OpenApi не создаются для функций Azure
Как исправить внутреннюю ошибку: ожидаемое значение не должно быть ни нулевым, ни неопределенным: functionName при создании проекта функций Azure?
Функция Azure Serilog не записывает данные в App Insights
Приложение-функция Azure: развертывание zip-файла с кодом и исполняемого файла через портал Azure