Azure ARM模板依赖文件共享
我需要通过ARM模板存储帐户-->文件共享-->创建装载了文件共享的容器。Azure ARM模板依赖文件共享,azure,dependencies,azure-resource-manager,arm-template,fileshare,Azure,Dependencies,Azure Resource Manager,Arm Template,Fileshare,我需要通过ARM模板存储帐户-->文件共享-->创建装载了文件共享的容器。 依赖项是: 文件共享取决于存储帐户 容器依赖于文件共享 如何获取文件共享的引用ID 我有以下代码: { "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion"
依赖项是:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountType": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS"
],
"metadata": {
"description": "Storage account type (SKU)"
}
},
"fileShareName": {
"type": "string",
"minLength": 3,
"maxLength": 63,
"defaultValue": "sftp",
"metadata": {
"description": "Name of the File Share to be created. "
}
}
},
"variables": {
"deploymentLocation": "[resourceGroup().location]",
"storageAccountName": "[concat('sftpstr', uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"name": "[variables('storageAccountName')]",
"apiVersion": "2019-06-01",
"location": "[variables('deploymentLocation')]",
"sku": {
"name": "[parameters('storageAccountType')]"
},
"kind": "StorageV2",
"properties": {
"accessTier": "Hot"
}
},
{
"type": "Microsoft.Storage/storageAccounts/fileServices/shares",
"apiVersion": "2019-06-01",
"properties": {
"accessTier": "Hot"
},
"name": "[concat(variables('storageAccountName'), '/default/', parameters('fileShareName'))]",
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName'))]"
]
},
{
"type": "Microsoft.ContainerInstance/containerGroups",
"name": "sftp-container-group",
"apiVersion": "2018-04-01",
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts/fileServices/shares', ????? )]" //how to get reference to specific Fileshare??? I've tried > [concat(variables('storageAccountName'), '/default/', parameters('fileShareName'))] but it didn't work
],
"properties": {
.......
}
}
]
}
我不知道如何设置对文件共享的依赖:
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts/fileServices/shares', ????? )]" //how to get reference to specific Fileshare???
],
我尝试了[concat(variables('storageAccountName'),'/default/',parameters('fileShareName'))]
,但没有成功
有什么想法吗
谢谢您可以创建两个独立的资源
Microsoft.Storage/storageAccounts/fileServices
和Microsoft.Storage/storageAccounts/fileServices/shares
,并尝试如下设置对Fileshare的依赖关系:
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts/fileServices/shares', variables('storageAccountName'), 'default', parameters('fileShareName') )]"
],
或者,建议在容器实例中通过azure CLI创建存储帐户和文件共享,并参考
使用以下格式:
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts/fileServices/shares', variables('storageAccountName') , 'default', parameters('fileShareName') )]"
],
只要试着在
dependsOn
块中指定文件共享的名称,而不是“??”即可。@CharlesXu我这样做了,但不起作用。我收到验证错误部署模板验证失败:'模板资源'sftp container group'无效:无法评估模板语言函数'resourceId':类型'Microsoft.Storage/storageAccounts/fileServices/shares'需要'3'个资源名称参数。
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts/fileServices/shares', variables('storageAccountName') , 'default', parameters('fileShareName') )]"
],