Azure 逻辑应用程序 - 更新 Blob API 通过 powershell 连接

Azure Logic App - Update Blob API Connection through powershell

我已经在线搜索并浏览了可用的 powershell cmdlet 以尝试找到解决此问题的方法,但没有成功。本质上,我有一些 copy/archive 传入文件的数据工厂管道,并将使用 Web http post 组件调用连接到 Blob 容器的逻辑应用程序,并将删除传入文件。我面临的问题是,我们有几个自动化运行手册,每 X 天将保留 Blob 访问密钥。当 Blob 键被重置时,只要发生这种情况,逻辑应用程序就会失败,因为连接是在设计器本身中手动创建的,并且我无法指定可以从 Keyvault 中提取的连接字符串,例如。在 {Logic App > API Connections > Edit API Connection} 中,我们可以手动更新连接 string/key 但显然对于自动化过程,我们应该能够以编程方式执行此操作。

是否有 powershell cmdlet 或我没有看到的其他方法允许我update/edit API 在逻辑应用程序中使用和 Blob 组件时创建的连接?

如有任何见解,我们将不胜感激!

在存储帐户中轮换密钥后,您可以使用 ARM 模板更新连接 API。在此 ARM 模板中,连接 api 是在内部引用存储帐户创建的,因此您不必提供密钥:

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 文件:

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

你可以像这样执行 arm 模板:

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,您可以看看这篇文章:

Deploy resources with Resource Manager templates and Azure PowerShell