Azure DevOps
1389 TopicsSet multiple values in devops library variable
Hi I need to pass multiple values in Library variable in DevOps. Currently my YAML looks like below. Contents: | RepoFolder1\*.txt RepoFolder2\*.csv RepoFolder3\*.py I want to create variable and pass above values to library variable in DevOps like below. Contents: $(Source_Files) Somehow Library variable is plain text, and it is not allowing multiline. How to achieve this. Thanks, Siva.577Views0likes1CommentAzure Event Grid Domain Creation: Overcoming AZ CLI's TLS Parameter Limitations with Workaround
Introduction: The Intersection of Security Policies and DevOps Automation In the modern cloud landscape, organizations increasingly enforce strict security requirements through platform policies. One common requirement is mandating latest TLS versions for example TLS 1.2 across all deployed resources to protect data in transit. While this is an excellent security practice, it can sometimes conflict with the available configuration options in deployment tools, particularly in the Azure CLI. This blog explores a specific scenario that many Azure DevOps teams encounter: how to deploy an Azure Event Grid domain when your organization has a custom policy requiring latest version considering TLS 1.2, but the Azure CLI command doesn't provide a parameter to configure this setting. The Problem: Understanding the Gap Between Policy and Tooling What Is Azure Event Grid? Azure Event Grid is a serverless event routing service that enables event-driven architectures. It manages the routing of events from various sources (like Azure services, custom applications, or SaaS products) to different handlers such as Azure Functions, Logic Apps, or custom webhooks. An Event Grid domain provides a custom topic endpoint that can receive events from multiple sources, offering a way to organize and manage events at scale. The Policy Requirement: Many organizations implement Azure Policy to enforce security standards across their cloud infrastructure. A common policy might look like this: { "policyRule": { "if": { "allOf": [ { "field": "type", "equals": "Microsoft.EventGrid/domains" }, { "anyOf": [ { "field": "Microsoft.EventGrid/domains/minimumTlsVersion", "exists": false }, { "field": "Microsoft.EventGrid/domains/minimumTlsVersion", "notEquals": "1.2" } ] } ] }, "then": { "effect": "deny" } } } This policy blocks the creation of any Event Grid domain that doesn't explicitly set TLS 1.2 as the minimum TLS version. The CLI Limitation: Now, let's examine the Azure CLI command to create an Event Grid domain: az eventgrid domain | Microsoft Learn TLS property is unrecognized with the latest version of AZ CLI version. Current Status of This Limitation: It's worth noting that this limitation has been recognized by the Azure team. There is an official GitHub feature request tracking this issue, which you can find at => Please add TLS support while creation of Azure Event Grid domain through CLI · Issue #31278 · Azure/azure-cli Before implementing this workaround described in this article, I recommend checking the current status of this feature request. The Azure CLI is continuously evolving, and by the time you're reading this, the limitation might have been addressed. However, as of April 2025, this remains a known limitation in the Azure CLI, necessitating the alternative approach outlined below. Why This Matters: This limitation becomes particularly problematic in CI/CD pipelines or Infrastructure as Code (IaC) scenarios where you want to automate the deployment of Event Grid domain resources. Workaround: You can utilize below ARM template and deploy it through AZ CLI in your deployment pipeline as below: Working ARM template: { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "domainName": { "type": "string", "metadata": { "description": "Name of the Event Grid Domain" } }, "location": { "type": "string", "defaultValue": "[resourceGroup().location]", "metadata": { "description": "Azure region for the domain" } } }, "resources": [ { "type": "Microsoft.EventGrid/domains", "apiVersion": "2025-02-15", "name": "[parameters('domainName')]", "location": "[parameters('location')]", "properties": { "minimumTlsVersionAllowed": "1.2" } } ] } Please note I've used latest API version from below official Microsoft documentation : Microsoft.EventGrid/domains - Bicep, ARM template & Terraform AzAPI reference | Microsoft Learn Working AZ CLI command: az deployment group create --resource-group <rg> --template-file <armtemplate.json> --parameters domainName=<event grid domain name> You can store this ARM template in your configuration directory with replacement for Azure CLI command. It explicitly sets TLS 1.2 for Event Grid domains, ensuring security compliance where the CLI lacks this parameter. For example: az deployment group create --resource-group <rg> --template-file ./config/<armtemplate.json> --parameters domainName=<event grid domain name> Disclaimer: The sample scripts provided in this article are provided AS IS without warranty of any kind. The author is not responsible for any issues, damages, or problems that may arise from using these scripts. Users should thoroughly test any implementation in their environment before deploying to production. Azure services and APIs may change over time, which could affect the functionality of the provided scripts. Always refer to the latest Azure documentation for the most up-to-date information. Thanks for reading this blog! I hope you've found this workaround valuable for addressing the Event Grid domain TLS parameter limitation in Azure CLI. 😊127Views4likes0CommentsError BCP036: The property "gateway" expected a value of type "string"
We're getting the error when we're trying to deploy On Premise Data Gateway API Connection: Error BCP036: The property "gateway" expected a value of type "string" but the provided value is of type "object" This was the initial properties file of the API connection we're trying to deploy We then updated the value of the gateway property into a string But got this error "ConnectionGatewayReferenceMissing","message":"The gateway reference connection parameter is missing for the on-premise connection request." Are we missing an attribute? This never happened before. It looks like there have been changes that happened some time this week to Azure API connection deployment492Views0likes1Commentsearch/codesearchresults not able to get more than 2000 results?
when I send a POST API request to "https://MYAZUREINSTANCE/tfs/COLLECTION/MYPROJECT/_apis/search/codesearchresults?api-version=7.0" with this payload { "searchText": "ext:dll", "$skip": 1000, "$top": 1000, "filters": [ { "name": "ProjectFilters", "values": [ "MYPROJECT" ] }, { "name": "RepositoryFilters", "values": [ "$/MYPROJECT" ] } ], "searchFilters": { "ProjectFilters": [ "MYPROJECT" ], "RepositoryFilters": [ "$/MYPROJECT" ] } } the API returns the file data correctly. but I have more than 2000 such files. if I set "$skip": 2000, it returns an error stating that the $skip must be between 0 and 1000.... How do I get the rest of the files?302Views0likes1CommentAzure Devops Pipelines Stage Release
Hi! This is the problem I have! I'm making a process that collects many applications from a repository, which are eventually compiled into docker containers. And after assembly, I install them on various stands (dev, test, and so on). But I can’t select the branch in the releases from which the application will be built. Therefore, I thought that pipelines have such an opportunity at launch. Ability to select a Git branch. But I came across the fact that when I create a pipeline, not a release, my tasks are performed sequentially or with dependencies on each other. In this situation, I cannot restart the same pipeline only with different parameters. Let's say I have an assembly stage, a launch stage for a dev bench, and a launch stage for a test bench. If I start rolling on the dev stand, then I cannot restart the same pipeline and roll on the test stand. Maybe I don't know something? Have you encountered such a problem? Maybe there is a solution (it’s possible in Git Lab).682Views0likes1CommentError 500 logging into ADO or Private Nuget feed
I have a long standing user who in the middle of last week lost his ability to login got ADO or connect to our private feeds getting an 500 Internal Server Error. The situation is complicated slightly in that we share an ADO Subscription amongst multiple tenants so this use is added as an ExternalAzureAD Guest. I dropped and recreated the user both in ADO and his guest account in the ADO joined tenant, waited half an hour and then re-added the user with to ADO, but still the same error. I have done the same with a scratch user and all this works without issue. When the user goes direct to the private feed and logs in, they get the error: {"$id":"1","innerException":null,"message":"TF400813: The user '66faf51b-bf86-6913-bd44-d1b38246c0ea' is not authorized to access this resource.","typeName":"Microsoft.TeamFoundation.Framework.Server.UnauthorizedRequestException, Microsoft.TeamFoundation.Framework.Server","typeKey":"UnauthorizedRequestException","errorCode":0,"eventId":3000} When they try to login to ADO, the get the attached error: We tried this on a different machine and got the same behaviour, so it seems account related. How can I resolve this?704Views0likes1CommentSSH connexion failed from Azure DevOps server 2020 agents to REHL9
Hi everyone ! with our new linux REHL9 servers we couldn't connect to them through SSH Service connexion (configured with Private Key/username/password). When we use SSH task in release pipeline we face this error message [error]Échec de la connexion à la machine distante. Vérifiez les détails de la connexion de service SSH. Erreur : Error: All configured authentication methods failed. On REHL9 server rsa-ssh connexion is deprecated and we need to use at least rsa-sha-256 algorithm. Can we do some configurations on Az DevOps server to allow that ? I mean use rsa-sha2-256 (or 512) for ssh communication. Someone have already face this error ? Thank you for your help !673Views0likes1CommentIonic command task missing
Has any one encountered this error this morning. This was working fine till Friday. Our pipeline has stopped working and not able to find the ionic command task. "A task is missing. The pipeline references a task called 'IonicCommand'. This usually indicates the task isn't installed, and you may be able to install it from the Marketplace: https://marketplace.visualstudio.com. (Task version 1, j)"357Views1like1CommentI am running into an issue trying to install 2022.1 RTW
When I try to upgrade my Azure DevOps 2022.1 RC to Azure DevOps 2022.1 RTW it takes a VERY LONG TIME, and ultimately stops with an error, but the error is not useful "the intallation did not complete sucessfully". yet, when I look at the installer logs I see the following dd_devops_server_20240218201745_001_devops_serverCore: MSI (s) (D4:90) [20:33:50:520]: Product: AzureDevOpsCore2022.1 -- Installation completed successfully. MSI (s) (D4:90) [20:33:50:521]: Windows Installer installed the product. Product Name: AzureDevOpsCore2022.1. Product Version: 19.225.34309. Product Language: 1033. Manufacturer: Microsoft Corporation. Installation success or error status: 0. dd_devops_server_20240218201745_002_devops_serverWeb: MSI (s) (D4:98) [21:15:09:936]: Product: AzureDevOpsWeb2022.1 -- Installation completed successfully. MSI (s) (D4:98) [21:15:09:937]: Windows Installer installed the product. Product Name: AzureDevOpsWeb2022.1. Product Version: 19.225.34309. Product Language: 1033. Manufacturer: Microsoft Corporation. Installation success or error status: 0. Why am I getting an error?313Views0likes1CommentAzure Event Grid CLI Identity Gaps & Workarounds with Python REST and ARM Templates
Azure Event Grid has become a cornerstone service for building event-driven architectures in the cloud. It provides a scalable event routing service that enables reactive programming patterns, connecting event sources to event handlers seamlessly. However, when working with Event Grid through the Azure CLI, developers often encounter a significant limitation: the inability to configure system-assigned managed identities using CLI commands. In this blog post, I'll explore this limitation and provide practical workarounds using Python REST API calls and ARM templates with CLI to ensure your Event Grid deployments can leverage the security benefits of managed identities without being blocked by tooling constraints. Problem Statement: Unlike many other Azure resources that support the --identity or ---assign-identity parameter for enabling system-assigned managed identities, Event Grid's CLI commands lack this capability while creating event subscription for system topic at the moment. This means that while the Azure Portal and other methods support managed identities for Event Grid, you can't configure them directly through the CLI in case of system topic event subscriptions For example you can add managed identity for delivery through portal but not through AZ CLI: If you try to use the following CLI command: az eventgrid system-topic event-subscription create \ --name my-sub \ --system-topic-name my-topic \ --resource-group my-rg \ --endpoint <EH resource id> --endpoint-type eventhub \ --identity systemassigned You'll run into a limitation: The --identity flag is not supported or unrecognized for system topic subscriptions in Azure CLI. Also, --delivery-identity is in preview and under development Current Status of This Limitation: It's worth noting that this limitation has been recognized by the Azure team. There is an official GitHub feature request tracking this issue, which you can find at Use managed identity to command creates an event subscription for an event grid system topic · Issue #26910 · Azure/azure-cli. Before implementing any of the workarounds described in this article, I recommend checking the current status of this feature request. The Azure CLI is continuously evolving, and by the time you're reading this, the limitation might have been addressed. However, as of April 2025, this remains a known limitation in the Azure CLI, necessitating the alternative approaches outlined below. Why This Matters: This limitation becomes particularly problematic in CI/CD pipelines or Infrastructure as Code (IaC) scenarios where you want to automate the deployment of Event Grid resources with managed identities. Solution 1: Using Azure REST API with Python request library: The first approach to overcome this limitation is to use the Azure REST API with Python. This provides the most granular control over your Event Grid resources and allows you to enable system-assigned managed identities programmatically. System Topic Event Subscriptions - Create Or Update - REST API (Azure Event Grid) | Microsoft Learn You can retrieve Azure Entra token using below CLI command: az account get-access-token Sample working code & payload: import requests import json subscription_id = <> resource_group = <> system_topic_name = <> event_subscription_name = <> event_hub_resource_id = <> access_token = <> url = f"https://management.azure.com/subscriptions/{subscription_id}/resourceGroups/{resource_group}/providers/Microsoft.EventGrid/systemTopics/{system_topic_name}/eventSubscriptions/{event_subscription_name}?api-version=2024-12-15-preview" payload = { "identity": { "type": "SystemAssigned" }, "properties": { "topic": "/subscriptions/<>/resourceGroups/<>/providers/Microsoft.EventGrid/systemTopics/<>", "filter": { "includedEventTypes": [ "Microsoft.Storage.BlobCreated", "Microsoft.Storage.BlobDeleted" ], "advancedFilters": [], "enableAdvancedFilteringOnArrays": True }, "labels": [], "eventDeliverySchema": "EventGridSchema", "deliveryWithResourceIdentity": { "identity": { "type": "SystemAssigned" }, "destination": { "endpointType": "EventHub", "properties": { "resourceId": "/subscriptions/<>/resourceGroups/rg-sch/providers/Microsoft.EventHub/namespaces/<>/eventhubs/<>", "deliveryAttributeMappings": [ { "name": "test", "type": "Static", "properties": { "value": "test", "isSecret": False, "sourceField": "" } }, { "name": "id", "type": "Dynamic", "properties": { "value": "abc", "isSecret": False, "sourceField": "data.key" } } ] } } } } } headers = { "Authorization": f"Bearer {access_token}", "Content-Type": "application/json" } response = requests.put(url, headers=headers, data=json.dumps(payload)) if response.status_code in [200, 201]: print("Event subscription created successfully!") Remember that these tokens are sensitive security credentials, so handle them with appropriate care. They should never be exposed in logs, shared repositories, or other insecure locations. Solution 2: Using ARM Templates & deploying it through CLI Another solution is to use Azure Resource Manager (ARM) templates, which fully support system-assigned managed identities for Event Grid. This approach works well in existing IaC workflows. Microsoft.EventGrid/systemTopics/eventSubscriptions - Bicep, ARM template & Terraform AzAPI reference | Microsoft Learn Here's a sample ARM template that creates an Event Grid topic with a system-assigned managed identity: { "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "systemTopicName": { "type": "string", "metadata": { "description": "Name of the existing system topic" } }, "eventSubscriptionName": { "type": "string", "metadata": { "description": "Name of the event subscription to create" } }, "eventHubResourceId": { "type": "string", "metadata": { "description": "Resource ID of the Event Hub to send events to" } }, "includedEventType": { "type": "string", "defaultValue": "Microsoft.Storage.BlobCreated", "metadata": { "description": "Event type to filter on" } } }, "resources": [ { "type": "Microsoft.EventGrid/systemTopics/eventSubscriptions", "apiVersion": "2024-06-01-preview", "name": "[format('{0}/{1}', parameters('systemTopicName'), parameters('eventSubscriptionName'))]", "identity": { "type": "SystemAssigned" }, "properties": { "deliveryWithResourceIdentity": { "destination": { "endpointType": "EventHub", "properties": { "resourceId": "[parameters('eventHubResourceId')]" } }, "identity": { "type": "SystemAssigned" } }, "eventDeliverySchema": "EventGridSchema", "filter": { "includedEventTypes": [ "[parameters('includedEventType')]" ] } } } ] } How to deploy via Azure CLI: az deployment group create \ --resource-group <your-resource-group> \ --template-file eventgridarmtemplate.json \ --parameters \ systemTopicName=<system-topic-name> \ eventSubscriptionName=<event-subscription-name> \ eventHubResourceId="/subscriptions/<sub>/resourceGroups/<rg>/providers/Microsoft.EventHub/namespaces/<namespace>/eventhubs/<hub>" Disclaimer The sample scripts provided in this article are provided AS IS without warranty of any kind. The author is not responsible for any issues, damages, or problems that may arise from using these scripts. Users should thoroughly test any implementation in their environment before deploying to production. Azure services and APIs may change over time, which could affect the functionality of the provided scripts. Always refer to the latest Azure documentation for the most up-to-date information. Thanks for reading this blog! I hope you've found these workarounds valuable for addressing the Event Grid identity parameter limitation in Azure CLI. 😊109Views3likes0Comments