Steps to Clone an Azure Resource - azure

I have a very simple requirement to setup an Azure dev resource on the same subscription as the prod environment. This dev resource would be a 1 to 1 clone of a single Azure Datafactory resource.
Is there a way to simply clone the Azure DataFactory resource on the same subscription and rename it to a "...-dev" version?
(At present, I do not see a simple clone function...)

There is no clone option, but you can export the automation script and re-run that in order to replicate the resource. If you want to automate many similar deployments in Azure, look in to ARM Templates.
Keep in mind data factory has two key aspects:
The actual Data Factory service instance
Your Data Factory pipelines (i.e. the data workflows you write in Data Factory)
Both can be automated and deployed using ARM Templates. (2) above can also be linked to source control where you can then clone and re-use the definition files.

Related

Running Code in Azure Repo from Azure Data Factory

Main problem:
I need to orchestrate the run of Python scripts using an Azure Data Factory pipeline.
What I have tried:
Databricks: The problem with this solution is that it is costly, a little slow (the need to spin up clusters), and it requires that I write my code in a notebook.
Batch activity from ADF: It too is costly and little slow. I don't have to write my code in a notebook, but I have to manually put it in a storage account, which is not great when debugging or updating.
My question:
Is there a way to run code in an Azure repo (or Github repo) directly from the Data Factory? Like the batch activity but instead of reading the code from a storage account read it from the repo itself?
Thanks for your help
Based on the statement in the document "Pipelines and activities in Azure Data Factory", the Azure Git Repos and GitHub Repos are not the supported source data store and sink data store for ADF pipelines. So, it is not possible to directly run the code from the git repository in the ADF pipelines.
However, ADF has the Source control option to allow you to configure a Git repository with either Azure Repos or GitHub. Then you can configure CI/CD pipelines on Azure DevOps to integrate with ADF. The CI/CD pipelines can directly run code from the git repository.
For more details, you can see the document "CI/CD in ADF".

Not able to deleted the linked service referenced in other linked service

I am testing the Azure data factory deployment using ARM Templates and deleting the ADF instance (Data factory pipeline, linked services, data sets, data flow, Trigger etc.) using Azure Data Factory Delete item in-built task in DevOps Pipeline from azure Devops before deploying to UAT and production. All items deleted as per task outcome but there is one linked service which didn't delete.
Giving error= deleting LS_1 Linked Service: the document cannot be deleted since it is referenced by LS_2. basically the LS_2 deleted and it is not showing in the UAT ADF environment, only LS_1 is showing.
please find attached screenshot. please share your valuable suggestion on this how to resolve it.
Thanks

Clone pipelines from one ADF to another

I need to clone a copy of existing pipelines (pipeline count: 10-20) from one subscription to another subscription's (another ADF). Is there any way to do this activity using Azure Devops?
Option1:
Using Git Configuration, you can publish the data factory to the GIT branch. Connect your new data factory to the same repository and build from the branch. Resources, such as pipelines, datasets, and triggers, will carry through. You can delete the pipelines which are not used.
Option2:
You can manually copy the code (JSON code) of each pipeline, dataset, linked service and use the same code in the new data factory. (Use same names for when creating pipelines/datasets/linked services).

How to use the same pipeline in different environments with varying number of customers inside Azure Data Factory?

I have a copy data pipeline in the Azure Data Factory. I need to deploy the same Data Factory instance in multiple environments like DEV, QA, PROD using Release Pipeline.
The pipeline transfer data from Customer Storage Account (Blob Container) to Centralized Data Lake. So, we can say - its a Many to One flow. (Many customers > One Data Lake)
Now, suppose I am in DEV environment & I have 1 demo customer there. I have defined an ADF pipeline for Copy Data. But in prod environment, the number of customers will grow. So, I don't want to create multiple copies of the same pipeline in production Data Factory.
I am looking out for a solution so that I can keep one copy pipeline in Data Factory and deploy/promote the same Data Factory from one environment to the other environment. And this should work even if the number of customers is varying from one to another.
I am also doing CI/CD in Azure Data Factory using Git integration with Azure Repos.
You will have to create additional linked services and datasets which do not exist in a non-production environment to ensure any new "customer" storage account is mapped to the pipeline instance.
With CI/CD routines, you can deliver this in an incremental manner i.e. parameterize you release pipeline with variable groups and update the data factory instance with newer pipelines with new datasets/linked services.

Copy Data Factory selected pipelines from Azure one subscription to other

I have data pipeline in Azure Data Factory which copies the files from AWS S3 Bucket to Azure Data lake gen 2. So in order to build this pipeline I have created various resources like Azure Data Lake Gen 2 Storage, File system in ADLS with specific permissions, Data Factory, Source Dataset which connects to S3 Bucket, Target Dataset which connects to ADLS Gen2 folder.
So all these were created in a Dev subscription in Azure but now I want to deploy these resources in Prod subscription with least manual effort. I tried the ARM template approach which does not allow me to selectively choose the pipeline for migration. It copies everything present on the data factory which I don't want considering I may have different pipelines which are still under development phase and I do not want those to be migrated to Prod. I tried the powershell approach too which also has some limitations.
I would need expert advice on what is the best way to migrate the code from one subscription to other.

Resources