Parameterize Integration Runtime in linked services of Azure data factory - devops

I have configured CI/CD pipelines for Azure Data Factory. I need to have a separate Integration Runtime for some linked services in Azure data factory for QA environment. When I deploy using the ARM templates of DEV Azure Data Factory from adf_publish branch, I am able to provide values for the parameter for only sql server name, key vault not IR. Is there any way I would be able to provide value of Integration Runtime in the linked service.
Thanks in advance
Please click here to see the screenshot

This can be achieved by following the below link from Microsoft https://learn.microsoft.com/en-us/azure/data-factory/continuous-integration-deployment#use-custom-parameters-with-the-resource-manager-template
A new name can be added under the integration runtime arm template.

Use connectVia property of linkedServices in the arm-template-paramerters-definition.json to change integration runtime from CI/CD
"Microsoft.DataFactory/factories/linkedServices": {
"*": {
"properties": {
"typeProperties": {
"baseUrl": "-::string"
},
"connectVia": {
"*": "="
}
}
}
}

You can go to the 'Manage' of your ADF instance and then go to 'Integration runtimes' to create a new Azure IR for your ADF.
You can create an azure IR based on azure or self hosted.
For more information, please have a look of these document:
https://learn.microsoft.com/en-us/azure/data-factory/concepts-integration-runtime
https://learn.microsoft.com/en-us/azure/data-factory/create-self-hosted-integration-runtime

Related

Deploy an Azure Function using azurerm_function_app_function

I have created a new C# Azure Function (EventHub trigger) and added my own logic to handle the events that come in. My issue is that I am not sure how to deploy this new app via terraform. I have created a azurerm_function_app_function resource, and from reading the terraform docs I can see that I can add a file (https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/function_app_function#file) however, for a CSharp project, that's not using csx, I don't see how this can be used.
Is there a way to deploy a C# application using terraform, or should I split these components up, and have terraform create the azurerm_function_app_function and then have a pipeline that uploads my code to the function?

Synapse Devops Deployment failing when using user managed identity configured for different environments

we are facing a challenge as to how to handle the User-Assigned-Managed-Identity with the CICD pipelines in Azure DevOps when the UAMI are not the same across environments?
Dev, Test and Prod have different subscriptions therefore each synapse implementation can have its own Azure subscription and possibly different UAMI configured.
When we publish the templates from synapse it generates a separate credential.json file and it is not part of the parameterization template.
The question is how can we override the parameters when there is a separate credential file.
We tried to update the linked service with resourceid which contains UAMI details so that it becomes part of the parametertemplate file but it is not working.

TFSFieldMapping Access is Denied

Hi I'm am trying to follow Microsoft's guidance to download the TFSFieldMapping file in order that I can make changes (https://learn.microsoft.com/en-us/azure/devops/reference/xml/upload-or-download-the-microsoft-project-mapping-file?view=tfs-2018)
Unfortunately I keep getting the error "Access is denied" when I try to connect to my collection and project
CD C:\Program Files\Common Files\microsoft shared\Team Foundation Server\16.0>TFSFieldMapping.exe download /collection:https://dev.azure.com/(My Company) /teamproject:(My Project)/mappingfile:"C:\Users\danie\Downloads\Test1234.xml"
"Access is denied"
That documentation appears to be for TFS (on-premise). Based on the URL, it looks like you are utilizing Azure DevOps Services. It seems to be a deprecated function, probably because of the way the field templates have been overhauled for work item forms.
Agree with Matt. TFSFieldMapping is only supports TFS 2018 and previous versions. Because their process is Hosted XML Process. Starting from Azure Devops Server 2019 and azure devops service, they use the inherited process. So they doesn't support the TFSFieldMapping.
From the URL in the TFSFieldMapping command, it seems that you are using the Azure Devops Service.
To change the Project field, you can create an inherited process and let the project use it. Then you can perform custom operations (e.g. Custom field) on the inherited process.
You could custom the field in Organization Settings -> Process.
Here is a doc about the detailed steps.
You could also use Rest API to Get and Update the field.
Get Work item field:
GET https://dev.azure.com/{organization}/{project}/_apis/wit/fields?api-version=5.1
Update Work item field:
PATCH https://dev.azure.com/{organization}/{project}/_apis/wit/fields/{fieldNameOrRefName}?api-version=4.1
Note: Corresponding to the inheritance process, you need to inherit first and then customize

How and where to define an environment variable on Azure

I have an ASP.NET MVC web application deployed to Azure. I'm reading my setting using the GetEnvironmentVariable(...) method.
The problem is that I can't find a way to define this environment variable in Azure Portal. Where can I do that?
I don't want to have this stuff in a file. Data that will be there are credentials.
I assume you are using Azure App Service (formerly known as Azure Websites).
To define your own environment variable, click to your site → All Settings → Application settings:
Add an app setting in the "App settings" section:
You can verify the value from the debug console.
Going to https://{your site name}.scm.azurewebsites.net/DebugConsole:
In the new version 2021 go to the resource -> Configuration.
Then click on "New application settings".
Then add "ASPNETCORE_ENVIRONMENT" as key and click on OK then Save.
Note that you must have the appsettings.(environment).json file for .Net Core.
I came across this question when facing the same problem myself. Well, just to give a clearer answer which I found at blog.elmah.io.
All you need to do is:
Include the new appsetting.{env}.json in the publishOptions in file project.json.
Go to Azure Portal and open the web application.
Select application settings.
Add an entry for ASPNETCORE_ENVIRONMENT and set it to whatever you want.
That's it.
I know OP specified in the portal, but command line is more repeatable. To do it using Azure CLI:
az webapp config appsettings set -n $webappname -g $resourceGroupName --settings ConnectionStrings__Default=$connectionString
To set an environment variable ConnectionStrings__Default to the variable $connectionString
(2019 version) Navigate to your AppService in the Azure cloud portal then Configuration.
Actually this solves my problem (which I found yesterday - and it's on Scott Hanselman's blog also):
Best practices for private config data and connection strings in configuration in ASP.NET and Azure
TLDR;
Put settings in a separate file that doesn't go to the repository and are not being deployed to the server. Next define missing variables in app settings like Xiaomin Wu showed.
In these modern times, when publishing from Visual Studio 2019, on the publish page there is a link called "Manage Azure App Service settings". In there you can create and define environment variables that get set when you publish. Very easy if you know where to look!

Teamcity setup with Visual Studio Team Services

I have been trying to integrate Team city with Visual Studio Team Services and keep getting this error, can anyone help.
I have enabled basic authentication in tfs by going to
TFS -> Profile -> basic authentication.
Trying to create a Create Project From URL on TeamCity, Getting error on below setting.
Settings
Repository URL: * https://xxxxxx.visualstudio.com/DefaultCollection/AddBk
Error
Could not create a project by specified URL, URL is not recognized
You need to specify the repository as including the collection but not the project.
So http://mytfs.visualstudio.com/defaultcollection as the repository and then you can specify the $/myTeamProject/[path] in the "root" variable.
http://confluence.jetbrains.com/display/TCD8/Team+Foundation+Server
For credentials I would recommend that you use the server account credentials rather than local user ones. You can get the server credentials through the API or by using the TFS Credential Viewer.

Resources