If you are adding an Access Policy to Key Vault for an AAD application/service principal, make sure to use the ObjectId of the service principal, which is a different ObjectId than that of the application.
In its basic form, we need to provide just two pieces of information to the resourceId function: Resource type and resource name. We must add add subscription id and resource group name in situations where the resource is in a different resource group.
When using Workflow Definition Language functions in Logic Apps, you might need a combination of deployment and runtime values. This raises the questions whether to use square brackets or ampersand.
Nested templates are needed when you create related resources via two separate pipelines, ie a servicebus topic and a servicebus topic subscription. The dependency relation between the resources in the different pipelines is achieved via nested templates.
ARM template syntax related to dependency relations: use function resourceId with separate parameters for servicebus, topic and subscription name, not one parameter with a nested reference.
Pre-deployment approvals can’t be configured in your YAML pipeline directly, but must be added via DevOps menu Pipelines/Environments.
Environment variables and pre-deployment approvals can’t be created in a YAML pipeline, but obviously they still can be used in Azure DevOps using variable groups and via Pipelines/Enviroments.
We don’t need a CICD storage account for deployment when you perform a single file deployment, so without using an orchestrator. Also, copying to a CICD storage account is not necessary in the build pipeline (ci-tasks.yml).
When exposing an Azure Function via API Management, the most important thing to remember is that each function has a function key that can be dynamically retrieved via function listsecrets. To make the function deployment work, you will have to add an application Setting AzureWebJobsSecretStorageType=Files to your FunctionApp.
Two important unit tests you might want to perform in your Azure project are related to maps and reusable functions. Either use the Microsoft Test Framework or XUnit for .Net Core.