##[错误]未定义:ValueType 'System.Boolean' 不能为空。 (带有 DevOps 的 ARM 模板部署)

Posted

技术标签:

【中文标题】##[错误]未定义:ValueType \'System.Boolean\' 不能为空。 (带有 DevOps 的 ARM 模板部署)【英文标题】:##[error]undefined: ValueType 'System.Boolean' cannot be null. (ARM Template deployment with DevOps)##[错误]未定义:ValueType 'System.Boolean' 不能为空。 (带有 DevOps 的 ARM 模板部署) 【发布时间】:2022-01-22 01:36:39 【问题描述】:

说明

我在使用 ARM 模板部署 Azure 函数时收到了这个奇怪的错误。我能够将该特定资源隔离为故障的根源。我无法在 Microsoft 文档中找到有关此错误的信息。你知道根本原因是什么吗?

错误

There were errors in your deployment. Error code: DeploymentFailed.
##[error]At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/DeployOperations for usage details.
##[error]Details:
##[error]undefined: ValueType 'System.Boolean' cannot be null.
##[error]Check out the troubleshooting guide to see if your issue is addressed: https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-resource-group-deployment?view=azure-devops#troubleshooting
##[error]Task failed while creating or updating the template deployment.

模板

请注意,服务器场已存在于另一个资源组中。


  // ...
  "variables": 
    // ...
    "serverfarms_ASE_externalid": "[concat('/subscriptions/', variables('varSubscriptionId'), '/resourceGroups/ABC-123-rg/providers/Microsoft.Web/serverfarms/Medium-ASE01-Windows01')]",
    // ...
  ,
  "resources": [
    // ...
    
      "type": "Microsoft.Web/sites",
      "apiVersion": "2019-08-01",
      "name": "[variables('functionApp_name')]",
      "location": "[parameters('infra').region.primaryName]",
      "dependsOn": [
        "[resourceId('Microsoft.Storage/storageAccounts/blobServices', variables('storageAccount_name'), 'default')]",
        "[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccount_name'))]"
      ],
      "identity": 
        "type": "SystemAssigned"
      ,
      "kind": "functionapp",
      "properties": 
        "serverFarmId": "[variables('serverfarms_ASE_externalid')]",
        "siteConfig": 
          "appSettings": [
            
              "name": "AzureWebJobsStorage",
              "value": "[concat('DefaultEndpointsProtocol=https;AccountName=', variables('storageAccount_name'), ';AccountKey=', listKeys(variables('storageAccountid'),'2015-05-01-preview').key1)]"
            ,
            
              "name": "AzureWebJobsDashboard",
              "value": "[concat('DefaultEndpointsProtocol=https;AccountName=', variables('storageAccount_name'), ';AccountKey=', listKeys(variables('storageAccountid'),'2015-05-01-preview').key1)]"
            ,
            
              "name": "WEBSITE_CONTENTAZUREFILECONNECTIONSTRING",
              "value": "[concat('DefaultEndpointsProtocol=https;AccountName=', variables('storageAccount_name'), ';AccountKey=', listKeys(variables('storageAccountid'),'2015-05-01-preview').key1)]"
            ,
            
              "name": "WEBSITE_CONTENTSHARE",
              "value": "[toLower(variables('functionApp_name'))]"
            ,
            
              "name": "FUNCTIONS_EXTENSION_VERSION",
              "value": "~3"
            ,
            
              "name": "WEBSITE_NODE_DEFAULT_VERSION",
              "value": "8.11.1"
            ,
            
              "name": "APPINSIGHTS_INSTRUMENTATIONKEY",
              "value": "[reference(resourceId('Microsoft.Insights/components', variables('appInsights_name')), '2014-04-01').InstrumentationKey]"
            ,
            
              "name": "FUNCTIONS_WORKER_RUNTIME",
              "value": "dotnet"
            ,
            
              "name": "AzureWebJobsSecretStorageType",
              "value": "files"
            
          ]
        
      
    
    // ...
  ]

【问题讨论】:

嗨皮维耶蒂;您需要去查看资源组的部署记录。这将有尝试部署的详细记录,并提供尽可能多的信息。您可以通过 azure 门户或 az cli 或 powershell 访问它。 【参考方案1】:

##[错误]详情: ##[error]undefined: ValueType 'System.Boolean' 不能为空。

这不是常见的 Azure 部署问题。请查看common azure deployment issue

您可以使用find error code找到确切的问题

与部署相关的错误分为三种类型:

验证错误在部署开始之前发生,是由文件中的语法错误引起的。您的编辑可以识别这些错误。 预检验证错误在运行部署命令但未部署资源时发生。在没有开始部署的情况下发现这些错误。例如,如果参数值不正确,则会在预检验证中发现错误。 部署错误发生在部署过程中,只能通过评估部署进度来发现。

所有类型的错误都会返回一个错误代码,您可以使用该代码对部署进行故障排除。验证和预检错误会显示在活动日志中,但不会出现在您的部署历史记录中。有语法错误的 Bicep 文件不会编译成 JSON,也不会显示在活动日志中。

要识别语法错误,您可以使用Visual Studio Code 和最新的Bicep extension 或Azure Resource Manager Tools extension。

【讨论】:

以上是关于##[错误]未定义:ValueType 'System.Boolean' 不能为空。 (带有 DevOps 的 ARM 模板部署)的主要内容,如果未能解决你的问题,请参考以下文章

获得未处理的异常:System.ArgumentNullException

更新 Visual Studio 2019 错误

Map(没有写底层)

数据类型

五十九SAP中常用预定义系统变量

Docker启动报Job for docker.service failed because the control process exited with error code. See “syst