如何在ARM模板中引用在Azure门户中创建的现有存储帐户

时间:2020-06-11 12:15:56

标签: azure arm-template azure-storage-account

`

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "InputstorageAccount": {
            "defaultValue": "inputstgdev",
            "type": "String"
        },
        "GitrepoBranch": {
           "type": "string",
           "defaultValue": "master",
           "metadata": {
                "description": "Name of the branch to use when deploying (Default = master)."
            }
        },
        "GitrepoURL": {
           "type": "string",
           "defaultValue": "https://github.com/FBoucher/AzUnzipEverything.git",
           "metadata": {
                "description": "URL to repo (Default = master)."
            }
        },
        "InputcontainerName": {
          "type": "string",
          "defaultValue": "inputcontainer",
          "metadata": {
            "description": "Specifies the name of the blob container."
          }
        },
        "OutputstorageAccount": {
            "defaultValue": "outputstgdev",
            "type": "String"
        },
        "OutputcontainerName": {
          "type": "string",
          "defaultValue": "outputcontainer",
          "metadata": {
            "description": "Specifies the name of the blob container."
          }
        }
    },
    "variables": {},
    "resources": [
        {
            "type": "Microsoft.Storage/storageAccounts/blobServices/containers",
            "apiVersion": "2019-06-01",
            "name": "[concat(parameters('InputstorageAccount'), '/default/', parameters('InputcontainerName'))]",
            "properties": {
                "publicAccess": "None"
            }
        },
        {
            "type": "Microsoft.Storage/storageAccounts/blobServices/containers",
            "apiVersion": "2019-06-01",
            "name": "[concat(parameters('OutputstorageAccount'), '/default/', parameters('OutputcontainerName'))]",
            "properties": {
                "publicAccess": "None"
            }
        },
        {
            "name": "serviceplan",
            "type": "Microsoft.Web/serverfarms",
            "apiVersion": "2018-02-01",
            "location": "[resourceGroup().location]",
            "sku": {
                "name": "F1",
                "capacity": 1
            },
            "tags": {
                "displayName": "serviceplan"
            },
            "properties": {
                "name": "serviceplan"
            }
        },
        {
            "name": "functionapp",
            "type": "Microsoft.Web/sites",
            "apiVersion": "2018-11-01",
            "location": "[resourceGroup().location]",
            "kind": "functionapp",
            "dependsOn": [
                "[resourceId('Microsoft.Web/serverfarms', 'serviceplan')]",
                "[resourceId('Microsoft.Storage/storageAccounts', parameters('InputstorageAccount'))]"
            ],
            "properties": {
                "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', 'serviceplan')]",
                "siteConfig": {
                    "appSettings": [
                        {
                            "name": "AzureWebJobsDashboard",
                            "value": "[concat('DefaultEndpointsProtocol=https;AccountName=', parameters('InputstorageAccount'), ';AccountKey=', listKeys(parameters('InputcontainerName'),'2015-05-01-preview').key1)]"
                        },
                        {
                            "name": "AzureWebJobsStorage",
                            "value": "[concat('DefaultEndpointsProtocol=https;AccountName=', parameters('InputstorageAccount'), ';AccountKey=', listKeys(parameters('InputcontainerName'),'2015-05-01-preview').key1)]"
                        },
                        {
                            "name": "WEBSITE_CONTENTAZUREFILECONNECTIONSTRING",
                            "value": "[concat('DefaultEndpointsProtocol=https;AccountName=', parameters('InputstorageAccount'), ';AccountKey=', listKeys(parameters('InputcontainerName'),'2015-05-01-preview').key1)]"
                        },
                        {
                            "name": "WEBSITE_CONTENTSHARE",
                            "value": "[toLower('functionapp')]"
                        },
                        {
                            "name": "FUNCTIONS_EXTENSION_VERSION",
                            "value": "~2"
                        },
                        {
                            "name": "APPINSIGHTS_INSTRUMENTATIONKEY",
                            "value": "[reference(resourceId('microsoft.insights/components/', 'applicationInsightsName'), '2015-05-01').InstrumentationKey]"
                        },
                        {
                            "name": "FUNCTIONS_WORKER_RUNTIME",
                            "value": "dotnet"
                        }
                    ]
                }
            },
            "resources":[
                {
                    "apiVersion": "2015-08-01",
                    "name": "web",
                    "type": "sourcecontrols",
                    "dependsOn": [
                      "[resourceId('Microsoft.Web/sites/', parameters('InputstorageAccount'))]"
                    ],
                    "properties": {
                        "RepoUrl": "[parameters('GitrepoURL')]",
                        "branch": "[parameters('GitrepoBranch')]",
                        "publishRunbook": true,
                        "IsManualIntegration": true
                    }
                }
            ]

        }
    ]
}

我在Azure门户中创建了一个名为 STGaccount 的存储帐户,并希望使用ARM模板在此中创建一个名为 inputcontainer 的容器STGaccount 。每次尝试这样做时,我都会收到一条错误消息,指出我正在尝试使用ARM模板创建的存储帐户 STGaccount 已存在于资源组中...。所以我想我正在写我的ARM模板仍然可以创建一个新的存储帐户,其名称类似于我在资源组中已经拥有的名称。我实际上想要做的是引用我的AR​​M模板中已经存在的存储帐户,这样我就不必创建一个新的帐户。 预先感谢,我期待着您的答复

1 个答案:

答案 0 :(得分:1)

尝试使用此ARM模板,这将帮助您在现有存储帐户中创建一个容器。

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "storageAccountName": {
            "defaultValue": "STGaccount",
            "type": "String"
        },
        "containerName": {
          "type": "string",
          "defaultValue": "inputcontainer",
          "metadata": {
            "description": "Specifies the name of the blob container."
          }
        }
    },
    "variables": {},
    "resources": [
        {
            "type": "Microsoft.Storage/storageAccounts/blobServices/containers",
            "apiVersion": "2019-06-01",
            "name": "[concat(parameters('storageAccountName'), '/default/', parameters('containerName'))]",
            "properties": {
                "publicAccess": "None"
            }
        }
    ]
}