Однако я пытаюсь использовать шаблоны лазурного бицепса для создания приложения-функции Python, получая следующую ошибку:
«LinuxFxVersion имеет недопустимое значение».
Я использовал версию linuxFx вместо версии Python, поскольку она используется в следующей документации:
Шаблон бицепса функции Azure
resource appService 'Microsoft.Web/serverfarms@2022-03-01' = {
name: appService
location: location
sku: {
name: 'EP1'
tier: 'ElasticPremium'
family: 'EP'
}
kind: 'elastic'
}
var functionAppName = 'tml-functionapp'
resource functionApp 'Microsoft.Web/sites@2020-06-01' = {
name: 'func-${project}-${role}-${env}'
location: loc
tags: appTagsComb
kind: 'functionapp,linux'
identity: {
type: 'SystemAssigned'
}
properties: {
reserved: true
serverFarmId: appService.id
siteConfig: {
appSettings: [
{
name: 'AzureWebJobsStorage'
value: 'DefaultEndpointsProtocol=https;AccountName=${funcApiStorage.name};EndpointSuffix=${environment().suffixes.storage};AccountKey=${listKeys(funcApiStorage.id, funcApiStorage.apiVersion).keys[0].value}'
}
{
name: 'FUNCTIONS_EXTENSION_VERSION'
value: '~4'
}
{
name: 'FUNCTIONS_WORKER_RUNTIME'
value: 'python'
}
{
name: 'WEBSITE_CONTENTSHARE'
value: functionAppName
}
{
name: 'WEBSITE_CONTENTAZUREFILECONNECTIONSTRING'
value: 'DefaultEndpointsProtocol=https;AccountName=${funcApiStorage.name};EndpointSuffix=${environment().suffixes.storage};AccountKey=${listKeys(funcApiStorage.id, funcApiStorage.apiVersion).keys[0].value}'
}
{
name: 'APPINSIGHTS_INSTRUMENTATIONKEY'
value: funcappInsights.properties.InstrumentationKey
}
]
linuxFxVersion: 'Python|3.9'
ftpsState: 'Disabled'
minTlsVersion: '1.2'
}
httpsOnly: true
}
@Hamid пробовал, все еще получая ту же проблему
Найдено решение для запуска вашего приложения в Linux, вы также должны установить свойство «зарезервировано»: для ресурса serverfarms:
resource appService 'Microsoft.Web/serverfarms@2022-03-01' = {
name: appService
location: location
sku: {
name: 'EP1'
tier: 'ElasticPremium'
family: 'EP'
}
kind: 'elastic'
properties: {
reserved: true
}
}
Вам также необходимо включить поле pythonVersion
, как показано ниже:
siteConfig: {
pythonVersion: '3.9'
linuxFxVersion: 'python|3.9'
}
После обходного пути я попробовал приведенный ниже скрипт, чтобы создать приложение-функцию Python, как описано в Github. Я изменил скрипт в соответствии с требованиями и смог успешно развернуть:
param name string = 'jahnavistoragesceoo'
param location string = 'EastUS'
resource storageAccount 'Microsoft.Storage/storageAccounts@2021-09-01' = {
name: name
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
}
resource applicationInsights 'Microsoft.Insights/components@2020-02-02' = {
name: 'nameapplication-insights'
location: location
kind: 'web'
properties: {
Application_Type: 'web'
Request_Source: 'rest'
}
}
resource hostingPlan 'Microsoft.Web/serverfarms@2021-03-01' = {
name: name
location: location
kind: 'Linux'
sku: {
name: 'Y1'
tier: 'Dynamic'
}
properties: {
reserved: true
}
}
resource functionApp 'Microsoft.Web/sites@2021-03-01' = {
name: name
location: location
kind: 'functionapp'
identity: {
type: 'SystemAssigned'
}
properties: {
serverFarmId: hostingPlan.id
siteConfig: {
pythonVersion: '3.9'
linuxFxVersion: 'python|3.9'
appSettings: [
{
name: 'AzureWebJobsStorage'
value: 'DefaultEndpointsProtocol=https;AccountName=${storageAccount.name};EndpointSuffix=${environment().suffixes.storage};AccountKey=${storageAccount.listKeys().keys[0].value}'
}
{
name: 'SCM_DO_BUILD_DURING_DEPLOYMENT'
value: 'true'
}
{
name: 'ENABLE_ORYX_BUILD'
value: 'true'
}
{
name: 'FUNCTIONS_EXTENSION_VERSION'
value: '~4'
}
{
name: 'APPINSIGHTS_INSTRUMENTATIONKEY'
value: applicationInsights.properties.InstrumentationKey
}
{
name: 'FUNCTIONS_WORKER_RUNTIME'
value: 'python'
}
]
}
httpsOnly: true
}
}
Выход:
Развертывание прошло успешно, и на портале было создано приложение функции стека среды выполнения Python:
может 3.9 не поддерживается? попробуйте 3.7, чтобы соответствовать тому, что в документах