Azure 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"

我需要通过ARM模板存储帐户-->文件共享-->创建装载了文件共享的容器。
依赖项是:

  • 文件共享取决于存储帐户
  • 容器依赖于文件共享
  • 如何获取文件共享的引用ID

    我有以下代码:

        {
            "$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') )]"
    ],