Как сослаться на существующую учетную запись хранения, созданную на портале Azure, в шаблоне ARM

`

{
    "$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
                    }
                }
            ]

        }
    ]
}

`У меня есть учетная запись хранения под названием STGaccount, которую я создал с помощью портала Azure, и я хотел бы использовать шаблон ARM для создания контейнера под названием inputcontainer в этом STGaccount . Каждый раз, когда я пытаюсь это сделать, я получаю сообщение об ошибке, в котором говорится, что учетная запись хранения STGaccount, которую я пытаюсь создать с помощью шаблона ARM, уже существует в группе ресурсов .... Итак, я думаю, что пишу мой шаблон ARM таким образом, что он по-прежнему создает новую учетную запись хранения с именем, аналогичным тому, которое у меня уже есть в группе ресурсов. На самом деле я хочу сослаться на уже существующую учетную запись хранения в моем шаблоне ARM, чтобы мне не нужно было создавать новую. Заранее спасибо, жду вашего ответа


person Olaniran Michael    schedule 11.06.2020    source источник
comment
Пожалуйста, отредактируйте свой вопрос и включите свой шаблон ARM.   -  person Gaurav Mantri    schedule 11.06.2020


Ответы (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"
            }
        }
    ]
}
person Jagrati Modi    schedule 11.06.2020
comment
Большое спасибо @Jagrati. Это сработало. Проблема, с которой я действительно сталкиваюсь, заключается в том, что я хочу создать приложение-функцию с ARM, чтобы шаблон ARM ссылался на уже существующие учетные записи хранения (inputstgdev и outputstgdev), которые я уже параметризовал. Я хотел бы, чтобы шаблон ARM использовал учетную запись хранения inputstgdev в качестве присоединенной учетной записи хранения, чтобы не создавать новую учетную запись хранения. Элемент управления исходным кодом приложения-функции ссылается на Gitrepo. Вот мой шаблон ARM. Каждый раз, когда я запускаю его в конвейере DevOps, он говорит следующее ... - person Olaniran Michael; 12.06.2020
comment
2020-06-11T22: 31: 03.1194796Z ## [error] Ошибка проверки шаблона развертывания: «Ресурс» /subscriptions/bea8ac84-24a4-4e53-9198-e3b0107547d4/resourceGroups/dev-rgp/providers/Microsoft.Web/sites / functionapp / sourcecontrols / web 'в строке' 1 'и столбце' 3069 'не зависит от родительского ресурса' /subscriptions/bea8ac84-24a4-4e53-9198-e3b0107547d4/resourceGroups/dev-rgp/providers/Microsoft.Web/ сайты / functionapp '. Пожалуйста, добавьте зависимость явно, используя синтаксис «dependsOn». Подробнее об использовании см. aka.ms/arm-template/#resources. '. - person Olaniran Michael; 12.06.2020
comment
Я думаю, вы можете задать это как отдельный вопрос и упомянуть там свой сценарий и ошибку! - person Jagrati Modi; 12.06.2020
comment
спасибо Jagrati Modi-AIS. Я сделал это здесь ... Как сослаться на уже существующие учетные записи хранения, созданные порталом Azure, в шаблоне ARM - person Olaniran Michael; 12.06.2020