Создание подключения API к хранилищу таблиц Azure через ARM

Я пытаюсь развернуть соединение API с хранилищем таблиц через шаблон ARM, но шаблон ниже возвращает ошибку -

Входные параметры недействительны. См. Подробности для получения дополнительной информации. Подробности: errorCode: ParameterNotDefined. Сообщение: Параметр accountKey не разрешен в соединении, так как он не был определен как параметр соединения при регистрации API.

Я не могу найти никаких документов, относящихся к развертыванию такого соединения API через ARM, только общие документы шаблонов ARM, в которых не приводятся примеры parameterValues для использования, и документы о подключении к хранилищу таблиц, которые, похоже, нацелены на REST API и не указывают parameterVaules, необходимые для развертываний ARM.

Кто-нибудь может сказать мне, какой parameterValues использовать?

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "connectionName": {
            "type": "string",
            "defaultValue": "azuretablestest",
            "metadata": {
                "description": "The name of the connection to the Table Store that the Logic App will use."
            }
        },
        "connectionDisplayName": {
            "type": "string",
            "defaultValue": "AzureTablesTest",
            "metadata": {
                "description": "The display name of the connection to the Table Store that the Logic App will use."
            }
        },
        "locationName": {
            "type": "string",
            "defaultValue": "UK South",
            "metadata": {
                "description": "The Azure location to use when creating resources (eg. North Europe)."
            }
        }
    },
    "variables": {},
    "resources": [
        {
            "comments": "Connection to the Table Store that will hold HMLR Business Gateway Service responses.",
            "type": "Microsoft.Web/connections",
            "name": "[parameters('connectionName')]",
            "apiVersion": "2016-06-01",
            "location": "[parameters('locationName')]",
            "scale": null,
            "properties": {
                "displayName": "[parameters('connectionDisplayName')]",
                "customParameterValues": {},
                "parameterValues": {
                    "accountName": "mystorageaccount",
                    "accessKey": "**********",
                    "tableName": "myTableName"
                },
                "api": {
                    "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', replace(toLower(parameters('locationName')), ' ', ''), '/managedApis/azuretables')]"
                }
            },
            "dependsOn": []
        }
    ]
}

person David Gard    schedule 11.07.2018    source источник
comment
вы жестко закодировали ключ хранилища в шаблоне? также, можете ли вы попробовать эту версию API: 2018-03-01-preview   -  person 4c74356b41    schedule 11.07.2018
comment
@ 4c74356b41 нет, ключ не запрограммирован жестко, и не могли бы вы сказать мне, как вы считаете, что более старая версия API может помочь?   -  person David Gard    schedule 11.07.2018
comment
Wat? 2018 ›2016 также, как вы развертываете, используете ли вы новейшие инструменты? также попробуйте это, чтобы получить соответствующие данные из api: bruttin.com/2017/06/13/deploy-logic-app-with-arm.html   -  person 4c74356b41    schedule 11.07.2018
comment
@ 4c74356b41 О, это было 01.06.2018 в моей голове! Но, тем не менее, я не уверен, как это поможет, потому что проблема в том, что я не знаю, какие parameterValues требуются (хотя попробую, когда буду в офисе).   -  person David Gard    schedule 11.07.2018
comment
@ 4c74356b41 развертывание - AZ cli.   -  person David Gard    schedule 11.07.2018
comment
попробуйте использовать те же имена ключей, что и в документации: Storage Account Name и Shared Storage Key. в качестве альтернативы попробуйте без пробелов. Шаблон arm - это, по сути, json-представление фактического вызова отдыха. еще одна вещь, которую следует рассмотреть, - создать такое же соединение с помощью портала \ powershell \ something и зафиксировать сетевую трассировку и проверить оставшийся вызов. должен дать вам желаемые параметры   -  person 4c74356b41    schedule 11.07.2018
comment
@ 4c74356b41 пробовал, без радости. Те, которые у меня есть в моем вопросе, работают для blobstore API Connections, я как бы ожидал, что они будут такими же.   -  person David Gard    schedule 11.07.2018
comment
да, я подумал, что это для blobstore, и я был удивлен, что они не работают   -  person 4c74356b41    schedule 11.07.2018


Ответы (3)


Значения параметра должны быть следующими:

"parameterValues": {
          "storageaccount": "storageAccount",
          "sharedkey": "accountKey"
        }

И "tableName" не допускается в parameterValues.

Я тестирую его с помощью следующего шаблона ARM, у меня он работает правильно. Если вы не хотите использовать жесткий код с ключом учетной записи хранения, вы можете использовать ListKeys в шаблоне ARM.

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "connectionName": {
      "type": "string",
      "defaultValue": "azuretablestest",
      "metadata": {
        "description": "The name of the connection to the Table Store that the Logic App will use."
      }
    },
    "connectionDisplayName": {
      "type": "string",
      "defaultValue": "AzureTablesTest",
      "metadata": {
        "description": "The display name of the connection to the Table Store that the Logic App will use."
      }
    },
    "locationName": {
      "type": "string",
      "defaultValue": "eastus",
      "metadata": {
        "description": "The Azure location to use when creating resources (eg. North Europe)."
      }
    }
  },
  "variables": {},
  "resources": [
    {
      "comments": "Connection to the Table Store that will hold HMLR Business Gateway Service responses.",
      "type": "Microsoft.Web/connections",
      "name": "[parameters('connectionName')]",
      "apiVersion": "2016-06-01",
      "location": "[parameters('locationName')]",
      "scale": null,
      "properties": {
        "displayName": "[parameters('connectionDisplayName')]",
        "customParameterValues": {},
        "parameterValues": {
          "storageaccount": "accountName",
          "sharedkey": "accountKey"
        },
        "api": {
          "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', replace(toLower(parameters('locationName')), ' ', ''), '/managedApis/azuretables')]"
        }
      },
      "dependsOn": []
    }
  ],
  "outputs": {}
}
person Tom Sun - MSFT    schedule 12.07.2018
comment
Спасибо, эти значения параметров сделали свою работу. Следует отметить, что они чувствительны к регистру, поэтому storageAccount и sharedKey не работают. - person David Gard; 12.07.2018
comment
Да, и на самом деле я не буду жестко кодировать значения параметров, я буду использовать Octopus - просто жесткое кодирование в моем примере для простоты. - person David Gard; 12.07.2018

Значения в принятом ответе не сработали для меня, но это сработало:

"parameterValues": {
          "accountName": "[parameters('storageName')]",
          "accessKey": "[parameters('storageKey')]"
        }
person illremember thistime    schedule 07.11.2018

Пожалуйста, не путайте два разных сценария.

Если вы хотите развернуть коннектор для хранилища BLOB-объектов, вам необходимо использовать эти параметры в блоке parameterValues:

            "parameterValues": {
                "accountName": "[parameters('Template_StorageAccountName')]",
                "accessKey": "[parameters('Template_StorageAccountKey')]"
              }

Если вы развертываете коннектор для хранения таблиц, вам необходимо использовать следующие параметры:

           "parameterValues": {
               "storageaccount": "[parameters('Template_StorageAccountName')]",
               "sharedkey": "[parameters('Template_StorageAccountKey')]"
             }
person Stasys Stankevicius    schedule 26.01.2021