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 Reply