API de migração de decisão decisioning-migration-api
A API do serviço de migração de decisão permite migrar objetos de Gestão de decisões de uma sandbox para outra. O processo de migração é executado como fluxos de trabalho assíncronos que incluem análise de dependência, execução e recursos opcionais de reversão.
Essa API permite fazer a transição perfeita do conteúdo de decisão entre ambientes (por exemplo, do desenvolvimento ao preparo ou do preparo à produção), mantendo a integridade e os relacionamentos dos dados.
Para saber mais sobre os benefícios e recursos do Decisioning em comparação ao Gerenciamento de decisão, consulte esta página.
Recursos capabilities
A API do Serviço de migração do Decisioning fornece os seguintes recursos:
- Análise de dependência - Identifique todas as dependências necessárias entre as sandboxes de origem e destino, incluindo atributos, segmentos e requisitos do conjunto de dados.
- Escopo de migração flexível - Execute migrações em nível de sandbox, oferta ou decisão de acordo com suas necessidades.
- Suporte à reversão - Reverter uma migração concluída se forem descobertos problemas durante a validação.
Pré-requisitos prerequisites
Permissões necessárias permissions
Para usar a API de migração, você precisa das permissões apropriadas nas sandboxes de origem e destino:
Sandbox do Source - Acesso de leitura a objetos de Gestão de decisões
Sandbox do Target - Criar e editar o acesso a objetos do Decisioning
As permissões típicas incluem:
- Gerenciar/Exibir decisão
- Gerenciar/Exibir Decisões
- Gerenciar ofertas
- Gerenciar estratégias de classificação
- Gerenciar campanhas (se estiver migrando artefatos relacionados à campanha)
- Gerenciar/exibir fluxos de dados (se estiver criando um fluxo de dados)
- Gerenciar / Exibir esquemas
Preparar sua sandbox de destino target-sandbox-preparation
Antes de executar uma migração, verifique se a sandbox de destino está configurada corretamente:
- Atributos - Verifique se os atributos de perfil e os atributos de contexto necessários existem na sandbox de destino ou prepare mapeamentos para eles.
- Segmentos - Verifique se os segmentos necessários existem na sandbox de destino ou planeje mapeá-los usando namespace e ID.
- Conjunto de dados - Identifique um nome de conjunto de dados a ser usado para a migração (
dependency.datasetName). - Sequência de dados - Decida se a migração deve criar uma sequência de dados (
createDataStream).
Para obter mais informações sobre o gerenciamento de sandboxes, consulte Usar e atribuir sandboxes.
Noções básicas sobre API api-basics
URLs base base-urls
Use os seguintes URLs base, dependendo do seu ambiente:
- Produção:
https://platform.adobe.io - Estágios:
https://platform-stage.adobe.io
Autenticação authentication
Todas as solicitações de API exigem os seguintes cabeçalhos:
Authorization: Bearer <IMS_ACCESS_TOKEN>x-gw-ims-org-id: <IMS_ORG_ID>x-api-key: <CLIENT_API_KEY>Content-Type: application/json
Para obter instruções detalhadas sobre como configurar a autenticação, consulte o guia de autenticação do Journey Optimizer.
Modelo de fluxo de trabalho workflow-model
Cada chamada de API cria ou recupera um recurso de workflow. Workflows são operações assíncronas que controlam o progresso e os resultados de tarefas de migração.
Um workflow tem as seguintes propriedades:
id- Identificador de fluxo de trabalho exclusivo (UUID)status- Status atual do fluxo de trabalho:New,Running,Completed,FailedouCancelledresult- Saída de fluxo de trabalho quando concluído (inclui resultados e avisos de migração)errors- Detalhes de erros estruturados quando com falha_etag- Identificador de versão usado para operações de exclusão (somente usuários do serviço)_links.self- URL do fluxo de trabalho para recuperar o status
Fluxo de trabalho de migração migration-workflow
O processo de migração consiste em duas etapas principais: analisar dependências e executar a migração. Siga estas etapas para garantir uma migração bem-sucedida.
Etapa 1: Analisar dependências analyze-dependencies
Antes de migrar, use o fluxo de trabalho de dependência para identificar o que precisa ser mapeado da Gestão de decisões para a Decisão na sandbox de destino. Essa análise ajuda a entender as relações entre objetos e preparar os mapeamentos necessários.
Criar um fluxo de trabalho de dependência create-dependency-workflow
Use a chamada de API a seguir para criar um fluxo de trabalho de análise de dependência.
Formato da API
POST /migration/service/dependency
Dependência em nível de sandbox (recomendada primeiro)
Comece com uma análise em nível de sandbox para obter uma visualização completa de todas as dependências:
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"
}'
Dependência no nível da oferta
Para analisar dependências somente para ofertas específicas, defina requestLevel: "offer" e forneça uma matriz offersList com as IDs de oferta que você deseja analisar.
Dependência de nível de decisão
Para analisar dependências somente para decisões específicas, defina requestLevel: "decision" e forneça uma matriz decisionsList com as IDs de decisão que você deseja analisar.
Verificar status do fluxo de trabalho de dependência poll-dependency-status
Consulte o fluxo de trabalho de dependência para verificar quando a análise é concluída.
Formato da API
GET /migration/service/dependency/{id}
Solicitação
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>"
Quando o campo status mostra Completed, a análise de dependência está pronta. Use a saída do fluxo de trabalho para criar os mapeamentos de dependência de migração:
- profileAttributeDependency - Mapeia atributos de perfil de origem para atributos de perfil de destino
- contextAttributeDependency - Mapeia atributos de contexto de origem para atributos de contexto de destino
- segmentsDependency - Mapeia chaves de segmento de origem para identificadores de segmento de destino (
{segmentNamespace, segmentId}) - datasetName - Especifica o nome do conjunto de dados de destino para a migração
Etapa 2: Executar a migração execute-migration
Depois de analisar as dependências e preparar os mapeamentos, você pode executar a migração.
Criar um fluxo de trabalho de migração create-migration-workflow
Use os mapeamentos de dependência da Etapa 1 para configurar e executar a migração.
Formato da API
POST /migration/service/migrations
Migração no nível da sandbox
Para migrar todos os objetos de decisão de uma sandbox para outra:
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"
}'
Migração no nível da oferta
Para migrar somente ofertas específicas, use requestLevel: "offer" e adicione uma matriz offersList:
"offersList": ["offer-id-1", "offer-id-2"]
Migração de nível de decisão
Para migrar apenas decisões específicas, use requestLevel: "decision" e adicione uma matriz decisionsList:
"decisionsList": ["decision-id-1", "decision-id-2"]
Monitorar status da migração poll-migration-status
Consulte o fluxo de trabalho de migração para acompanhar seu progresso.
Formato da API
GET /migration/service/migrations/{id}
Solicitação
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 da migração
Quando o campo status mostra Completed, a migração foi bem-sucedida. O fluxo de trabalho result inclui:
- Mapeamentos de objetos migrados
- Qualquer aviso encontrado durante a migração
Quando o campo status mostrar Failed, revise a matriz errors[] e o campo result.error para obter detalhes sobre o que deu errado.
Validar sua migração validate-migration
Depois que a migração for concluída com êxito, verifique se todos os objetos foram migrados corretamente.
Lista de verificação de validação validation-checklist
-
Segmentos - Verifique se todos os segmentos referenciados são resolvidos corretamente na sandbox de destino de acordo com seus mapeamentos.
-
Atributos - Confirme se todos os atributos de perfil e de contexto existem na sandbox de destino e estão mapeados corretamente.
-
Objetos de decisão - Revise os objetos migrados na interface do usuário do Journey Optimizer:
- Ofertas (itens de decisão)
- Regras de elegibilidade
- Fórmulas de classificação
- Estratégias de seleção
- Políticas de decisão
-
Teste de sequência de dados - Se uma sequência de dados tiver sido criada, teste a entrega em tempo de execução usando a API Edge Interact.
Exemplo test-runtime-delivery
Se a migração criou um fluxo de dados, você pode testar a entrega de ofertas usando o seguinte exemplo:
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": [ ... ] }'
Reverter uma migração rollback
Se você descobrir problemas durante a validação, poderá reverter uma migração concluída para restaurar a sandbox de destino ao seu estado anterior.
Criar um fluxo de trabalho de reversão create-rollback-workflow
Inicie uma reversão criando um fluxo de trabalho de reversão que faça referência à migração que você deseja reverter.
Formato da API
POST /migration/service/rollbacks/{migrationWorkflowId}
Substitua {migrationWorkflowId} pela ID do fluxo de trabalho de migração que você deseja reverter.
Solicitação
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>"
Monitorar status de reversão poll-rollback-status
Consulte o workflow de reversão para acompanhar seu progresso.
Formato da API
GET /migration/service/rollbacks/{rollbackWorkflowId}
Solicitação
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>"
Lidar com fluxos de trabalho simultâneos handle-concurrency
A API de migração permite que apenas um fluxo de trabalho seja executado por vez por organização. Se você tentar criar um novo fluxo de trabalho enquanto outro estiver em andamento, você receberá uma resposta de erro 409 Conflito ("Um fluxo de trabalho já está em andamento…").
Nesse caso, aguarde a conclusão do workflow em andamento ou recupere a ID do workflow e sonde seu status. Quando o fluxo de trabalho atual for concluído, você poderá criar um novo.
Referência de mapeamento de entidade entity-mapping
Ao migrar da Gestão de decisões para o Decisioning, as entidades são mapeadas da seguinte maneira:
Limpeza do fluxo de trabalho cleanup
Os recursos de fluxo de trabalho podem ser excluídos somente por usuários do serviço. As operações de exclusão exigem um cabeçalho If-Match com o valor _etag do fluxo de trabalho.
Operações de exclusão disponíveis:
DELETE /migration/service/dependency/{id}DELETE /migration/service/migrations/{id}DELETE /migration/service/rollbacks/{id}
Tópicos relacionados related-topics
- Migrar da Gestão de decisões para a Decisão - Entenda os benefícios e recursos da migração para a Decisão
- Introdução ao serviço de decisão
- Medidas de proteção e limitações da decisão
- Introdução às APIs de tomada de decisão