Azure Resource Manager Plugin
The plugin provides the ability to collect information about Azure resources, also to create, update and delete them.
Installation
-
Copy the below line to
dependencies
section of the projectbuild.gradle
fileExample 1. build.gradleimplementation(group: 'org.vividus', name: 'vividus-plugin-azure-resource-manager', version: '0.5.13')
-
If the project was imported to the IDE before adding new dependency, re-generate the configuration files for the used IDE and then refresh the project in the used IDE.
Resource management
Configuration
Authentication
The authentication process relies on the configuration of the environment variables.
See the official "Azure identity" guide to get more details on what types of authentication could be used.
Azure environment selection
Azure environment
could be optionally specified using global property azure.environment
(sets the environment for all Azure plugins). The default value is AZURE
.
The supported environments are only:
-
AZURE
-
AZURE_CHINA
-
AZURE_GERMANY
-
AZURE_US_GOVERNMENT
Steps
Get information about Azure resource
Gets the info about the specified Azure resource using the declared Azure API version and saves it to a variable. For more information, see the Azure REST API reference.
When I get Azure resource with identifier `$azureResourceIdentifier` using API version `$apiVersion` and save it to $scopes variable `$variableName`
-
$azureResourceIdentifier
- This is a VIVIDUS-only term. It’s used to specify Azure resource uniquely. From the technical perspective it’s a part of Azure resource REST API URL path. For example, if the full Azure resource URL ishttps://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault?api-version=2021-10-01
then the resource identifier will be
resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault
-
$apiVersion
- Azure resource provider API version. Note API versions may vary depending on the resource type. -
$variableName
- The variable name to store the Azure resource info.
When I get Azure resource with identifier `resourceGroups/TEST-RG/providers/Microsoft.KeyVault/vaults/KEY-VAULT-NAME` using API version `2021-10-01` and save it to scenario variable `key-vault-properties`
Get information about Azure resource using Azure resource URL
Gets the info about the specified Azure resource using the declared Azure resource URL and saves it to a variable. For more information, see the Azure REST API reference.
When I get Azure resource with URL `$azureResourceUrl` and save it to $scopes variable `$variableName`
-
$azureResourceURL
- It’s used to specify Azure resource uniquely. For example:https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault?api-version=2021-10-01
or
https://api.loganalytics.io/v1/workspaces/00000000-0000-0000-0000-000000000000/query?query=Syslog
-
$variableName
- The variable name to store the Azure resource info.
When I get Azure resource with URL `https://api.loganalytics.io/v1/workspaces/00000000-0000-0000-0000-000000000000/query?query=Syslog` and save it to scenario variable `logAnalyticsQueryResult`
When I get Azure resource with URL `https://KEY-VAULT-NAME.vault.azure.net/secrets/SECRET-NAME?api-version=7.3` and save it to scenario variable `keyVaultSecret`
Create/Update Azure resource
Creates (if resource doesn’t exist) or updates the specified Azure resource using the declared Azure API version. For more information, see the Azure REST API reference.
When I configure Azure resource with identifier `$azureResourceIdentifier` and body `$azureResourceBody` using API version `$apiVersion`
-
$azureResourceIdentifier
- This is a VIVIDUS-only term. It’s used to specify Azure resource uniquely. From the technical perspective it’s a part of Azure resource REST API URL path. For example, if the full Azure resource URL ishttps://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault?api-version=2021-10-01
then the resource identifier will be
resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault
-
$azureResourceBody
- The Azure resource configuration in JSON format. -
$apiVersion
- Azure resource provider API version. Note API versions may vary depending on the resource type.
When I configure Azure resource with identifier `resourceGroups/TEST-RG/providers/Microsoft.DataFactory/factories/TEST-ADF/linkedservices/test-datalake` and body `
{
"properties": {
"annotations": [],
"type": "AzureBlobFS",
"typeProperties": {
"url": "https://storageaccount.dfs.core.windows.net/"
}
}
}
` using API version `2018-06-01`
Execute Azure operation
Executes the specified Azure operation using the declared Azure API version and saves the result to a variable. For more information, see the Azure REST API reference.
When I execute Azure operation with identifier `$azureOperationIdentifier` using API version `$apiVersion` and body `$azureOperationBody` and save result to $scopes variable `$variableName`
-
$azureOperationIdentifier
- This is a VIVIDUS-only term. It’s used to specify Azure operation uniquely. From the technical perspective it’s a part of Azure operation REST API URL path. For example, if the full Azure operation URL ishttps://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.KeyVault/checkNameAvailability?api-version=2021-10-01
then the operation identifier will be
providers/Microsoft.KeyVault/checkNameAvailability
-
$apiVersion
- Azure resource provider API version. Note API versions may vary depending on the resource type. -
$azureOperationBody
- The Azure operation definition in JSON format. -
$variableName
- The variable name to store the result of Azure operation execution.
When I execute Azure operation with identifier `providers/Microsoft.KeyVault/checkNameAvailability` using API version `2021-10-01` and body `
{
"name": "my-super-vault",
"type": "Microsoft.KeyVault/vaults"
}
` and save result to scenario variable `keyVaultNameAvailabilityCheckResult`
Delete Azure resource
Deletes the specified Azure resource using the declared Azure API version. For more information, see the Azure REST API reference.
When I delete Azure resource with identifier `$azureResourceIdentifier` using API version `$apiVersion`
-
$azureResourceIdentifier
- This is a VIVIDUS-only term. It’s used to specify Azure resource uniquely. From the technical perspective it’s a part of Azure resource REST API URL path. For example, if the full Azure resource URL ishttps://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault?api-version=2021-10-01
then the resource identifier will be
resourceGroups/sample-resource-group/providers/Microsoft.KeyVault/vaults/sample-vault
-
$apiVersion
- Azure resource provider API version. Note API versions may vary depending on the resource type.
When I delete Azure resource with identifier `resourceGroups/TEST-RG/providers/Microsoft.DataFactory/factories/TEST-ADF/linkedservices/test-datalake` using API version `2018-06-01`