Azure Recovery Services Protection Container Mapping

This page shows how to write Terraform and Azure Resource Manager for Recovery Services Protection Container Mapping and write them securely.

azurerm_site_recovery_protection_container_mapping (Terraform)

The Protection Container Mapping in Recovery Services can be configured in Terraform with the resource name azurerm_site_recovery_protection_container_mapping. The following sections describe 10 examples of how to use the resource and its parameters.

Example Usage from GitHub

main.tf#L7
resource "azurerm_site_recovery_protection_container_mapping" "this" {
  name                                      = var.name
  recovery_fabric_name                      = var.recovery_fabric_name
  recovery_replication_policy_id            = var.recovery_replication_policy_id
  recovery_source_protection_container_name = var.recovery_source_protection_container_name
  recovery_target_protection_container_id   = var.recovery_target_protection_container_id
main.tf#L7
resource "azurerm_site_recovery_protection_container_mapping" "this" {
  name                                      = var.name
  recovery_fabric_name                      = var.recovery_fabric_name
  recovery_replication_policy_id            = var.recovery_replication_policy_id
  recovery_source_protection_container_name = var.recovery_source_protection_container_name
  recovery_target_protection_container_id   = var.recovery_target_protection_container_id
protection_container.tf#L16
resource "azurerm_site_recovery_protection_container_mapping" "container-mapping" {
  for_each = try(var.settings.protection_container_mapping, {})

  name                                      = each.value.name
  resource_group_name                       = var.resource_group_name
  recovery_vault_name                       = azurerm_recovery_services_vault.asr.name
protection_container.tf#L12
resource "azurerm_site_recovery_protection_container_mapping" "container-mapping" {
  depends_on = [azurerm_recovery_services_vault.asr, azurerm_site_recovery_fabric.recovery_fabric]
  for_each   = try(var.settings.protection_container_mapping, {})

  name                                      = each.value.name
  resource_group_name                       = var.resource_group_name
protection_container.tf#L16
resource "azurerm_site_recovery_protection_container_mapping" "container-mapping" {
  for_each = try(var.settings.protection_container_mapping, {})

  name                                      = each.value.name
  resource_group_name                       = var.resource_group_name
  recovery_vault_name                       = azurerm_recovery_services_vault.asr.name
protection_container.tf#L12
resource "azurerm_site_recovery_protection_container_mapping" "container-mapping" {
  depends_on = [azurerm_recovery_services_vault.asr, azurerm_site_recovery_fabric.recovery_fabric]
  for_each   = try(var.settings.protection_container_mapping, {})

  name                                      = each.value.name
  resource_group_name                       = var.resource_group_name
protection_container.tf#L16
resource "azurerm_site_recovery_protection_container_mapping" "container-mapping" {
  for_each = try(var.settings.protection_container_mapping, {})

  name                                      = each.value.name
  resource_group_name                       = var.resource_group_name
  recovery_vault_name                       = azurerm_recovery_services_vault.asr.name
main.tf#L56
resource "azurerm_site_recovery_protection_container_mapping" "container-mapping" {
  count                                     = signum(var.create ? 1 : 0)
  name                                      = "container-mapping"
  resource_group_name                       = var.resource_group_name
  recovery_vault_name                       = azurerm_recovery_services_vault.vault.*.name[0]
  recovery_fabric_name                      = azurerm_site_recovery_fabric.primary.*.name[0]
main.tf#L33
resource "azurerm_site_recovery_protection_container_mapping" "container-mapping" {
  name                                      = "container-mapping"
  resource_group_name                       = var.secondary_resource_group_name
  recovery_vault_name                       = var.vault_name
  recovery_fabric_name                      = azurerm_site_recovery_fabric.primary.name
  recovery_source_protection_container_name = azurerm_site_recovery_protection_container.primary.name
main.tf#L56
resource "azurerm_site_recovery_protection_container_mapping" "container-mapping" {
  count                                     = signum(var.create ? 1 : 0)
  name                                      = "container-mapping"
  resource_group_name                       = var.resource_group_name
  recovery_vault_name                       = azurerm_recovery_services_vault.vault.*.name[0]
  recovery_fabric_name                      = azurerm_site_recovery_fabric.primary.*.name[0]

Review your Terraform file for Azure best practices

Shisho Cloud, our free checker to make sure your Terraform configuration follows best practices, is available (beta).

Parameters

Explanation in Terraform Registry

Manages a Azure recovery vault protection container mapping. A protection container mapping decides how to translate the protection container when a VM is migrated from one region to another.

Microsoft.RecoveryServices/vaults (Azure Resource Manager)

The vaults in Microsoft.RecoveryServices can be configured in Azure Resource Manager with the resource name Microsoft.RecoveryServices/vaults. The following sections describe how to use the resource and its parameters.

Example Usage from GitHub

diagnostic-setting-recovery-services-vault.json
{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "recoveryServicesName": {
template.json
{
  "contentVersion": "1.0.0.0",
  "parameters": {
    "workbookDisplayName": {
      "type": "string",
template.json
{
  "contentVersion": "1.0.0.0",
  "parameters": {
    "workbookDisplayName": {
      "type": "string",
AzureInventory.json
{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
        "workbookName": {
template.json
{
  "contentVersion": "1.0.0.0",
  "parameters": {
    "workbookDisplayName": {
      "type": "string",
dash.json
{
  "contentVersion": "1.0.0.0",
  "parameters": {
    "workbookDisplayName": {
      "type": "string",
azuredeploy.json
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "logicAppName": {
azuredeploy.json
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "logicAppName": {
azuredeploy.json
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "logicAppName": {
azuredeploy.json
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "logicAppName": {

Parameters

  • apiVersion required - string
  • etag optional - string

    Optional ETag.

  • identity optional
      • type required - string

        The type of managed identity used. The type 'SystemAssigned, UserAssigned' includes both an implicitly created identity and a set of user-assigned identities. The type 'None' will remove any identities.

      • userAssignedIdentities optional - undefined

        The list of user-assigned identities associated with the resource. The user-assigned identity dictionary keys will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.

  • location required - string

    Resource location.

  • name required - string

    The name of the recovery services vault.

  • properties required
      • encryption optional
          • infrastructureEncryption optional - string

            Enabling/Disabling the Double Encryption state.

          • kekIdentity optional
              • userAssignedIdentity optional - string

                The user assigned identity to be used to grant permissions in case the type of identity used is UserAssigned

              • useSystemAssignedIdentity optional - boolean

                Indicate that system assigned identity should be used. Mutually exclusive with 'userAssignedIdentity' field

          • keyVaultProperties optional
              • keyUri optional - string

                The key uri of the Customer Managed Key

      • moveDetails optional
        • upgradeDetails optional
      • sku optional
          • capacity optional - string

            The sku capacity

          • family optional - string

            The sku family

          • name required - string

            The Sku name.

          • size optional - string

            The sku size

          • tier optional - string

            The Sku tier.

      • systemData optional
          • createdAt optional - string

            The timestamp of resource creation (UTC).

          • createdBy optional - string

            The identity that created the resource.

          • createdByType optional - string

            The type of identity that created the resource.

          • lastModifiedAt optional - string

            The type of identity that last modified the resource.

          • lastModifiedBy optional - string

            The identity that last modified the resource.

          • lastModifiedByType optional - string

            The type of identity that last modified the resource.

      • tags optional - string

        Resource tags.

      • type required - string

      Frequently asked questions

      What is Azure Recovery Services Protection Container Mapping?

      Azure Recovery Services Protection Container Mapping is a resource for Recovery Services of Microsoft Azure. Settings can be wrote in Terraform.

      Where can I find the example code for the Azure Recovery Services Protection Container Mapping?

      For Terraform, the kevinhead/azurerm, niveklabs/azurerm and pkhuntia/aztfmod source code examples are useful. See the Terraform Example section for further details.

      For Azure Resource Manager, the bwren/bwren, HasanIftakher/Azure-Monitor and tulpy/Azure source code examples are useful. See the Azure Resource Manager Example section for further details.