Connettersi alle destinazioni di streaming e attivare i dati utilizzando l’API del servizio Flow
Questo tutorial illustra come utilizzare le chiamate API per connettersi ai dati Adobe Experience Platform e creare una connessione a una destinazione di archiviazione cloud in streaming (Amazon Kinesis o Hub eventi di Azure), crea un flusso di dati nella nuova destinazione creata e attiva i dati nella nuova destinazione creata.
Questa esercitazione utilizza Amazon Kinesis destinazione in tutti gli esempi, ma i passaggi sono identici per Azure Event Hubs.
Se preferisci utilizzare l’interfaccia utente di Platform per connettersi a una destinazione e attivare i dati, consulta la sezione Connettere una destinazione e Attiva i dati del pubblico nelle destinazioni di esportazione del pubblico in streaming esercitazioni.
Introduzione
Questa guida richiede una buona conoscenza dei seguenti componenti di Adobe Experience Platform:
- Experience Data Model (XDM) System: framework standardizzato tramite il quale Experienci Platform organizza i dati sull’esperienza del cliente.
- Catalog Service: Catalog è il sistema di registrazione per la posizione e la derivazione dei dati in Experienci Platform.
- Sandbox: Experienci Platform fornisce sandbox virtuali che permettono di suddividere una singola istanza Platform in ambienti virtuali separati, utili per le attività di sviluppo e aggiornamento delle applicazioni di esperienza digitale.
Le sezioni seguenti forniscono informazioni aggiuntive che è necessario conoscere per attivare i dati nelle destinazioni di streaming in Platform.
Raccogli le credenziali richieste
Per completare i passaggi descritti in questa esercitazione, è necessario disporre delle seguenti credenziali pronte, a seconda del tipo di destinazioni a cui si connettono e si attivano i tipi di pubblico.
- Per Amazon Kinesis connessioni:
accessKeyId
,secretKey
,region
oconnectionUrl
- Per Azure Event Hubs connessioni:
sasKeyName
,sasKey
,namespace
Lettura delle chiamate API di esempio reading-sample-api-calls
Questo tutorial fornisce esempi di chiamate API per dimostrare come formattare le richieste. Questi includono percorsi, intestazioni richieste e payload di richieste formattati correttamente. Viene inoltre fornito un codice JSON di esempio restituito nelle risposte API. Per informazioni sulle convenzioni utilizzate nella documentazione per le chiamate API di esempio, consulta la sezione su come leggere esempi di chiamate API nella guida alla risoluzione dei problemi di Experience Platform.
Raccogli i valori per le intestazioni obbligatorie e facoltative gather-values
Per effettuare chiamate alle API di Platform, devi prima completare la sezione tutorial sull’autenticazione. Il completamento del tutorial di autenticazione fornisce i valori per ciascuna delle intestazioni richieste in tutte le chiamate API di Experienci Platform, come mostrato di seguito:
- Autorizzazione: Bearer
{ACCESS_TOKEN}
- x-api-key:
{API_KEY}
- x-gw-ims-org-id:
{ORG_ID}
Le risorse di Experienci Platform possono essere isolate in specifiche sandbox virtuali. Nelle richieste alle API di Platform, puoi specificare il nome e l’ID della sandbox in cui verrà eseguita l’operazione. Si tratta di parametri facoltativi.
- x-sandbox-name:
{SANDBOX_NAME}
Tutte le richieste che contengono un payload (POST, PUT, PATCH) richiedono un’intestazione di tipo multimediale aggiuntiva:
- Tipo di contenuto:
application/json
Documentazione di Swagger swagger-docs
Puoi trovare la documentazione di riferimento di accompagnamento per tutte le chiamate API in questa esercitazione in Swagger. Consulta la Documentazione API del servizio Flusso su Adobe I/O. È consigliabile utilizzare questa esercitazione e la pagina della documentazione di Swagger in parallelo.
Ottieni l’elenco delle destinazioni di streaming disponibili get-the-list-of-available-streaming-destinations
Come primo passo, devi decidere a quale destinazione di streaming attivare i dati. Per iniziare, effettua una chiamata per richiedere un elenco delle destinazioni disponibili a cui puoi connettere e attivare i tipi di pubblico. Esegui la seguente richiesta di GET a connectionSpecs
endpoint per restituire un elenco di destinazioni disponibili:
Formato API
GET /connectionSpecs
Richiesta
curl --location --request GET 'https://platform.adobe.io/data/foundation/flowservice/connectionSpecs' \
--header 'accept: application/json' \
--header 'x-gw-ims-org-id: {ORG_ID}' \
--header 'x-api-key: {API_KEY}' \
--header 'x-sandbox-name: {SANDBOX_NAME}' \
--header 'Authorization: Bearer {ACCESS_TOKEN}'
Risposta
In caso di esito positivo, la risposta contiene un elenco delle destinazioni disponibili e i relativi identificatori univoci (id
). Memorizza il valore della destinazione che intendi utilizzare, come richiesto nei passaggi successivi. Ad esempio, se desideri connettere e inviare tipi di pubblico a Amazon Kinesis o Azure Event Hubs, cerca il seguente frammento nella risposta:
{
"id": "86043421-563b-46ec-8e6c-e23184711bf6",
"name": "Amazon Kinesis",
...
...
}
{
"id": "bf9f5905-92b7-48bf-bf20-455bc6b60a4e",
"name": "Azure Event Hubs",
...
...
}
Connettersi ai dati Experienci Platform connect-to-your-experience-platform-data
Successivamente, devi connetterti ai dati di Experience Platform, in modo da poter esportare i dati di profilo e attivarli nella destinazione preferita. Si tratta di due passaggi che sono descritti di seguito.
- Innanzitutto, devi eseguire una chiamata per autorizzare l’accesso ai tuoi dati in Experienci Platform, impostando una connessione di base.
- Quindi, utilizzando l’ID connessione di base, effettuerai un’altra chiamata in cui crei una connessione di origine, che stabilisce la connessione ai dati di Experience Platform.
Autorizzare l’accesso ai dati in Experienci Platform
Formato API
POST /connections
Richiesta
curl --location --request POST 'https://platform.adobe.io/data/foundation/flowservice/connections' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'x-api-key: {API_KEY}' \
--header 'x-gw-ims-org-id: {ORG_ID}' \
--header 'x-sandbox-name: {SANDBOX_NAME}' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Base connection to Experience Platform",
"description": "This call establishes the connection to Experience Platform data",
"connectionSpec": {
"id": "{CONNECTION_SPEC_ID}",
"version": "1.0"
}
}'
{CONNECTION_SPEC_ID}
: utilizza l’ID della specifica di connessione per il servizio profili -8a9c3494-9708-43d7-ae3f-cda01e5030e1
.
Risposta
Una risposta corretta contiene l’identificatore univoco della connessione di base (id
). Memorizza questo valore come richiesto nel passaggio successivo per creare la connessione sorgente.
{
"id": "1ed86558-59b5-42f7-9865-5859b552f7f4"
}
Connettersi ai dati Experienci Platform connect-to-platform-data
Formato API
POST /sourceConnections
Richiesta
curl --location --request POST 'https://platform.adobe.io/data/foundation/flowservice/sourceConnections' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'x-api-key: {API_KEY}' \
--header 'x-gw-ims-org-id: {ORG_ID}' \
--header 'x-sandbox-name: {SANDBOX_NAME}' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Connecting to Profile Service",
"description": "Optional",
"connectionSpec": {
"id": "{CONNECTION_SPEC_ID}",
"version": "1.0"
},
"baseConnectionId": "{BASE_CONNECTION_ID}",
"data": {
"format": "json"
},
"params": {}
}'
{BASE_CONNECTION_ID}
: utilizza l’ID ottenuto nel passaggio precedente.{CONNECTION_SPEC_ID}
: utilizza l’ID della specifica di connessione per il servizio profili -8a9c3494-9708-43d7-ae3f-cda01e5030e1
.
Risposta
In caso di esito positivo, la risposta restituisce l’identificatore univoco (id
) per la nuova connessione sorgente creata al servizio profilo. Ciò conferma che hai effettuato correttamente la connessione ai dati di Experience Platform. Memorizza questo valore come richiesto in un passaggio successivo.
{
"id": "ed48ae9b-c774-4b6e-88ae-9bc7748b6e97"
}
Connetti a destinazione di streaming connect-to-streaming-destination
In questo passaggio, stai impostando una connessione alla destinazione di streaming desiderata. Si tratta di due passaggi che sono descritti di seguito.
- Innanzitutto, devi eseguire una chiamata per autorizzare l’accesso alla destinazione di streaming impostando una connessione di base.
- Quindi, utilizzando l’ID connessione di base, effettuerai un’altra chiamata in cui crei una connessione di destinazione, che specifica la posizione nell’account di archiviazione in cui verranno consegnati i dati esportati e il formato dei dati che verranno esportati.
Autorizza l’accesso alla destinazione di streaming
Formato API
POST /connections
Richiesta
//
. Questi commenti evidenziano dove è necessario utilizzare valori diversi per destinazioni di streaming diverse. Rimuovere i commenti prima di utilizzare lo snippet.curl --location --request POST 'https://platform.adobe.io/data/foundation/flowservice/connections' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'x-api-key: {API_KEY}' \
--header 'x-gw-ims-org-id: {ORG_ID}' \
--header 'x-sandbox-name: {SANDBOX_NAME}' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Connection for Amazon Kinesis/ Azure Event Hubs",
"description": "summer advertising campaign",
"connectionSpec": {
"id": "{_CONNECTION_SPEC_ID}",
"version": "1.0"
},
"auth": {
"specName": "{AUTHENTICATION_CREDENTIALS}",
"params": { // use these values for Amazon Kinesis connections
"accessKeyId": "{ACCESS_ID}",
"secretKey": "{SECRET_KEY}",
"region": "{REGION}"
},
"params": { // use these values for Azure Event Hubs connections
"sasKeyName": "{SAS_KEY_NAME}",
"sasKey": "{SAS_KEY}",
"namespace": "{EVENT_HUB_NAMESPACE}"
}
}
}'
{CONNECTION_SPEC_ID}
: utilizza l’ID della specifica di connessione ottenuto nel passaggio Ottieni l’elenco delle destinazioni disponibili.{AUTHENTICATION_CREDENTIALS}
: inserisci il nome della destinazione di streaming:Aws Kinesis authentication credentials
oAzure EventHub authentication credentials
.{ACCESS_ID}
: Per Amazon Kinesis connessioni. ID di accesso per la posizione di archiviazione di Amazon Kinesis.{SECRET_KEY}
: Per Amazon Kinesis connessioni. La chiave segreta per la posizione di archiviazione di Amazon Kinesis.{REGION}
: Per Amazon Kinesis connessioni. L’area geografica nel tuo Amazon Kinesis account in cui Platform invierà i dati in streaming.{SAS_KEY_NAME}
: Per Azure Event Hubs connessioni. Immettere il nome della chiave SAS. Scopri come eseguire l’autenticazione in Azure Event Hubs con le chiavi SAS nel Documentazione di Microsoft.{SAS_KEY}
: Per Azure Event Hubs connessioni. Inserire la chiave SAS. Scopri come eseguire l’autenticazione in Azure Event Hubs con le chiavi SAS nel Documentazione di Microsoft.{EVENT_HUB_NAMESPACE}
: Per Azure Event Hubs connessioni. Compila il Azure Event Hubs spazio dei nomi in cui Platform invierà i dati in streaming. Per ulteriori informazioni, consulta Creare uno spazio dei nomi degli hub eventi nel Microsoft documentazione.
Risposta
Una risposta corretta contiene l’identificatore univoco della connessione di base (id
). Memorizza questo valore come richiesto nel passaggio successivo per creare una connessione di destinazione.
{
"id": "1ed86558-59b5-42f7-9865-5859b552f7f4"
}
Specificare il percorso di archiviazione e il formato dei dati
Formato API
POST /targetConnections
Richiesta
//
. Questi commenti evidenziano dove è necessario utilizzare valori diversi per destinazioni di streaming diverse. Rimuovere i commenti prima di utilizzare lo snippet.curl --location --request POST 'https://platform.adobe.io/data/foundation/flowservice/targetConnections' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'x-api-key: {API_KEY}' \
--header 'x-gw-ims-org-id: {ORG_ID}' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Amazon Kinesis/ Azure Event Hubs target connection",
"description": "Connection to Amazon Kinesis/ Azure Event Hubs",
"baseConnectionId": "{BASE_CONNECTION_ID}",
"connectionSpec": {
"id": "{CONNECTION_SPEC_ID}",
"version": "1.0"
},
"data": {
"format": "json"
},
"params": { // use these values for Amazon Kinesis connections
"stream": "{NAME_OF_DATA_STREAM}",
"region": "{REGION}"
},
"params": { // use these values for Azure Event Hubs connections
"eventHubName": "{EVENT_HUB_NAME}"
}
}'
{BASE_CONNECTION_ID}
: utilizza l’ID connessione di base ottenuto nel passaggio precedente.{CONNECTION_SPEC_ID}
: utilizza la specifica di connessione ottenuta nel passaggio Ottieni l’elenco delle destinazioni disponibili.{NAME_OF_DATA_STREAM}
: Per Amazon Kinesis connessioni. Immetti il nome del flusso di dati esistente nel tuo Amazon Kinesis account. Platform esporterà i dati in questo flusso.{REGION}
: Per Amazon Kinesis connessioni. L’area dell’account Amazon Kinesis in cui Platform invierà i dati in streaming.{EVENT_HUB_NAME}
: Per Azure Event Hubs connessioni. Compila il Azure Event Hub nome in cui Platform invierà i dati in streaming. Per ulteriori informazioni, consulta Creare un hub eventi nel Microsoft documentazione.
Risposta
In caso di esito positivo, la risposta restituisce l’identificatore univoco (id
) per la connessione di destinazione appena creata alla destinazione di streaming. Memorizza questo valore come richiesto nei passaggi successivi.
{
"id": "12ab90c7-519c-4291-bd20-d64186b62da8"
}
Creare un flusso di dati
Utilizzando gli ID ottenuti nei passaggi precedenti, ora puoi creare un flusso di dati tra i dati dell’Experience Platform e la destinazione in cui attiverai i dati. Considera questo passaggio come la costruzione della pipeline, attraverso la quale i dati fluiranno in seguito, tra Experienci Platform e la destinazione desiderata.
Per creare un flusso di dati, esegui una richiesta POST, come mostrato di seguito, fornendo i valori menzionati di seguito all’interno del payload.
Per creare un flusso di dati, esegui la seguente richiesta POST.
Formato API
POST /flows
Richiesta
curl -X POST \
'https://platform.adobe.io/data/foundation/flowservice/flows' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Azure Event Hubs",
"description": "Azure Event Hubs",
"flowSpec": {
"id": "{FLOW_SPEC_ID}",
"version": "1.0"
},
"sourceConnectionIds": [
"{SOURCE_CONNECTION_ID}"
],
"targetConnectionIds": [
"{TARGET_CONNECTION_ID}"
],
"transformations": [
{
"name": "GeneralTransform",
"params": {
"profileSelectors": {
"selectors": [
]
},
"segmentSelectors": {
"selectors": [
]
}
}
}
]
}
{FLOW_SPEC_ID}
: l’ID della specifica di flusso per le destinazioni basate su profili è71471eba-b620-49e4-90fd-23f1fa0174d8
. Utilizza questo valore nella chiamata di.{SOURCE_CONNECTION_ID}
: utilizza l’ID connessione sorgente ottenuto nel passaggio Connetti all’Experience Platform.{TARGET_CONNECTION_ID}
: utilizza l’ID connessione di destinazione ottenuto nel passaggio Connetti a destinazione di streaming.
Risposta
In caso di esito positivo, la risposta restituisce l’ID (id
) del flusso di dati appena creato e un etag
. Annotare entrambi i valori. nel passaggio successivo, per attivare i tipi di pubblico.
{
"id": "8256cfb4-17e6-432c-a469-6aedafb16cd5",
"etag": "8256cfb4-17e6-432c-a469-6aedafb16cd5"
}
Attiva i dati nella nuova destinazione activate-data
Dopo aver creato tutte le connessioni e il flusso di dati, ora puoi attivare i dati del profilo nella piattaforma di streaming. In questo passaggio, puoi selezionare i tipi di pubblico e gli attributi di profilo da inviare alla destinazione, nonché pianificare e inviare dati alla destinazione.
Per attivare i tipi di pubblico nella nuova destinazione, devi eseguire un’operazione JSON PATCH, simile all’esempio di seguito. Puoi attivare più tipi di pubblico e attributi di profilo in una sola chiamata. Per ulteriori informazioni su JSON PATCH, consulta Specifiche RFC.
Formato API
PATCH /flows
Richiesta
curl --location --request PATCH 'https://platform.adobe.io/data/foundation/flowservice/flows/{DATAFLOW_ID}' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'x-api-key: {API_KEY}' \
--header 'x-gw-ims-org-id: {ORG_ID}' \
--header 'Content-Type: application/json' \
--header 'x-sandbox-name: {SANDBOX_NAME}' \
--header 'If-Match: "{ETAG}"' \
--data-raw '[
{
"op": "add",
"path": "/transformations/0/params/segmentSelectors/selectors/-",
"value": {
"type": "PLATFORM_SEGMENT",
"value": {
"name": "Name of the audience that you are activating",
"description": "Description of the audience that you are activating",
"id": "{SEGMENT_ID}"
}
}
},
{
"op": "add",
"path": "/transformations/0/params/profileSelectors/selectors/-",
"value": {
"type": "JSON_PATH",
"value": {
"operator": "EXISTS",
"path": "{PROFILE_ATTRIBUTE}"
}
}
}
]
{DATAFLOW_ID}
{ETAG}
Ottieni {ETAG}
dalla risposta della fase precedente, Creare un flusso di dati. Il formato della risposta nel passaggio precedente contiene virgolette di escape. Devi utilizzare i valori senza escape nell’intestazione della richiesta. Vedi l’esempio seguente:
- Esempio di risposta:
"etag":""7400453a-0000-1a00-0000-62b1c7a90000""
- Valore da utilizzare nella richiesta:
"etag": "7400453a-0000-1a00-0000-62b1c7a90000"
Il valore etag viene aggiornato a ogni aggiornamento riuscito di un flusso di dati.
{SEGMENT_ID}
{PROFILE_ATTRIBUTE}
"person.lastName"
op
add
, replace
, e remove
. Per aggiungere un pubblico a un flusso di dati, utilizza add
operazione.path
value
id
name
Risposta
Cercate una risposta 202 OK. Nessun corpo di risposta restituito. Per verificare che la richiesta sia corretta, consulta il passaggio successivo, Convalidare il flusso di dati.
Convalidare il flusso di dati
Come ultimo passaggio dell’esercitazione, devi verificare che i tipi di pubblico e gli attributi del profilo siano stati effettivamente mappati correttamente al flusso di dati.
Per convalidarlo, esegui la seguente richiesta GET:
Formato API
GET /flows
Richiesta
curl --location --request PATCH 'https://platform.adobe.io/data/foundation/flowservice/flows/{DATAFLOW_ID}' \
--header 'Authorization: Bearer {ACCESS_TOKEN}' \
--header 'x-api-key: {API_KEY}' \
--header 'x-gw-ims-org-id: {ORG_ID}' \
--header 'Content-Type: application/json' \
--header 'x-sandbox-name: prod' \
--header 'If-Match: "{ETAG}"'
{DATAFLOW_ID}
: utilizza il flusso di dati del passaggio precedente.{ETAG}
: utilizza l’eTag del passaggio precedente.
Risposta
La risposta restituita deve includere nel transformations
specifica i tipi di pubblico e gli attributi del profilo inviati nel passaggio precedente. Un esempio transformations
Il parametro nella risposta potrebbe essere simile al seguente:
"transformations": [
{
"name": "GeneralTransform",
"params": {
"profileSelectors": {
"selectors": [
{
"type": "JSON_PATH",
"value": {
"path": "personalEmail.address",
"operator": "EXISTS"
}
},
{
"type": "JSON_PATH",
"value": {
"path": "person.lastname",
"operator": "EXISTS"
}
}
]
},
"segmentSelectors": {
"selectors": [
{
"type": "PLATFORM_SEGMENT",
"value": {
"name": "Men over 50",
"description": "",
"id": "72ddd79b-6b0a-4e97-a8d2-112ccd81bd02"
}
}
]
}
}
}
],
Dati esportati
{
"person": {
"email": "yourstruly@adobe.com"
},
"segmentMembership": {
"ups": {
"72ddd79b-6b0a-4e97-a8d2-112ccd81bd02": {
"lastQualificationTime": "2020-03-03T21:24:39Z",
"status": "exited"
},
"7841ba61-23c1-4bb3-a495-00d695fe1e93": {
"lastQualificationTime": "2020-03-04T23:37:33Z",
"status": "realized"
}
}
},
"identityMap": {
"ecid": [
{
"id": "14575006536349286404619648085736425115"
},
{
"id": "66478888669296734530114754794777368480"
}
],
"email_lc_sha256": [
{
"id": "655332b5fa2aea4498bf7a290cff017cb4"
},
{
"id": "66baf76ef9de8b42df8903f00e0e3dc0b7"
}
]
}
}
Utilizzo di Postman raccolte per la connessione a destinazioni di streaming collections
Per connetterti alle destinazioni di streaming descritte in questo tutorial in modo più semplice, puoi utilizzare Postman.
Postman è uno strumento che puoi utilizzare per effettuare chiamate API e gestire librerie di chiamate e ambienti predefiniti.
Per questo tutorial specifico, le seguenti Postman le raccolte sono state aggiunte:
- AWS Kinesis Postman raccolta
- Azure Event Hubs Postman raccolta
Clic qui per scaricare l’archivio delle raccolte.
Ogni raccolta include le richieste e le variabili di ambiente necessarie, per AWS Kinesis, e Azure Event Hub, rispettivamente.
Come utilizzare il Postman raccolte how-to-use-postman-collections
Per connettersi correttamente alle destinazioni utilizzando il Postman raccolte, segui questi passaggi:
- Scarica e installa Postman;
- Scarica e decomprimi le raccolte collegate;
- Importare le raccolte dalle cartelle corrispondenti in Postman;
- Compilare le variabili di ambiente seguendo le istruzioni riportate in questo articolo;
- Esegui il API richieste da Postman, in base alle istruzioni contenute in questo articolo.
Gestione degli errori API api-error-handling
Gli endpoint API in questa esercitazione seguono i principi generali dei messaggi di errore API di Experience Platform. Fai riferimento a Codici di stato API e errori di intestazione della richiesta per ulteriori informazioni sull’interpretazione delle risposte di errore, consulta la guida alla risoluzione dei problemi di Platform.
Passaggi successivi next-steps
Seguendo questa esercitazione, hai connesso correttamente Platform a una delle tue destinazioni di streaming preferite e hai impostato un flusso di dati per la rispettiva destinazione. I dati in uscita possono ora essere utilizzati nella destinazione per l’analisi dei clienti o per qualsiasi altra operazione sui dati che desideri eseguire. Per ulteriori informazioni, consulta le pagine seguenti: