La replicación de objetos copia de forma asincrónica los blobs de bloques entre una cuenta de almacenamiento de origen y una cuenta de almacenamiento de destino. Al configurar la replicación de objetos, se crea una directiva de replicación que especifica la cuenta de origen storage y la cuenta de destino. Una directiva de replicación incluye una o más reglas que especifican un contenedor de origen y un contenedor de destino e indican qué blob en bloques del contenedor de origen se replicarán. Para obtener más información sobre la replicación de objetos, vea Replicación de objetos para blobs en bloques.
En este artículo se describe cómo configurar una directiva de replicación de objetos mediante el Azure portal, PowerShell o CLI de Azure. También puede usar una de las bibliotecas cliente del proveedor de recursos de Azure Storage para configurar la replicación de objetos.
Prerrequisitos
Antes de configurar la replicación de objetos, cree las cuentas de origen y destino storage si aún no existen. Las cuentas de origen y destino pueden ser cuentas de almacenamiento de uso general v2 o cuentas de blob en bloques prémium. Para obtener más información, consulte Crear una cuenta de Azure Storage.
La replicación de objetos requiere que el control de versiones de blobs esté habilitado para la cuenta de origen y de destino, y que la fuente de cambios de blobs esté habilitada para la cuenta de origen. Para más información sobre el control de versiones de blobs, consulte Control de versiones de blobs. Para más información sobre la fuente de cambios, consulte Compatibilidad con la fuente de cambios en Azure Blob Storage. Tenga en cuenta que habilitar estas características puede dar lugar a costos adicionales. Para habilitar los requisitos previos de la replicación de objetos (control de versiones de blobs y fuente de cambios) se requiere el permiso Microsoft.Storage/storageAccounts/blobServices/write. Para saber más sobre permisos, consulta Azure permissions for Storage. Una vez creada una política de Replicación de Objetos, se esperan operaciones de replicación de datos desde el origen hasta el destino. Por tanto, conceder este permiso debe entenderse como conceder permiso para copiar datos entre las cuentas de origen y destino.
Para configurar una directiva de replicación de objetos para una cuenta de storage, debe tener asignado el rol Azure Resource Manager Contributor, con ámbito al nivel de la cuenta de storage o superior. Para obtener más información, consulte roles integrados de Azure en la documentación de control de acceso basado en roles de Azure (Azure RBAC).
La replicación de objetos aún no se admite en las cuentas que tienen habilitado un espacio de nombres jerárquico.
Si tiene acceso tanto a las cuentas de almacenamiento de origen como de destino, puede configurar la directiva de replicación de objetos en ambas cuentas. En los ejemplos siguientes se muestra cómo configurar la replicación de objetos con el Azure portal, PowerShell o CLI de Azure.
Al configurar la replicación de objetos en la Azure portal, solo tiene que configurar la directiva en la cuenta de origen. El Azure portal crea automáticamente la directiva en la cuenta de destino después de configurarla para la cuenta de origen.
Para crear una directiva de replicación en el Azure portal, siga estos pasos:
Acceda a la cuenta de almacenamiento de origen en el portal de Azure.
En Data management, seleccione Object replication.
Seleccione Crear reglas de replicación.
Seleccione la suscripción de destino y la cuenta de almacenamiento.
En la sección Detalles del par contenedor , seleccione un contenedor de origen de la cuenta de origen y un contenedor de destino de la cuenta de destino. Puede crear hasta 10 pares de contenedores por directiva de replicación desde el Azure portal. Para configurar más de 10 pares de contenedores (hasta 1000), consulte Configurar la replicación de objetos mediante un archivo JSON.
En la imagen siguiente se muestra un conjunto de reglas de replicación.
Si lo desea, especifique uno o varios filtros para copiar solo blobs que coincidan con un patrón de prefijo. Por ejemplo, si especifica un prefijo b, solo se replican los blobs cuyo nombre comience por esa letra. Puede especificar un directorio virtual como parte del prefijo. Puede agregar un máximo de hasta cinco coincidencias de prefijo. La cadena de prefijo no admite caracteres comodín.
En la imagen siguiente se muestran filtros que restringen los blobs que se copian como parte de una regla de replicación.
De forma predeterminada, el ámbito de copia se establece para copiar solo nuevos objetos. Para copiar todos los objetos del contenedor o copiar objetos a partir de una fecha y hora personalizados, seleccione el vínculo cambiar y configure el ámbito de copia para el par de contenedores.
En la imagen siguiente se muestra un ámbito de copia personalizado que copia objetos de una fecha y hora especificadas en adelante.
Seleccione Guardar y aplicar para crear la directiva de replicación e iniciar la replicación de datos.
Después de configurar la replicación de objetos, el Azure portal muestra la directiva de replicación y las reglas, como se muestra en la siguiente imagen.
Para crear una directiva de replicación con PowerShell, instale primero la versión 2.5.0 o posterior del módulo Az.Storage PowerShell. Para obtener más información sobre cómo instalar Azure PowerShell, consulte Install Azure PowerShell with PowerShellGet.
En el ejemplo siguiente se muestra cómo crear primero una directiva de replicación en la cuenta de destino y, a continuación, en la cuenta de origen. No olvide reemplazar los valores entre corchetes angulares por sus propios valores:
# Sign in to your Azure account.
Connect-AzAccount
# Set variables.
$rgName = "<resource-group>"
$srcAccountName = "<source-storage-account>"
$destAccountName = "<destination-storage-account>"
$srcContainerName1 = "source-container1"
$destContainerName1 = "dest-container1"
$srcContainerName2 = "source-container2"
$destContainerName2 = "dest-container2"
# Enable blob versioning and change feed on the source account.
Update-AzStorageBlobServiceProperty -ResourceGroupName $rgName `
-StorageAccountName $srcAccountName `
-EnableChangeFeed $true `
-IsVersioningEnabled $true
# Enable blob versioning on the destination account.
Update-AzStorageBlobServiceProperty -ResourceGroupName $rgName `
-StorageAccountName $destAccountName `
-IsVersioningEnabled $true
# List the service properties for both accounts.
Get-AzStorageBlobServiceProperty -ResourceGroupName $rgName `
-StorageAccountName $srcAccountName
Get-AzStorageBlobServiceProperty -ResourceGroupName $rgName `
-StorageAccountName $destAccountName
# Create containers in the source and destination accounts.
Get-AzStorageAccount -ResourceGroupName $rgName -StorageAccountName $srcAccountName |
New-AzStorageContainer $srcContainerName1
Get-AzStorageAccount -ResourceGroupName $rgName -StorageAccountName $destAccountName |
New-AzStorageContainer $destContainerName1
Get-AzStorageAccount -ResourceGroupName $rgName -StorageAccountName $srcAccountName |
New-AzStorageContainer $srcContainerName2
Get-AzStorageAccount -ResourceGroupName $rgName -StorageAccountName $destAccountName |
New-AzStorageContainer $destContainerName2
# Define replication rules for each container.
$rule1 = New-AzStorageObjectReplicationPolicyRule -SourceContainer $srcContainerName1 `
-DestinationContainer $destContainerName1 `
-PrefixMatch b
$rule2 = New-AzStorageObjectReplicationPolicyRule -SourceContainer $srcContainerName2 `
-DestinationContainer $destContainerName2 `
-MinCreationTime 2021-09-01T00:00:00Z
# Create the replication policy on the destination account.
$destPolicy = Set-AzStorageObjectReplicationPolicy -ResourceGroupName $rgName `
-StorageAccountName $destAccountName `
-PolicyId default `
-SourceAccount $srcAccountName `
-Rule $rule1,$rule2
# Create the same policy on the source account.
Set-AzStorageObjectReplicationPolicy -ResourceGroupName $rgName `
-StorageAccountName $srcAccountName `
-InputObject $destPolicy
Para crear una directiva de replicación con CLI de Azure, instale primero CLI de Azure versión 2.11.1 o posterior. Para obtener más información, consulte Comenzar con CLI de Azure.
A continuación, habilite el control de versiones de blobs en las cuentas de almacenamiento de origen y de destino, y habilite la fuente de cambios en la cuenta de origen, llamando al comando az storage account blob-service-properties update. No olvide reemplazar los valores entre corchetes angulares por sus propios valores:
az login
az storage account blob-service-properties update \
--resource-group <resource-group> \
--account-name <source-storage-account> \
--enable-versioning \
--enable-change-feed
az storage account blob-service-properties update \
--resource-group <resource-group> \
--account-name <dest-storage-account> \
--enable-versioning
Cree los contenedores de origen y destino en sus respectivas cuentas de storage.
az storage container create \
--account-name <source-storage-account> \
--name source-container-1 \
--auth-mode login
az storage container create \
--account-name <source-storage-account> \
--name source-container-2 \
--auth-mode login
az storage container create \
--account-name <dest-storage-account> \
--name dest-container-1 \
--auth-mode login
az storage container create \
--account-name <dest-storage-account> \
--name dest-container-2 \
--auth-mode login
Cree una nueva directiva de replicación y una regla asociada en la cuenta de destino llamando al comando az storage account or-policy create.
az storage account or-policy create \
--account-name <dest-storage-account> \
--resource-group <resource-group> \
--source-account <source-storage-account> \
--destination-account <dest-storage-account> \
--source-container source-container-1 \
--destination-container dest-container-1 \
--min-creation-time '2021-09-01T00:00:00Z' \
--prefix-match a
Azure Storage establece el identificador de directiva para la nueva directiva cuando se crea. Para agregar reglas adicionales a la directiva, llame a az storage account or-policy rule add y proporcione el identificador de la directiva.
az storage account or-policy rule add \
--account-name <dest-storage-account> \
--resource-group <resource-group> \
--source-container source-container-2 \
--destination-container dest-container-2 \
--policy-id <policy-id> \
--prefix-match b
A continuación, cree la política en la cuenta de origen mediante el identificador de política.
az storage account or-policy show \
--resource-group <resource-group> \
--account-name <dest-storage-account> \
--policy-id <policy-id> |
az storage account or-policy create --resource-group <resource-group> \
--account-name <source-storage-account> \
--policy "@-"
Si no tiene permisos para la cuenta de origen storage o si desea usar más de 10 pares de contenedores, puede configurar la replicación de objetos en la cuenta de destino y proporcionar un archivo JSON que contenga la definición de directiva a otro usuario para crear la misma directiva en la cuenta de origen. Por ejemplo, si la cuenta de origen está en un inquilino de Microsoft Entra diferente de la cuenta de destino, puede usar este enfoque para configurar la replicación de objetos.
Para obtener información sobre cómo crear un archivo JSON que contenga la definición de directiva, consulte Archivo de definición de directiva.
Nota:
La replicación de objetos entre inquilinos se permite de forma predeterminada para una cuenta de almacenamiento. Para evitar la replicación entre inquilinos, puede establecer la propiedad AllowCrossTenantReplication para impedir la replicación de objetos entre inquilinos para las cuentas de storage. Para obtener más información, consulte Impedir la replicación de objetos en los inquilinos de Microsoft Entra.
Los ejemplos de esta sección muestran cómo configurar la directiva de replicación de objetos en la cuenta de destino y, a continuación, obtener el archivo JSON de esa directiva que otro usuario puede usar para configurar la directiva en la cuenta de origen.
Para configurar la replicación de objetos en la cuenta de destino con un archivo JSON en el Azure portal, siga estos pasos:
Cree un archivo JSON local que defina la directiva de replicación en la cuenta de destino. Establezca el campo policyId en default para que Azure Storage defina el identificador de directiva.
Una manera sencilla de crear un archivo JSON que defina una directiva de replicación es crear primero una directiva de replicación de prueba entre dos cuentas de storage en el Azure portal. Después, puede descargar las reglas de replicación y modificar el archivo JSON según sea necesario.
Vaya a la configuración de replicación de objetos para la cuenta de destino en el portal de Azure.
Seleccione Cargar reglas de replicación.
Cargue el archivo JSON. El Azure portal muestra la directiva y las reglas que se crearán, como se muestra en la siguiente imagen.
Seleccione Cargar para crear la directiva de replicación en la cuenta de destino.
A continuación, puede descargar un archivo JSON que contenga la definición de directiva que puede proporcionar a otro usuario para configurar la cuenta de origen. Para descargar este archivo JSON, siga estos pasos:
Vaya a la configuración de replicación de objetos para la cuenta de destino en el portal de Azure.
Seleccione el botón Más situado junto a la directiva que desea descargar y, a continuación, seleccione Descargar reglas, como se muestra en la siguiente imagen.
Guarde el archivo JSON en el equipo local para compartirlo con otro usuario para configurar la directiva en la cuenta de origen.
El archivo JSON descargado incluye el identificador de directiva que Azure Storage creó para la directiva en la cuenta de destino. Debe usar el mismo identificador de directiva para configurar la replicación de objetos en la cuenta de origen.
Tenga en cuenta que cargar un archivo JSON para crear una directiva de replicación para la cuenta de destino a través de la Azure portal no crea automáticamente la misma directiva en la cuenta de origen. Otro usuario debe crear la directiva en la cuenta de origen antes de que Azure Storage comience a replicar objetos.
Para descargar un archivo JSON que contiene la definición de directiva de replicación para la cuenta de destino de PowerShell, llame al comando Get-AzStorageObjectReplicationPolicy para devolver la directiva. A continuación, convierta la directiva en JSON y guárdela como un archivo local, como se muestra en el ejemplo siguiente. Recuerde reemplazar los valores entre corchetes angulares y la ruta de acceso del archivo por sus propios valores:
$rgName = "<resource-group>"
$destAccountName = "<destination-storage-account>"
$destPolicy = Get-AzStorageObjectReplicationPolicy -ResourceGroupName $rgName `
-StorageAccountName $destAccountName
$destPolicy | ConvertTo-Json -Depth 5 > c:\temp\json.txt
Para usar el archivo JSON para definir la directiva de replicación en la cuenta de origen con PowerShell, recupere el archivo local y convierta de JSON a un objeto. A continuación, llame al comando Set-AzStorageObjectReplicationPolicy para configurar la directiva en la cuenta de origen, como se muestra en el ejemplo siguiente.
Al ejecutar el ejemplo, asegúrese de establecer el -ResourceGroupName parámetro en el grupo de recursos de la cuenta de origen y el -StorageAccountName parámetro en el nombre de la cuenta de origen. Además, recuerde reemplazar los valores entre corchetes angulares y la ruta de acceso del archivo por sus propios valores:
$object = Get-Content -Path C:\temp\json.txt | ConvertFrom-Json
Set-AzStorageObjectReplicationPolicy -ResourceGroupName $rgName `
-StorageAccountName $srcAccountName `
-PolicyId $object.PolicyId `
-SourceAccount $object.SourceAccount `
-DestinationAccount $object.DestinationAccount `
-Rule $object.Rules
Para escribir la definición de la directiva de replicación para la cuenta de destino en un archivo JSON desde CLI de Azure, llame al comando az storage account or-policy show y genere el resultado en un archivo.
En el ejemplo siguiente se escribe la definición de directiva en un archivo JSON denominado policy.json. Recuerde reemplazar los valores entre corchetes angulares y la ruta de acceso del archivo por sus propios valores:
az storage account or-policy show \
--account-name <dest-account-name> \
--policy-id <policy-id> > policy.json
Para usar el archivo JSON para configurar la directiva de replicación en la cuenta de origen con CLI de Azure, llame al comando az storage account or-policy create y haga referencia al archivo policy.json. Recuerde reemplazar los valores entre corchetes angulares y la ruta de acceso del archivo por sus propios valores:
az storage account or-policy create \
-resource-group <resource-group> \
--source-account <source-account-name> \
--policy @policy.json
La replicación de objetos ahora admite la copia de etiquetas de índice de blobs de origen a blobs de destino. Puede configurar esta funcionalidad como parte de una regla de replicación nueva o existente.
Importante
La replicación de etiquetas se encuentra actualmente en versión preliminar.
Consulte los términos Supplementales de uso para las versiones preliminares de Microsoft Azure para conocer los términos legales que se aplican a las características de Azure que se encuentran en versión beta, versión preliminar o, de lo contrario, aún no se han publicado en disponibilidad general.
Prerrequisitos
La cuenta de almacenamiento de origen debe estar registrada para la característica en versión preliminar "EnableObjectReplicationTags" antes de activar la replicación de etiquetas. Registre la característica de vista previa en el Azure portal siguiendo los pasos descritos en la documentación de Azure Resource Manager versión preliminar.
La replicación de etiquetas se puede habilitar en directivas de replicación de objetos nuevas y existentes. Cualquier cambio en un blob de origen o en las etiquetas de índice desencadenará la replicación de etiquetas.
Habilite la replicación de etiquetas desde la hoja Replicación de objetos al crear una regla o actualizar las reglas existentes mediante la columna Replicación de etiquetas.
Para configurar la replicación de etiquetas de índice de blobs al crear una regla, siga estos pasos:
- Acceda a la cuenta de almacenamiento de origen en el portal de Azure.
- En Data management, seleccione Object replication.
- Seleccione Crear reglas de replicación.
- Seleccione Habilitar replicación de etiquetas y, por último, seleccione Guardar y aplicar para configurar la replicación de las etiquetas de índice de blobs.
Para configurar la replicación de etiquetas de índice de blobs para reglas existentes, siga estos pasos:
- Vaya a la pestaña Cuentas en la página Replicación de objetos.
- Seleccione la opción Habilitar en la columna Replicación de etiquetas en la tabla Objetos copiados de esta cuenta y seleccione Aceptar.
- El estado de la columna de replicación de etiquetas contra una regla ahora muestra Habilitado.
Para deshabilitar la replicación de etiquetas de índice de blobs para las reglas existentes, siga estos pasos:
- Vaya a la pestaña Cuentas en la página Replicación de objetos.
- Seleccione una regla existente y seleccione Editar reglas del menú '…'.
- Anule la selección de la opción Habilitar replicación de etiquetas y, por último, seleccione Guardar y aplicar para deshabilitar la replicación de etiquetas de índice de blobs.
Para obtener más información sobre cómo instalar Azure PowerShell, consulte Install Azure PowerShell with PowerShellGet.
Habilitar la replicación de etiquetas en una nueva política: El siguiente ejemplo muestra cómo crear una política de replicación con la replicación de etiquetas de índice blob activada, primero en la cuenta de destino y luego en la cuenta de origen. Recuerde reemplazar los valores entre corchetes angulares por sus propios valores.
# Sign in to your Azure account.
Connect-AzAccount
# Set variables.
$rgName = "<resource-group>"
$srcAccountName = "<source-storage-account>"
$destAccountName = "<destination-storage-account>"
$srcContainerName = "source-container"
$destContainerName = "dest-container"
# Build full resource IDs for the source and destination accounts.
$subId = (Get-AzContext).Subscription.Id
$srcId = "/subscriptions/$subId/resourceGroups/$rgName/providers/Microsoft.Storage/storageAccounts/$srcAccountName"
$destId = "/subscriptions/$subId/resourceGroups/$rgName/providers/Microsoft.Storage/storageAccounts/$destAccountName"
# Define the replication rule for the container pair.
$rule = New-AzStorageObjectReplicationPolicyRule `
-SourceContainer $srcContainerName `
-DestinationContainer $destContainerName
# Create the policy on the destination account with tags replication enabled.
$destPolicy = Set-AzStorageObjectReplicationPolicy `
-ResourceGroupName $rgName `
-StorageAccountName $destAccountName `
-PolicyId default `
-SourceAccount $srcId `
-DestinationAccount $destId `
-Rule $rule `
-EnableTagsReplication $true
# Apply the same policy to the source account.
Set-AzStorageObjectReplicationPolicy `
-ResourceGroupName $rgName `
-StorageAccountName $srcAccountName `
-InputObject $destPolicy
Habilitar la replicación de etiquetas en una política existente El siguiente ejemplo muestra cómo habilitar la replicación de etiquetas en una política que ya existe. Recupera la política de la cuenta de destino, la vuelve a aplicar con la replicación de etiquetas activada y luego aplica la política actualizada a la cuenta de origen.
# Set variables.
$rgName = "<resource-group>"
$srcAccountName = "<source-storage-account>"
$destAccountName = "<destination-storage-account>"
$policyId = "<policy-id>"
# Get the existing policy from the destination account.
# Its SourceAccount and DestinationAccount properties are returned as resource IDs.
$existing = Get-AzStorageObjectReplicationPolicy `
-ResourceGroupName $rgName `
-StorageAccountName $destAccountName `
-PolicyId $policyId
# Re-apply the policy on the destination account with tags replication enabled.
$updated = Set-AzStorageObjectReplicationPolicy `
-ResourceGroupName $rgName `
-StorageAccountName $destAccountName `
-PolicyId $existing.PolicyId `
-SourceAccount $existing.SourceAccount `
-DestinationAccount $existing.DestinationAccount `
-Rule $existing.Rules `
-EnableTagsReplication $true
# Apply the updated policy to the source account.
Set-AzStorageObjectReplicationPolicy `
-ResourceGroupName $rgName `
-StorageAccountName $srcAccountName `
-InputObject $updated
Verifica que la replicación de etiquetas esté habilitada
El siguiente ejemplo devuelve el estado de replicación de etiquetas de una política. La propiedad Enabled devuelve True cuando la replicación de etiquetas está activada.
# Set variables.
$rgName = "<resource-group>"
$srcAccountName = "<source-storage-account>"
$policyId = "<policy-id>"
# Get the tags replication status from the source account.
(Get-AzStorageObjectReplicationPolicy `
-ResourceGroupName $rgName `
-StorageAccountName $srcAccountName `
-PolicyId $policyId).TagsReplication
Desactivar la replicación de etiquetas
El siguiente ejemplo muestra cómo desactivar la replicación de etiquetas en una política existente volviéndola a aplicar con -EnableTagsReplication $false.
# Set variables.
$rgName = "<resource-group>"
$srcAccountName = "<source-storage-account>"
$destAccountName = "<destination-storage-account>"
$policyId = "<policy-id>"
# Get the existing policy from the destination account.
$existing = Get-AzStorageObjectReplicationPolicy `
-ResourceGroupName $rgName `
-StorageAccountName $destAccountName `
-PolicyId $policyId
# Re-apply the policy on the destination account with tags replication disabled.
$updated = Set-AzStorageObjectReplicationPolicy `
-ResourceGroupName $rgName `
-StorageAccountName $destAccountName `
-PolicyId $existing.PolicyId `
-SourceAccount $existing.SourceAccount `
-DestinationAccount $existing.DestinationAccount `
-Rule $existing.Rules `
-EnableTagsReplication $false
# Apply the updated policy to the source account.
Set-AzStorageObjectReplicationPolicy `
-ResourceGroupName $rgName `
-StorageAccountName $srcAccountName `
-InputObject $updated
Para más información, consulte la documentación de la CLI
Habilitar la replicación de etiquetas en una nueva política: Añade el --tags-replication true parámetro cuando crees la política en la cuenta de destino y luego copia la definición de la política a la cuenta de origen.
az storage account or-policy create \
--resource-group <resource-group> \
--account-name <dest-storage-account> \
--source-account <source-storage-account> \
--destination-account <dest-storage-account> \
--source-container <source-container> \
--destination-container <dest-container> \
--tags-replication true
az storage account or-policy show \
--resource-group <resource-group> \
--account-name <dest-storage-account> \
--policy-id <policy-id> |
az storage account or-policy create \
--resource-group <resource-group> \
--account-name <source-storage-account> \
--policy "@-"
Habilitar la replicación de etiquetas en una política existente: Utiliza el ID de política compartida para actualizar el indicador en ambas cuentas.
az storage account or-policy update \
--resource-group <resource-group> \
--account-name <source-storage-account> \
--policy-id <policy-id> \
--source-account <source-storage-account> \
--destination-account <dest-storage-account> \
--tags-replication true
az storage account or-policy update \
--resource-group <resource-group> \
--account-name <dest-storage-account> \
--policy-id <policy-id> \
--source-account <source-storage-account> \
--destination-account <dest-storage-account> \
--tags-replication true
Verifica que la replicación de etiquetas esté habilitada: consulta la propiedad tagsReplication.enabled en cada cuenta. Un valor de retorno de true confirma que esta función está habilitada.
az storage account or-policy show \
--resource-group <resource-group> \
--account-name <source-storage-account> \
--policy-id <policy-id> \
--query "tagsReplication.enabled" \
--output tsv
az storage account or-policy show \
--resource-group <resource-group> \
--account-name <dest-storage-account> \
--policy-id <policy-id> \
--query "tagsReplication.enabled" \
--output tsv
Desactivar la replicación de etiquetas: Configure --tags-replication false tanto en la cuenta de origen como en la de destino usando el ID de política compartido.
az storage account or-policy update \
--resource-group <resource-group> \
--account-name <source-storage-account> \
--policy-id <policy-id> \
--source-account <source-storage-account> \
--destination-account <dest-storage-account> \
--tags-replication false
az storage account or-policy update \
--resource-group <resource-group> \
--account-name <dest-storage-account> \
--policy-id <policy-id> \
--source-account <source-storage-account> \
--destination-account <dest-storage-account> \
--tags-replication false
Los usuarios pueden usar las API REST existentes: Directivas de replicación de objetos: crear o actualizar la API REST para configurar directivas para replicar etiquetas establecidas en los blobs.
Agregue la línea “tagsReplication”: { “enabled”: true } siguiente al crear o actualizar las reglas de replicación en la cuenta de origen.
La replicación de etiquetas se admite en la versión de API 2022-05-01 y versiones posteriores. Puede agregar el nuevo campo tagsReplication a la directiva de replicación.
Sample:
{
"sourceAccount": "<source-account-name>",
"destinationAccount": "<destination-account-name>",
"tagsReplication":
{
"enabled": true
},
"rules":
[
{
"ruleId": "<rule-id>",
"sourceContainer": "<source-container-name>",
"destinationContainer": "<destination-container-name>"
}
]
}
Habilitación de métricas de replicación
Puede habilitar las métricas de replicación en directivas de replicación de objetos nuevas y existentes. Puede tardar unos minutos en empezar a observar las métricas.
Puede habilitar las métricas utilizando la hoja Replicación de objetos desde la nueva columna Métricas o editando la sección Editar reglas de una directiva desde "…" en la fila de la directiva OR.
La habilitación de métricas se admite en la versión de API 2021-08-01 y versiones posteriores. Puede agregar el nuevo campo de métricas a la directiva de replicación. Sample:
{
"sourceAccount": "<source-account-name>",
"destinationAccount": "<destination-account-name>",
"metrics":
{
"enabled": true
},
"rules":
[
{
"ruleId": "<rule-id>",
"sourceContainer": "<source-container-name>",
"destinationContainer": "<destination-container-name>"
}
]
}
Si habilita métricas en una directiva configurada para copiar datos existentes, es posible que observe un aumento al principio mientras la directiva trabaja en la fase inicial de enumeración. Una vez completado, se iniciará la replicación.
Visualización de métricas de replicación
Puede hacer clic en el vínculo Ver de la columna Métricas para ver las métricas de supervisión.
Para ver aún más las métricas en Azure Monitor, haga clic en el gráfico de una métrica. Esto le llevará a la vista de Azure Monitor Métricas con mayores capacidades de filtrado.
Comprobación del estado de replicación de un blob
Puede comprobar el estado de replicación de un blob en la cuenta de origen mediante el Azure portal, PowerShell o CLI de Azure. Las propiedades de replicación de objetos no se rellenan hasta que la replicación se haya completado o fallado.
Para comprobar el estado de replicación de un blob en la cuenta de origen de la Azure portal, siga estos pasos:
- Vaya a la cuenta de origen en el Azure portal.
- Busque el contenedor que incluye el blob de origen.
- Seleccione el blob para mostrar sus propiedades. Si el blob se ha replicado correctamente, verá en la sección Replicación de objetos que el estado está establecido en Completado. También se muestran el identificador de la directiva de replicación y el identificador de la regla que rige la replicación de objetos para este contenedor.
Para comprobar el estado de replicación de un blob en la cuenta de origen con PowerShell, obtenga el valor de la propiedad ReplicationStatus de replicación de objetos, como se muestra en el ejemplo siguiente. No olvide reemplazar los valores entre corchetes angulares por sus propios valores:
$ctxSrc = (Get-AzStorageAccount -ResourceGroupName $rgName `
-StorageAccountName $srcAccountName).Context
$blobSrc = Get-AzStorageBlob -Container $srcContainerName1 `
-Context $ctxSrc `
-Blob <blob-name>
$blobSrc.BlobProperties.ObjectReplicationSourceProperties[0].Rules[0].ReplicationStatus
Para comprobar el estado de replicación de un blob en la cuenta de origen con CLI de Azure, obtenga el valor de la replicación de objetos status propiedad, como se muestra en el ejemplo siguiente:
az storage blob show \
--account-name <source-account-name> \
--container-name <source-container-name> \
--name <source-blob-name> \
--query 'objectReplicationSourceProperties[].rules[].status' \
--output tsv \
--auth-mode login
Si el estado de replicación de un blob en la cuenta de origen indica un error, investigue las posibles causas que se mencionan a continuación:
- Asegúrese de que la directiva de replicación de objetos está configurada en la cuenta de destino.
- Compruebe que el contenedor de destino aún existe.
- Si el blob de origen se cifró con una clave proporcionada por el cliente como parte de una operación de escritura, se producirá un error en la replicación de objetos. Para obtener más información sobre las claves proporcionadas por el cliente, consulte Provide una clave de cifrado en una solicitud para Blob storage.
Eliminación de una directiva de replicación
Para quitar una directiva de replicación y sus reglas asociadas, use Azure portal, PowerShell o la CLI.
Para quitar una directiva de replicación en el Azure portal, siga estos pasos:
- Acceda a la cuenta de almacenamiento de origen en el portal de Azure.
- En Configuración, seleccione Replicación de objetos.
- Seleccione el botón Más situado junto al nombre de la directiva.
- Seleccione Eliminar reglas.
Para quitar una directiva de replicación, elimine la directiva de la cuenta de origen y de la cuenta de destino. Al eliminar la directiva también se eliminan las reglas asociadas.
# Remove the policy from the destination account.
Remove-AzStorageObjectReplicationPolicy -ResourceGroupName $rgName `
-StorageAccountName $destAccountName `
-PolicyId $destPolicy.PolicyId
# Remove the policy from the source account.
Remove-AzStorageObjectReplicationPolicy -ResourceGroupName $rgName `
-StorageAccountName $srcAccountName `
-PolicyId $destPolicy.PolicyId
Para quitar una directiva de replicación, elimine la directiva de la cuenta de origen y de la cuenta de destino. Al eliminar la directiva también se eliminan las reglas asociadas.
az storage account or-policy delete \
--policy-id <policy-id> \
--account-name <source-storage-account> \
--resource-group <resource-group>
az storage account or-policy delete \
--policy-id <policy-id> \
--account-name <dest-storage-account> \
--resource-group <resource-group>
Comportamiento al volver a crear una directiva de replicación de objetos
Cuando se elimina y se vuelve a crear una directiva de replicación de objetos en el mismo par de contenedores de origen y destino, Azure trata la nueva directiva como una relación de replicación completamente independiente. Se aplica el siguiente comportamiento:
Se genera un nuevo identificador de directiva para la directiva que se vuelve a crear.
Se finalizan las tareas de replicación asociadas a la directiva anterior.
Al contenedor de destino se le asigna un nuevo bloqueo de replicación asociado al nuevo identificador de directiva.
El estado de replicación de la directiva anterior no se reutiliza.
Comportamiento de replicación después de volver a crear una directiva de replicación de objetos
Después de volver a crear la directiva, Azure intenta la replicación de nuevo para los blobs aptos y el resultado depende de la disponibilidad del historial de versiones del blob en la cuenta de origen:
Si un blob de origen no tiene ninguna versión anterior disponible en el destino: Azure determina que el blob ya se ha copiado según una política anterior. La re-replicación de ese blob no tiene éxito. Solo las nuevas escrituras de blobs (o las nuevas versiones creadas después de volver a crear la directiva) se replican correctamente.
Si un blob de origen tiene versiones anteriores disponibles en destination: Azure puede volver a replicar el blob. El blob se copia de nuevo en el destino como una nueva versión. Esto permite volver a replicar correctamente los blobs existentes sin incoherencia de datos.
Pasos siguientes