API de migración de decisiones decisioning-migration-api
La API del servicio de migración de decisiones permite migrar objetos de administración de decisiones de una zona protegida a otra. El proceso de migración se ejecuta como flujos de trabajo asincrónicos que incluyen análisis de dependencia, ejecución y funciones de reversión opcionales.
Esta API le permite realizar una transición sin problemas del contenido de toma de decisiones entre entornos (por ejemplo, de desarrollo a ensayo o de ensayo a producción) a la vez que mantiene la integridad de los datos y las relaciones.
Para obtener más información sobre las ventajas y capacidades de la toma de decisiones en comparación con la administración de decisiones, consulte esta página.
Competencias capabilities
La API del servicio de migración de Decisioning proporciona las siguientes funcionalidades:
- Análisis de dependencias: identifique todas las dependencias necesarias entre los entornos limitados de origen y destino, incluidos atributos, segmentos y requisitos de conjuntos de datos.
- Ámbito de migración flexible: ejecute migraciones en el nivel de zona protegida, oferta o decisión según sus necesidades.
- Compatibilidad con reversiones: revierta una migración completada si se detectan problemas durante la validación.
Requisitos previos prerequisites
Permisos necesarios permissions
Para utilizar la API de migración, necesita los permisos adecuados en los entornos limitados de origen y destino:
Entorno aislado de Source: acceso de lectura a los objetos de administración de decisiones
Entorno aislado de Target: cree y edite el acceso a los objetos de Decisioning
Los permisos habituales incluyen:
- Administrar/Ver decisión
- Administrar/Ver decisiones
- Administración de ofertas
- Administrar estrategias de clasificación
- Administrar campañas (si se migran artefactos relacionados con campañas)
- Administrar/Ver flujos de datos (si se crea un flujo de datos)
- Administrar/Ver esquemas
Preparación de la zona protegida de Target target-sandbox-preparation
Antes de ejecutar una migración, asegúrese de que la zona protegida de Target esté configurada correctamente:
- Atributos: compruebe que existan los atributos de perfil y los atributos de contexto necesarios en la zona protegida de destino o prepare asignaciones para ellos.
- Segmentos: compruebe que existan los segmentos necesarios en la zona protegida de destino o planee asignarlos mediante el área de nombres y el ID.
- Conjunto de datos: identifique un nombre de conjunto de datos para usar en la migración (
dependency.datasetName). - Flujo de datos - Decida si la migración debe crear un flujo de datos (
createDataStream).
Para obtener más información sobre la administración de zonas protegidas, consulte Usar y asignar zonas protegidas.
Conceptos básicos de la API api-basics
Direcciones URL base base-urls
Utilice las siguientes direcciones URL base según su entorno:
- Producción:
https://platform.adobe.io - Ensayo:
https://platform-stage.adobe.io
Autenticación authentication
Todas las solicitudes de API requieren los siguientes encabezados:
Authorization: Bearer <IMS_ACCESS_TOKEN>x-gw-ims-org-id: <IMS_ORG_ID>x-api-key: <CLIENT_API_KEY>Content-Type: application/json
Para obtener instrucciones detalladas sobre cómo configurar la autenticación, consulte la guía de autenticación de Journey Optimizer.
Modelo de flujo de trabajo workflow-model
Cada llamada de API crea o recupera un recurso de flujo de trabajo. Los flujos de trabajo son operaciones asincrónicas que realizan un seguimiento del progreso y los resultados de las tareas de migración.
Un flujo de trabajo tiene las siguientes propiedades:
id- Identificador único de flujo de trabajo (UUID)status- Estado actual del flujo de trabajo:New,Running,Completed,FailedoCancelledresult: salida del flujo de trabajo cuando se completa (incluye resultados de migración y advertencias)errors: detalles de error estructurados cuando se produjo un error_etag: identificador de versión utilizado para operaciones de eliminación (solo usuarios de servicio)_links.self: URL de flujo de trabajo para recuperar el estado
Flujo de trabajo migración migration-workflow
El proceso de migración consta de dos pasos principales: analizar las dependencias y ejecutar la migración. Siga estos pasos para garantizar una migración correcta.
Paso 1: Análisis de dependencias analyze-dependencies
Antes de migrar, utilice el flujo de trabajo de dependencias para identificar qué debe asignarse desde Gestión de decisiones a Decisiones en la zona protegida de destino. Este análisis le ayuda a comprender las relaciones entre los objetos y a preparar las asignaciones necesarias.
Creación de un flujo de trabajo de dependencias create-dependency-workflow
Utilice la siguiente llamada de API para crear un flujo de trabajo de análisis de dependencias.
Formato de API
POST /migration/service/dependency
Dependencia a nivel de espacio aislado (recomendada primero)
Comience con un análisis a nivel de zona protegida para obtener una vista completa de todas las dependencias:
curl --request POST \
--url "https://platform.adobe.io/migration/service/dependency" \
--header "Authorization: Bearer <IMS_ACCESS_TOKEN>" \
--header "x-gw-ims-org-id: <IMS_ORG_ID>" \
--header "x-api-key: <CLIENT_API_KEY>" \
--header "Content-Type: application/json" \
--data '{
"imsOrgId": "<IMS_ORG_ID>",
"sourceSandboxDetails": { "sandboxName": "<SOURCE_SANDBOX_NAME>" },
"targetSandboxDetails": { "sandboxName": "<TARGET_SANDBOX_NAME>" },
"requestLevel": "sandbox"
}'
Dependencia de nivel de oferta
Para analizar solamente las dependencias de ofertas específicas, establezca requestLevel: "offer" y proporcione una matriz offersList con los identificadores de oferta que desee analizar.
Dependencia de nivel de decisión
Para analizar solamente las dependencias para decisiones específicas, establezca requestLevel: "decision" y proporcione una matriz decisionsList con los identificadores de decisión que desee analizar.
Comprobar estado de flujo de trabajo de dependencia poll-dependency-status
Encueste el flujo de trabajo de dependencias para comprobar cuándo se ha completado el análisis.
Formato de API
GET /migration/service/dependency/{id}
Solicitud
curl --request GET \
--url "https://platform.adobe.io/migration/service/dependency/<WORKFLOW_ID>" \
--header "Authorization: Bearer <IMS_ACCESS_TOKEN>" \
--header "x-gw-ims-org-id: <IMS_ORG_ID>" \
--header "x-api-key: <CLIENT_API_KEY>"
Cuando el campo status muestra Completed, el análisis de dependencias está listo. Utilice la salida del flujo de trabajo para crear las asignaciones de dependencias de migración:
- profileAttributeDependency: asigna atributos de perfil de origen a atributos de perfil de destino
- contextAttributeDependency: asigna atributos de contexto de origen a atributos de contexto de destino
- segmentsDependency: asigna claves de segmento de origen a identificadores de segmento de destino (
{segmentNamespace, segmentId}) - datasetName: especifica el nombre del conjunto de datos de destino para la migración
Paso 2: Ejecución de la migración execute-migration
Una vez que haya analizado las dependencias y preparado las asignaciones, puede ejecutar la migración.
Creación de un flujo de trabajo de migración create-migration-workflow
Utilice las asignaciones de dependencias del paso 1 para configurar y ejecutar la migración.
Formato de API
POST /migration/service/migrations
Migración a nivel de espacio aislado
Para migrar todos los objetos de toma de decisiones de una zona protegida a otra:
curl --request POST \
--url "https://platform.adobe.io/migration/service/migrations" \
--header "Authorization: Bearer <IMS_ACCESS_TOKEN>" \
--header "x-gw-ims-org-id: <IMS_ORG_ID>" \
--header "x-api-key: <CLIENT_API_KEY>" \
--header "Content-Type: application/json" \
--data '{
"imsOrgId": "<IMS_ORG_ID>",
"sourceSandboxDetails": { "sandboxName": "<SOURCE_SANDBOX_NAME>" },
"targetSandboxDetails": { "sandboxName": "<TARGET_SANDBOX_NAME>" },
"createDataStream": true,
"dependency": {
"profileAttributeDependency": {
"sourceAttr1": "targetAttr1"
},
"segmentsDependency": {
"sourceSegmentKey1": {
"segmentNamespace": "<TARGET_SEGMENT_NAMESPACE>",
"segmentId": "<TARGET_SEGMENT_ID>"
}
},
"contextAttributeDependency": {
"sourceCtx1": "targetCtx1"
},
"datasetName": "<TARGET_DATASET_NAME>"
},
"requestLevel": "sandbox"
}'
Migración de nivel de oferta
Para migrar solo ofertas específicas, use requestLevel: "offer" y agregue una matriz offersList:
"offersList": ["offer-id-1", "offer-id-2"]
Migración de nivel de decisión
Para migrar únicamente decisiones específicas, use requestLevel: "decision" y agregue una matriz decisionsList:
"decisionsList": ["decision-id-1", "decision-id-2"]
Monitorización del estado de migración poll-migration-status
Encueste el flujo de trabajo de migración para rastrear su progreso.
Formato de API
GET /migration/service/migrations/{id}
Solicitud
curl --request GET \
--url "https://platform.adobe.io/migration/service/migrations/<WORKFLOW_ID>" \
--header "Authorization: Bearer <IMS_ACCESS_TOKEN>" \
--header "x-gw-ims-org-id: <IMS_ORG_ID>" \
--header "x-api-key: <CLIENT_API_KEY>"
Resultados de la migración
Cuando el campo status muestra Completed, la migración se realizó correctamente. El flujo de trabajo result incluye:
- Asignaciones de objetos migrados
- Advertencias encontradas durante la migración
Cuando el campo status muestre Failed, revise la matriz errors[] y el campo result.error para obtener detalles sobre qué ha fallado.
Validación de la migración validate-migration
Una vez completada la migración correctamente, compruebe que todos los objetos se hayan migrado correctamente.
Lista de comprobación de validación validation-checklist
-
Segmentos: compruebe que todos los segmentos a los que se hace referencia se resuelven correctamente en la zona protegida de destino según sus asignaciones.
-
Atributos: confirme que todos los atributos de perfil y de contexto existen en la zona protegida de destino y están asignados correctamente.
-
Objetos de toma de decisiones - Revisar objetos migrados en la interfaz de usuario de Journey Optimizer:
- Ofertas (elementos de decisión)
- Reglas de elegibilidad
- Fórmulas de clasificación
- Estrategias de selección
- Políticas de decisión
-
Prueba de secuencia de datos: si se creó una secuencia de datos, pruebe la entrega en tiempo de ejecución mediante la API de Edge Interact.
Ejemplo test-runtime-delivery
Si la migración ha creado un conjunto de datos, se puede probar la entrega de ofertas con el siguiente ejemplo:
curl --request POST \
--url "https://edge.adobedc.net/ee/or2/v1/interact?configId=<DATASTREAM_ID>" \
--header "Content-Type: application/json" \
--header "x-request-id: <uuid>" \
--data '{ "events": [ ... ] }'
Reversión de una migración rollback
Si detecta problemas durante la validación, puede revertir una migración completada para restaurar la zona protegida de destino a su estado anterior.
Creación de un flujo de trabajo de reversión create-rollback-workflow
Inicie una reversión creando un flujo de trabajo de reversión que haga referencia a la migración que desea revertir.
Formato de API
POST /migration/service/rollbacks/{migrationWorkflowId}
Reemplace {migrationWorkflowId} por el ID del flujo de trabajo de migración que desea revertir.
Solicitud
curl --request POST \
--url "https://platform.adobe.io/migration/service/rollbacks/<MIGRATION_WORKFLOW_ID>" \
--header "Authorization: Bearer <IMS_ACCESS_TOKEN>" \
--header "x-gw-ims-org-id: <IMS_ORG_ID>" \
--header "x-api-key: <CLIENT_API_KEY>"
Monitorizar estado de reversión poll-rollback-status
Encuesta el flujo de trabajo de reversión para rastrear su progreso.
Formato de API
GET /migration/service/rollbacks/{rollbackWorkflowId}
Solicitud
curl --request GET \
--url "https://platform.adobe.io/migration/service/rollbacks/<ROLLBACK_WORKFLOW_ID>" \
--header "Authorization: Bearer <IMS_ACCESS_TOKEN>" \
--header "x-gw-ims-org-id: <IMS_ORG_ID>" \
--header "x-api-key: <CLIENT_API_KEY>"
Gestión de flujos de trabajo simultáneos handle-concurrency
La API de migración solo permite ejecutar un flujo de trabajo a la vez por organización. Si intenta crear un nuevo flujo de trabajo mientras otro está en curso, recibirá una respuesta de error 409 Conflict ("Ya hay un flujo de trabajo en curso…").
En este caso, espere a que se complete el flujo de trabajo en curso o recupere el ID de flujo de trabajo y sondee su estado. Una vez finalizado el flujo de trabajo actual, puede crear uno nuevo.
Referencia de asignación de entidad entity-mapping
Al migrar de Administración de decisiones a Toma de decisiones, las entidades se asignan de la siguiente manera:
Limpieza de flujo de trabajo cleanup
Los usuarios del servicio solo pueden eliminar los recursos de flujo de trabajo. Las operaciones de eliminación requieren un encabezado If-Match con el valor _etag del flujo de trabajo.
Operaciones de eliminación disponibles:
DELETE /migration/service/dependency/{id}DELETE /migration/service/migrations/{id}DELETE /migration/service/rollbacks/{id}
Temas relacionados related-topics
- Migrar de Administración de decisiones a Toma de decisiones: comprenda los beneficios y capacidades de migrar a Toma de decisiones
- Introducción a la toma de decisiones
- Limitaciones y protecciones de decisiones
- Comenzar con API de Decisioning