How to remove pipelines from ADF? - azure

Whenever I try to delete any pipeline from ADF, I get following error message:
The scope '/subscriptions/<subscription_id>/resourcegroups/<RGName>/providers/Microsoft.DataFactory/datafactories/<ADF_Name>/datapipelines/HivePipe'
cannot perform delete operation
because following scope(s) are locked: '/subscriptions/<subscription_id>/resourceGroups/<Name of Resource Group>'.
Please remove the lock and try again.
Can anyone guide me on how to delete unwanted pipelines using Azure portal?

Open your Azure Data Factory Blade
Click "Author and Deploy"
Expand Pipelines node
Right click and "Delete" the pipeline
Hope this helps.

It's much easier and faster to delete them using powershell. If you have dozens of pipelines, it takes lot of time to do it from the UI:-
Powershell remove pipeline reference

Related

Where to check who run pipeline in Azure Synapse

I need to find info who starts the pipeline (trigered Manual); In the pipeline runs section there is no info about user only about parent pipeline if applicable (Triggered by column).
I miss something or is this info isn't accessible?
EDIT:
More specifically, I would like to know who launched a pipeline that has the status "Triggered by" = "Manual Trigger"
Yes, you are following the process is correct. Checking, who is running the pipeline in Azure Synapse but because of the RBAC permission action issue, you do not have the required permission access.
Please follow the below steps to solve the permission issue:
Open synapse studio ->workspace, expand the Security section on the left and select Access control -> Add a Synapse role assignment.
Check whether your pipelines running or not in azure synapse
Reference:
https://github.com/MicrosoftDocs/azure-docs/blob/main/articles/synapse-analytics/security/how-to-manage-synapse-rbac-role-assignments.md
https://learn.microsoft.com/en-us/azure/data-factory/monitor-visually
https://learn.microsoft.com/en-us/azure/synapse-analytics/security/synapse-workspace-synapse-rbac-roles

Service connection creation operation failed in Azure devops

I'm new to Azure platform. I'm trying free trial and creating a CI/CD setup for docker by following from the below link.
https://www.azuredevopslabs.com/labs/vstsextend/docker/
I have no issue until setting up build definition. I'm getting below issues when doing changes in the release definition.
when i click on "Authorize" button in azure subscription, I'm getting below issue.
Please let me know what mistake i am doing.
well, the text says it all. you are trying to create a connection with a name that already exists. you need to call it something different or rename the existing one
I have created a new service connection and mapped in the release definition.
Click on Manage link
Click on New service connection button
at top right corner
Select Azure resource manager
Once you select the respective option and click Next. Enter valid name and select respective subscription and resource group details.

How do i identify my AzureDevOps id for a pipeline in ADO Pipelines?

