Azure Logic App - обновление подключения API-интерфейса Blob с помощью powershell - PullRequest
0 голосов
/ 29 октября 2018

Я искал в Интернете и просматривал доступные командлеты powershell, чтобы попытаться найти решение этой проблемы, но безуспешно. По сути, у меня есть несколько конвейеров фабрики данных, которые копируют / архивируют входящие файлы, и я буду использовать компонент веб-публикации http, который вызовет приложение логики, которое подключается к контейнеру BLOB-объектов и удалит входящий файл. Проблема, с которой я сталкиваюсь, состоит в том, что у нас есть несколько модулей запусков автоматизации, которые будут использовать ключи доступа Blob каждые X дней. Когда ключи Blob возвращаются в исходное состояние, приложение логики завершается сбоем всякий раз, когда это происходит, потому что соединение создается вручную в самом конструкторе, и я не могу указать строку соединения, которую можно извлечь из Keyvault, в качестве примера. Внутри {Приложения логики> Соединения API> Редактировать соединение API} мы можем вручную обновить строку / ключ соединения, но, очевидно, для автоматизированного процесса мы сможем сделать это программно.

Существует ли командлет powershell или другой метод, который я не вижу, который позволил бы мне обновлять / редактировать соединения API, создаваемые при использовании, и компонент Blob внутри приложения логики?

Любые идеи приветствуются!

1 Ответ

0 голосов
/ 30 октября 2018

После того, как вы повернули свой ключ в учетной записи хранения, вы можете использовать шаблон ARM для обновления API вашего подключения. В этом шаблоне ARM интерфейс подключения создается с внутренней ссылкой на учетную запись хранения, поэтому вам не нужно указывать ключ:

azuredeploy.json файл:

{
  "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "azureBlobConnectionAPIName": {
      "type": "string",
      "metadata": {
        "description": "The name of the connection api to access the azure blob storage."
      }
    },
    "storageAccountName": {
      "type": "string",
      "metadata": {
        "description": "The Storage Account Name."
      }
    }
  },
  "variables": {},
  "resources": [
    {
      "type": "Microsoft.Web/connections",
      "name": "[parameters('azureBlobConnectionAPIName')]",
      "apiVersion": "2016-06-01",
      "location": "[resourceGroup().location]",
      "scale": null,
      "properties": {
        "displayName": "[parameters('azureBlobConnectionAPIName')]",
        "parameterValues": {
          "accountName": "[parameters('storageAccountName')]",
          "accessKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName')),'2015-05-01-preview').key1]"
        },
        "api": {
          "id": "[concat('subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', resourceGroup().location, '/managedApis/azureblob')]"
        }
      },
      "dependsOn": []
    }
  ]
}

azuredeploy.parameters.json file:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "azureBlobConnectionAPIName": {
      "value": "myblobConnectionApiName"
    },
    "storageAccountName": {
      "value": "myStorageAccountName"
    }
  }
}

Вы можете выполнить шаблон руки следующим образом:

Connect-AzureRmAccount

Select-AzureRmSubscription -SubscriptionName <yourSubscriptionName>

New-AzureRmResourceGroupDeployment -Name "ExampleDeployment" -ResourceGroupName "MyResourceGroupName" `
-TemplateFile "D:\Azure\Templates\azuredeploy.json" `
-TemplateParameterFile "D:\Azure\Templates\azuredeploy.parameters.json"

чтобы начать работу с шаблоном ARM и powerhsell, вы можете взглянуть на эту статью:

Развертывание ресурсов с помощью шаблонов Resource Manager и Azure PowerShell

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...