For a demo Azure Logic App I need to setup an Azure Cognitive Services account for the Computer Vision API.
I set up the resources in Azure using an ARM template so that everything is created in a reproducible way.
My logic app needs a connection to the Cognitive Services, which consists in an API Key and an endpoint.
I was not able to find a template in the Azure Quickstart Templates repo to get this information, so I find it out myself.
Here is an ARM Template where in the outputs section it will display the Keys and the Endpoint (at the end of the template):
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
},
"variables": {
"name": "Test",
"cognitiveservicesid": "[concat(resourceGroup().id,'/providers/','Microsoft.CognitiveServices/accounts/', variables('name'))]"
},
"resources": [
{
"type": "Microsoft.Web/connections",
"apiVersion": "2016-06-01",
"name": "[variables('name')]",
"location": "westeurope",
"properties": {
"api": {
"id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', 'westeurope', '/managedApis/', 'cognitiveservicescomputervision')]"
},
"displayName": "[variables('name')]",
"parameterValues": {
"siteUrl": "[reference(variables('cognitiveservicesid'),'2016-02-01-preview').endpoint]",
"apiKey": "[listKeys(variables('cognitiveservicesid'),'2016-02-01-preview').key1]"
}
},
"dependsOn": [
"[resourceId('Microsoft.CognitiveServices/accounts', variables('name'))]"
]
},
{
"type": "Microsoft.CognitiveServices/accounts",
"sku": {
"name": "S1"
},
"kind": "ComputerVision",
"name": "[variables('name')]",
"apiVersion": "2016-02-01-preview",
"location": "westeurope",
"scale": null,
"properties": {},
"dependsOn": []
}
],
"outputs": {
"cognitivekeys": {
"type": "object",
"value": "[listKeys(variables('cognitiveservicesid'),'2016-02-01-preview')]"
},
"cognitivekey1": {
"type": "string",
"value": "[listKeys(variables('cognitiveservicesid'),'2016-02-01-preview').key1]"
},
"cognitivekey2": {
"type": "string",
"value": "[listKeys(variables('cognitiveservicesid'),'2016-02-01-preview').key2]"
},
"endpoint": {
"type": "string",
"value": "[reference(variables('cognitiveservicesid'),'2016-02-01-preview').endpoint]"
}
}
}
The template also creates a resource “Microsoft.Web/connections” where I use the Key1 and Endpoint from the Cognitive Service Resource.
I have created a GitHub repo where you can see how it works.
Leave a comment