So I am attempting to create a downstream project trying to use an artifact stored in azure pipeline artifact to build. I am using the task
DownloadPipelineArtifact#0
https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/download-pipeline-artifact?view=azure-devops
It talks about the need for a pipelineId, not really sure where to find out the id for my other pipeline. Is there any easy way, its supposed to be a ~4 digit number according the documentation.
Thanks
Go to the target pipeline you want -> Edit.
Check the URL. There you have the pipeline id.
.../_apps/hub/ms.vss-build-web.ci-designer-hub?pipelineId=1234&branch=main
I'm sorry I could not find a proper way to refer this without hardcoding.
There is an existing open issues on the pipeline ID.
The doc which you mentioned doesn't provide much information about pipelineID.
As per microsoft
pipelineId appears to be BuildId, and not the build definition id. It
needs the actual instance id of where the artifact is associated. I
was able to make this work by referencing a release variable tied to
the artifact alias. My alias is named "artifacts" and using
$(RELEASE_ARTIFACTS_ARTIFACTS_BUILDID) did the trick. So the format
would be $(RELEASE_ARTIFACTS_<alias>_BUILDID)
If you were trying to consume in a build and not a release pipeline
you would need to somehow get the value of $(Build.BuildId)
I hope as this matures there are plans to make pipeline artifacts
published from a build automatically in release, just like they are
when using the old Build Artifacts. Currently for me that is not
happening so I am forced to manually add this step to my release
pipeline and associate it with the build pipeline.
I was facing the same problem in my azure devops pipelines, I don't know if it applies the same way for you, but here is my solution to do it :
There is the function az pipeline show that gives you the id of a pipeline with its name:
Pipeline_to_find="$1"
pipelineInfo=$(az pipelines show --name "$Pipeline_to_find")
id=$(echo "$pipelineInfo" | python -c "import sys, json; print(json.load(sys.stdin)['id'])")
#export this var to be used in any other task of your pipeline
echo "##vso[task.setvariable variable=id;]$id"
You can get pipeline ID from a pipeline directly from portal.
Go Azure Pipeline
Now select the pipeline you want the ID from and choose “Edit”
Once in EDIT PIPELINE mode, click the dotted menu and select “TRIGGERS”
Now, click on “variables” tab
Here you will see a variable — system.definitionId which is aka PipelineId
There are two IDs you may need to know in Azure Pipelines.
Build Pipeline ID / Definition ID: This is the ID of the Pipeline not a particular run of the pipeline. You can get it via System.DefinitionId
Build Record ID / Build ID: This is the ID for a particular run/record of your pipeline run. You can access it in your pipeline as Build.BuildId
In your case, you will need to use the Build.BuildId since you are trying to get the artifact from a particular run of a pipeline.
Reference: Predefined Azure Pipeline Variables
The following command uses Azure CLI (with DevOps extension) and jq to get the pipeline id in Bash shell:
az pipelines show --name <PIPELINE_NAME> | jq -r .id
If you want to use this inside an Azure Pipeline, you need to use an Azure CLI task and probably install jq on the run agent.
See ultimatom's answer for how to set the id as a variable in the pipeline.

Powershell to download ARM template for Azure data factory Pipeline

i have a requirement to create an ADF pipeline using ARM template in powershell and it has to take inputs/validate few things from existing ADF piepline, for that reason i have to download the ARM tempalte for existing ADF pipeline through powershell. Can we do that for single ADF pipeline or multiple ones?
Note: existing pipeline is not created through ARM deployment, so i cant use "Save-AzureRmDeploymentTemplate" as i dont have deployment name created when pipeline is created through portal..
Any help is really appreciated.
Maybe you want to take a look at Export-AzureRmResourceGroup.
But I guess you can only export the entire resource group which may contain other things. You need put your data factory in a special resource group if you only want to export ADF.
Another way is to export arm template in ADF UI.

Azure Data Factory V2 Copy activity Mapping deployment issue

Consider following test Mapping for Data Factory Copy activity:
"translator": {
"columnMappings": "#json('{\"from\":\"to\"}')",
"type": "TabularTranslator"
}
After deploying pipeline with the help of Set-AzureRmDataFactoryV2Pipeline PowerShell cmdlet we get normally deployed pipeline with the exact columnMappings value as specified in source code. But if you try to be more dynamic:
"translator": {
"columnMappings": "#json(pipeline().parameters.Mapping)",
"type": "TabularTranslator"
}
then after deployment you'll find that translator element is completely missing in pipeline. A workaround - set translator in Azure Portal Data Factory pipeline editing UI (either in Designer or JSON modes - both options work). But if after these manipulations you save pipeline JSON to the file and attempt to deploy it via Set-AzureRmDataFactoryV2Pipeline PowerShell cmdlet - bang, translator becomes missing. Expected result - deployment shall preserve translator element, because Portal JSON Editor preserves it.
We are doing automated deployment of pipelines (as you already figured out - with the help of Set-AzureRmDataFactoryV2Pipeline) and this bug breaks our automated deployment because it requires manual postdeployment pipeline editing on Azure Portal UI.
What may be the reason of such a buggy behavior? Can you suggest an idea how to work around this bug in automated way, or how to fix the code so it can be properly deployed with Set-AzureRmDataFactoryV2Pipeline?
You could try whether "Update-Module -Name AzureRm.DataFactoryV2" helps. It might be caused by that your powershell module is out of date.

Resources