Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 如何在Terraform中使用ARM模板中的自定义_数据参数?_Json_Azure_Terraform_Terraform Provider Azure - Fatal编程技术网

Json 如何在Terraform中使用ARM模板中的自定义_数据参数?

Json 如何在Terraform中使用ARM模板中的自定义_数据参数?,json,azure,terraform,terraform-provider-azure,Json,Azure,Terraform,Terraform Provider Azure,我有一个Azure ARM模板,它成功地从Azure存储帐户中的文件目录引导VM。我想让它在地形中工作,但我真的很难让它正常工作 下面是一个工作的Azure ARM模板,它创建VM并用Azure存储帐户中的文件引导它。使用customData参数进行引导 "variables": { "uniqueId": "[uniqueString(resourceGroup().id)]", "customData": "[concat('storage-account=', parameters

我有一个Azure ARM模板,它成功地从Azure存储帐户中的文件目录引导VM。我想让它在地形中工作,但我真的很难让它正常工作

下面是一个工作的Azure ARM模板,它创建VM并用Azure存储帐户中的文件引导它。使用customData参数进行引导

"variables": {
  "uniqueId": "[uniqueString(resourceGroup().id)]",
  "customData": "[concat('storage-account=', parameters('STORAGE_ACCOUNT'), ',access-key=', parameters('ACCESS_KEY'), ',file-share=', parameters('FILE_SHARE'), ',share-directory=', parameters('SHARE_DIRECTORY'))]"
},
"resources": [
  {
    "apiVersion": "2016-04-30-preview",
    "type": "Microsoft.Compute/virtualMachines",
    "name": "MY-VM",
    "location": "[resourceGroup().location]",
    "properties": {
      "hardwareProfile": {
          "vmSize": "Standard_DS3_v2"
      },
      "osProfile": {
          "computerName": "My-Computer-Name",
          "adminUsername": "[parameters('Username')]",
          "adminPassword": "[parameters('Password')]",
          "customData": "[base64(variables('customData'))]"
      }
    }
  }
这里是我的非工作Terraform脚本,当我尝试执行相同类型的引导时,它不起作用

resource "azurerm_virtual_machine" "MY-VM" {
  name                         = "${var.vm_name}"
  location                     = "${var.location}"
  resource_group_name          = "${azurerm_resource_group.rg.name}"
  vm_size                      = "${var.vm_size}"
  primary_network_interface_id = "${azurerm_network_interface.nic0.id}"

  os_profile {
    computer_name     = "${var.vm_name}"
    admin_username    = "${var.adminuser}"
    admin_password    = "${var.adminuserpassword}"
    custom_data       = "${base64encode(join("", list("storage-account=", var.STORAGE_ACCOUNT, ",access-key=", var.ACCESS_KEY, ",file-share=", var.FILE_SHARE, ",share-directory=None")))}"
  }
}
这是我运行它时收到的错误。如果我不使用custom_数据字段,机器将正常启动,但不会启动。我在这里没有主意了

azurerm_virtual_machine.MY-VM: 
compute.VirtualMachinesClient#CreateOrUpdate: Failure sending 
request: StatusCode=0 -- Original Error: autorest/azure: Service 
returned an error. Status=400 Code="InvalidRequestFormat" 
Message="Cannot parse the request." Details=[]

我认为join不适用于字符串?就你的情况而言,你可以这样做

"storage-account=${var.STORAGE_ACCCOUNT},access-key=${var.ACCESS_KEY},file-share=${var.FILE_SHARE},share-directory=None"

你可以看一看,也许会有帮助。最终使用了“azurerm_模板_部署”资源,并且成功了。谢谢@Chew 224你应该制定你的解决方案并回答,这样其他人搜索并找到这个问题就会看到你是如何回答这个问题的。