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, creare una connessione a una destinazione di archiviazione cloud in streaming (Amazon Kinesis o Azure Event Hubs), creare un flusso di dati alla nuova destinazione creata e attivare i dati nella nuova destinazione creata.
Questa esercitazione utilizza la destinazione Amazon Kinesis 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 le esercitazioni Connettere una destinazione e Attivare i dati del pubblico per le destinazioni di esportazione del pubblico in streaming.
Introduzione
Questa guida richiede una buona conoscenza dei seguenti componenti di Adobe Experience Platform:
- Experience Data Model (XDM) System: framework standardizzato in base al quale Experience Platform organizza i dati sull'esperienza del cliente.
- Catalog Service: Catalog è il sistema di registrazione per la posizione e la derivazione dei dati all'interno di Experience Platform.
- Sandbox: Experience Platform fornisce sandbox virtuali che suddividono 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 le chiamate API di esempio 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 l'esercitazione di autenticazione. Il completamento del tutorial di autenticazione fornisce i valori per ciascuna delle intestazioni richieste in tutte le chiamate API di Experience Platform, come mostrato di seguito:
- Autorizzazione: Bearer
{ACCESS_TOKEN}
- x-api-key:
{API_KEY}
- x-gw-ims-org-id:
{ORG_ID}
Le risorse di Experience 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 Flow 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
della panoramica dei passaggi di destinazione
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. Eseguire la seguente richiesta di GET all'endpoint connectionSpecs
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
Una risposta corretta contiene un elenco di 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 connettersi e inviare tipi di pubblico a Amazon Kinesis o Azure Event Hubs, cerca il seguente snippet 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
della panoramica dei passaggi di destinazione
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 Experience 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 Experience 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}
: utilizzare 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}
: utilizzare l'ID ottenuto nel passaggio precedente.{CONNECTION_SPEC_ID}
: utilizzare 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 di origine al servizio profili. 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
della panoramica dei passaggi di destinazione
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}
: utilizzare l'ID della specifica di connessione ottenuto nel passaggio Ottenere 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 il percorso di archiviazione Amazon Kinesis.{SECRET_KEY}
: Per Amazon Kinesis connessioni. La chiave segreta per il percorso di archiviazione di Amazon Kinesis.{REGION}
: Per Amazon Kinesis connessioni. L'area nell'account Amazon Kinesis in cui Platform invierà i dati in streaming.{SAS_KEY_NAME}
: Per Azure Event Hubs connessioni. Inserire il nome della chiave SAS. Scopri come eseguire l'autenticazione in Azure Event Hubs con le chiavi SAS nella documentazione di Microsoft.{SAS_KEY}
: Per Azure Event Hubs connessioni. Compila la tua chiave SAS. Scopri come eseguire l'autenticazione in Azure Event Hubs con le chiavi SAS nella documentazione di Microsoft.{EVENT_HUB_NAMESPACE}
: Per Azure Event Hubs connessioni. Inserisci il namespace Azure Event Hubs in cui Platform trasmetterà i tuoi dati in streaming. Per ulteriori informazioni, vedere Creare uno spazio dei nomi degli hub eventi nella documentazione di Microsoft.
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}
: utilizzare l'ID connessione di base ottenuto nel passaggio precedente.{CONNECTION_SPEC_ID}
: utilizzare la specifica di connessione ottenuta nel passaggio Ottenere l'elenco delle destinazioni disponibili.{NAME_OF_DATA_STREAM}
: Per Amazon Kinesis connessioni. Fornisci il nome del flusso di dati esistente nel tuo account Amazon Kinesis. Platform esporterà i dati in questo flusso.{REGION}
: Per Amazon Kinesis connessioni. L'area dell'account Amazon Kinesis in cui Platform invierà i tuoi dati in streaming.{EVENT_HUB_NAME}
: Per Azure Event Hubs connessioni. Inserisci il nome Azure Event Hub in cui Platform invierà i tuoi dati in streaming. Per ulteriori informazioni, vedere Creare un hub eventi nella documentazione di Microsoft.
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
della panoramica dei passaggi di destinazione
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 Experience 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}
: usa l'ID della connessione di origine ottenuto nel passaggio Connetti all'Experience Platform.{TARGET_CONNECTION_ID}
: utilizzare l'ID connessione di destinazione ottenuto nel passaggio Connetti alla 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
della panoramica dei passaggi di destinazione
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 la specifica 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 nel passaggio precedente, Crea 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, utilizzare l'operazione add
.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}
: utilizzare il flusso di dati del passaggio precedente.{ETAG}
: utilizzare l'etag del passaggio precedente.
Risposta
La risposta restituita deve includere nel parametro transformations
i tipi di pubblico e gli attributi di profilo inviati nel passaggio precedente. Un parametro transformations
di esempio 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 connettersi alle destinazioni di streaming descritte in questo tutorial in modo più semplice, puoi utilizzare Postman.
Postman è uno strumento che è possibile utilizzare per effettuare chiamate API e gestire librerie di chiamate e ambienti predefiniti.
Per questo tutorial specifico, sono state allegate le seguenti Postman raccolte:
- AWS Kinesis Postman raccolta
- Azure Event Hubs Postman raccolta
Fai clic qui per scaricare l'archivio delle raccolte.
Ogni raccolta include le richieste e le variabili di ambiente necessarie, rispettivamente per AWS Kinesis e Azure Event Hub.
Come utilizzare le raccolte Postman how-to-use-postman-collections
Per connettersi correttamente alle destinazioni utilizzando le raccolte Postman allegate, eseguire la procedura seguente:
- Scaricare e installare Postman;
- Scarica e decomprimi le raccolte associate;
- Importare le raccolte dalle cartelle corrispondenti in Postman;
- Compilare le variabili di ambiente seguendo le istruzioni riportate in questo articolo;
- Eseguire le richieste API 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. Per ulteriori informazioni sull'interpretazione delle risposte di errore, consultare codici di stato API e errori di intestazione della richiesta nella 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: