Forum Discussion

Pascal_KTeam's avatar
Pascal_KTeam
Resolver I
1 year ago

API to retrieve if specific Azure resource type can be deployed in an Azure region

We're building an automated installer application for our Power BI Embedded solution. This installer allows users to select in which Azure region the needed Azure resources are being created. We want to make sure that users can only select Azure Regions where the needed Resources can be created to avoid the installer to fail.
There's a website (https://azure.microsoft.com/en-gb/explore/global-infrastructure/products-by-region/) that shows which resources are available in which region but what we need is an API endpoint to programmatically get the latest information.
Anybody know about such endpoint...?

4 Replies

  • Hi Pascal_KTeam , You can get information of latest resources and location via Resources - List API the response yields following properties: locationresourceTypenameresourceGroupidentityidentity/principalIdplanplan/publisherplan/productplan/nameplan/version, and plan/promotionCode.

    Attached the microsoft documentation below for getting endpoint url. 

    https://learn.microsoft.com/en-us/rest/api/resources/resources/list?view=rest-resources-2021-04-01

     

    Did I answer your question ?. If yes, please mark my post as a solution

     

    Thanks,

    Jai

  • Anonymous's avatar
    Anonymous
    Not applicable

    Thanks for the reply from Jai-Rathinavel  please allow me to provide another insight:

    Hi, Pascal_KTeam 

    The API mentioned by Jai-Rathinavel  is indeed a good solution.

     

    Of course, you might also consider trying the following API:

    GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/resources?api-version=2021-04-01

    This API can retrieve all resources within a resource group. Below is a screenshot from the official documentation:

    For further details, please refer to:

    Resources - List By Resource Group - REST API (Azure Resource Management) | Microsoft Learn
     

    Additionally, there is another API:

    HEAD https://management.azure.com/{resourceId}?api-version=2021-04-01
    

    This one checks whether a resource exists by its ID. Here’s a screenshot from the official documentation:

    For more information, please refer to:

     Resources - Check Existence By Id - REST API (Azure Resource Management) | Microsoft Learn

    Of course, if you have any new discoveries or questions, please feel free to get in touch with us.
     

    Best Regards,

    Leroy Lu

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.


     

  • Since this is an installer app, we don't want to list existing resources (because they don't exist yet and will be deployed by the installer app) but need to find out if the required resource type (for example Azure SQL, App Service, Storage Account) can be deployed in the selected region. For example, the installer fails when a specific region is selected (let's say useast) that doesn't support Azure SQL (just an example...)
    This is a screenshot of the dropdown with Azure Locations. This list is currently hardcoded but we'd like to find a way to get current status of what can or can't be installed in a specific region to populate the dropdown with the latest information

     

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hi, Pascal_KTeam 

      Thank you for your prompt response.

       At present, I have not found a direct API to fulfil your requirements. However, I believe you can try using the following API to check whether it contains the resources you need for your installation:

      HEAD https://management.azure.com/{resourceId}?api-version=2021-04-01

      For further details, please refer to:

      Resources - Check Existence By Id - REST API (Azure Resource Management) | Microsoft Learn

      You can then use simple conditional statements to output the results.

      if ($availability) {
              Write-Host "$($location.displayName) supports $resourceType"
          } else {
              Write-Host "$($location.displayName) does NOT support $resourceType"
          }
      


      Of course, if you have any new discoveries or questions, please feel free to get in touch with us.
       

      Best Regards,

      Leroy Lu

      If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.