最近我的函数应用程序停止了插槽交换,它们几个月来一直运行良好,但突然之间它们都停止了交换,花了很长时间然后崩溃。我用相同的脚本重新创建了函数应用程序,并复制了问题,但仍然无法修复。
我是否正在设置阻止插槽切换的内容?
下面是我正在使用的基本构建脚本。我可以运行这个脚本,但当试图在Azure中交换插槽时,它会冻结,然后崩溃,并显示一个模糊的错误消息:
# Azure Login
az login
# Set deployment Environment
$environment = "stage"
# Resource Group Variables
$subscriptionId = ""
$domain = "test4"
$resourceGroup = "xx-platform-$domain-$environment"
$region = "northEurope"
# Functions app variables
$storageName = "xxfn$domain$environment" # must be less than 24 chars and all lower case
$functionAppDeploymentSlotName = "test"
$functionAppName = "xx-platform-$domain-fn-$environment"
$functionAppEnvironment = "AZURE_FUNCTIONS_ENVIRONMENT=Development"
$websiteRunFromPackage = "WEBSITE_RUN_FROM_PACKAGE=1"
#########################################################################################################################################################################
## Resource Group
Write-output "Creating resource group";
# Set subscription
az account set --subscription $subscriptionId
# Create resource group
az group create -l $region -n $resourceGroup
#########################################################################################################################################################################
## Functions App
Write-output "Creating Functions App";
# Create storage account
az storage account create --name $storageName --location $region --resource-group $resourceGroup --sku Standard_LRS
# Create functions app - using consumption plan
az functionapp create --name $functionAppName --storage-account $storageName --consumption-plan-location northEurope --resource-group $resourceGroup --functions-version 4
# Set functions app configuration settings
# Environment
az functionapp config appsettings set --name $functionAppName --resource-group $resourceGroup --settings $functionAppEnvironment
# WEBSITE_RUN_FROM_PACKAGE
az functionapp config appsettings set --name $functionAppName --resource-group $resourceGroup --settings $websiteRunFromPackage
# SET DOT NET FRAMEWORK ERSION
az functionapp config set --net-framework-version v6.0 -g $resourceGroup -n $functionAppName
# Create functions app deployment slot
az functionapp deployment slot create --name $functionAppName --resource-group $resourceGroup --slot $functionAppDeploymentSlotName
1条答案
按热度按时间t98cgbkg1#
我修改了您的脚本,将变量值直接初始化为cmdlet:
使用以下给定MS文档中给出的cmdlet创建了Http触发器函数。
对于连续部署,需要配置此应用设置:
使用
az cli
cmdlet将函数部署到Azure函数,az cli
cmdlet在我的变通办法one中给出。默认情况下,将禁用插槽上的自动交换:
在插槽交换过程中,它工作正常,请确保您遵循了此MS Doc中提到的注意事项,此MS Doc还提供了用于管理插槽(如创建、列出、删除、交换和自动交换配置)的**
az cli
**cmdlet列表。以上Azure CLI命令取自此MS Doc参考。