使用Azure PowerShell创建自定义镜像Azure函数时GetShareName报错如何解决
问题原因
这个报错是Az.Functions PowerShell模块3.1.0版本的已知内置逻辑缺陷:模块内置的GetShareName工具函数错误地强制要求函数应用名称中包含数字字符,会尝试从名称中提取数字转为Int32类型,纯字母的名称无法满足这个隐藏要求,就会触发类型转换失败的报错。
解决方案
- 方案1(优先推荐):升级Az.Functions模块到最新版本
该bug已经在后续版本中修复,执行以下命令升级即可:Update-Module -Name Az.Functions -Force
升级完成后重启PowerShell会话,重新执行原New-AzFunctionApp创建命令即可正常运行。 - 方案2(临时绕开):修改函数应用名称
在符合命名规则的前提下,给你的函数应用名称加入至少1位数字,即可绕开该解析逻辑的校验。 - 方案3(替换工具):使用Azure CLI执行创建操作
如果你需要保留纯字母的函数应用名称、且暂时无法升级PowerShell模块,可以改用Azure CLI完成创建,等效命令如下:az functionapp create --name XXX --resource-group XXX --plan MyPremiumPlan --storage-account XXX --deployment-container-image-name XXX/XXX:v1.6.0
内容的提问来源于stack exchange,提问作者Amit Raz
相关产品推荐
相关产品推荐

