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
我已经在线搜索并浏览了可用的 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