1. Introduzione
I servizi di offerte e aste sono composti da quattro servizi che consentono ad acquirenti e venditori di facilitare un'asta Protected Audience:
Stack dell'acquirente:
- Servizio frontend per gli acquirenti
- Servizio offerte
Serie di venditori:
- Servizio frontend per i venditori
- Servizio aste
Questo codelab illustra la configurazione e il test della configurazione end-to-end nell'ambiente locale. La procedura dettagliata dovrebbe richiedere circa un'ora, escluso il tempo di compilazione iniziale del servizio.
Anche se potresti lavorare solo sul codice lato acquirente o lato venditore, è utile configurare il flusso end-to-end nel tuo ambiente locale per comprendere meglio il funzionamento delle piattaforme lato acquirente e lato venditore. Se configuri entrambi gli stack, puoi avere maggiore sicurezza in un secondo momento quando esegui l'integrazione con lo stack dell'acquirente o del venditore di un'altra parte. Testare i servizi in locale consente anche di risparmiare sui costi di sviluppo.
In questo codelab utilizzeremo l'app di test locale di B&A come guida.
L'app di test locale complementare ospita varie risorse per acquirenti e venditori utilizzate in un'asta B&A. L'app fornisce anche un'interfaccia utente all'indirizzo http://localhost:3000
in cui puoi simulare varie configurazioni di asta.
2. Configurazione dell'ambiente
2.1 Prepara una macchina Linux
Utilizza un computer Linux locale o esegui il provisioning di una VM Linux del provider cloud che preferisci. Per migliorare il tempo di compilazione, sono consigliati almeno 16 core e sono preferiti più di 32 core.
Tieni presente che caricheremo una pagina HTML da http://localhost:3000
di questa macchina. Se la VM non fornisce una GUI, assicurati che la porta 3000
sia accessibile al tuo computer locale in modo da poterti connettere.
2.2 Installa Docker
Utilizziamo Docker per eseguire i servizi e l'applicazione di test locale.
Utilizzeremo lo script di utilità per installare Docker in un ambiente di test.
# Install Docker
> curl -fsSL https://get.docker.com -o get-docker.sh
> sudo sh get-docker.sh
# Set up sudo-less Docker
> sudo groupadd docker
> sudo usermod -aG docker $USER
> newgrp docker
# Test
> docker run hello-world
Avviso: con la configurazione senza sudo, il gruppo Docker concede all'utente privilegi a livello di root. Per saperne di più, consulta la guida a Docker senza sudo.
2.3 Avvia l'app di test locale complementare
L'app complementare fornisce risorse come script di offerta/punteggio simulati ed endpoint BYOS K/V simulati. L'app deve essere avviata prima di eseguire i servizi B&A in modo che le risorse possano essere caricate nei servizi.
Scarica il repository dell'app di test locale:
git clone https://github.com/privacysandbox/bidding-auction-local-testing-app.git
Dalla radice del repository, esegui lo script di configurazione:
./setup
Lo script di configurazione creerà la rete Docker ba-dev
, genererà i certificati SSL e compilerà l'immagine dell'app di test.
Una volta completata la compilazione, esegui lo script di avvio:
./start
3. Crea ed esegui B&A localmente
3.1 Esegui il pull dei servizi B&A
Eseguiremo due insiemi di servizi B&A sulla stessa macchina, quindi scaricheremo il repository in due cartelle diverse.
Set A:
Estrai il repository B&A:
git clone https://github.com/privacysandbox/bidding-auction-servers.git bidding-auction-servers-set-a
Set B
Estrai il repository B&A:
git clone https://github.com/privacysandbox/bidding-auction-servers.git bidding-auction-servers-set-b
`
3.2 Crea i servizi
Dalla cartella principale di ogni cartella B&A, esegui il seguente comando per compilare tutti e quattro i servizi:
production/packaging/build_and_test_all_in_docker \
--service-path bidding_service \
--service-path auction_service \
--service-path buyer_frontend_service \
--service-path seller_frontend_service \
--platform gcp \
--instance local \
--no-precommit \
--no-tests \
--build-flavor non_prod \
--gcp-skip-image-upload
Il comando riportato sopra creerà un'istanza local
della build di sviluppo (non_prod
) per la piattaforma Google Cloud (gcp
) di tutti e quattro i servizi. Se necessario, aggiorna il flag --platform
con il provider di servizi cloud che preferisci. Per scoprire di più sui flag di compilazione, controlla il file build_and_test_all_docker
.
La compilazione iniziale può richiedere 2 ore se utilizzi una macchina a 64 core e il tempo di compilazione varia in modo lineare in base al numero di core. Se utilizzi una macchina a 32 core, l'operazione potrebbe richiedere 4 ore. Se utilizzi una macchina a 16 core, potrebbero essere necessarie 8 ore.
Tieni presente che le build successive utilizzano la cache e ogni build dovrebbe richiedere circa 5-20 minuti.
(Ho incontrato Randall Munroe di xkcd mentre scrivevo questo codelab e gli ho detto che ho aggiunto questa vignetta qui)
3.3 Esegui i servizi
Per i nostri test, eseguiremo 8 servizi (4 servizi per stack). Ogni comando è configurato per utilizzare le risorse fornite dall'app di test locale. È vivamente consigliato utilizzare un gestore delle finestre come tmux
.
Apri almeno altre 8 finestre del terminale ed esegui i seguenti comandi in ogni sessione.
Tieni presente che il server dell'app di test locale deve essere già in esecuzione in un processo separato, poiché gli script di offerta e di punteggio verranno pubblicati dall'app.
3.3.1 Comandi Set A
Servizio | Comando |
Servizio di offerte |
|
|
|
|
|
|
|
3.3.2 Comandi del set B
Servizio | Comando |
Servizio di offerte |
|
|
|
|
|
|
|
3.3.2 Variabili di ambiente per gli script di avvio locali
Le seguenti variabili di ambiente possono essere utilizzate per controllare il comportamento all'avvio.
Variabile di ambiente | Disponibilità | Descrizione |
| Tutti i servizi | Flag da impostare per il comando docker |
| Tutti i servizi | Quando esegui il test sulla tua macchina locale, potrebbe essere necessario utilizzare un certificato autofirmato che non supera il controllo di verifica della controparte SSL di Il valore predefinito è |
| Tutti i servizi | Il livello dei log di servizio. Il livello più alto fornisce più log. 0 è il valore più basso e 10 il più alto. Il valore predefinito è |
| Servizio offerte | Porta del servizio di offerte. Il valore predefinito è |
| Servizio offerte | URL della logica di offerta |
| Servizio offerte | Esportazione dei dati per l'addestramento del modello |
| Servizio offerte | Argomenti per l'inferenza delle offerte |
| Servizio BFE | Porta del servizio BFE. Il valore predefinito è |
| Servizio BFE | Indirizzo K/V BYOS dell'acquirente |
| Servizio BFE | Indirizzo K/V TEE dell'acquirente |
| Servizio BFE | Indirizzo del servizio di offerte dell'acquirente |
| Servizio aste | La porta del servizio aste. Il valore predefinito è |
| Servizio aste | URL della logica di punteggio |
| Servizio aste | URL del report sulle vittorie dell'acquirente |
| Servizio aste | Script per i report sulle vittorie dell'acquirente |
| Servizio aste | Script per i report sulle vittorie dell'acquirente per PAS |
| Servizio SFE | Porta del servizio SFE. Il valore predefinito è |
| Servizio SFE | Indirizzo del servizio aste del venditore |
| Servizio SFE | Indirizzo K/V BYOS del venditore |
| Servizio SFE | Indirizzo K/V TEE del venditore |
| Servizio SFE | Provenienza del venditore |
| Servizio SFE | Indirizzi BFE dell'acquirente |
4. Eseguire il test con Secure Invoke dalla riga di comando
4.1 Test SFE
Puoi anche utilizzare lo strumento Secure Invoke incluso nel pacchetto di servizi B&A per chiamare i servizi direttamente dalla riga di comando.
4.1.2 Payload SelectAd
SFE
La seguente richiesta JSON è stata compilata con la configurazione dell'asta B2B con un solo venditore di SSP-BA
:
{
"auction_config": {
"seller": "https://localhost:6002",
"auction_signals": "{\"testKey\":\"someValue\"}",
"seller_signals": "{\"testKey\":\"someValue\"}",
"buyer_list": [
"https://localhost:5003",
"https://localhost:5004"
],
"per_buyer_config": {
"https://localhost:5003": { "buyer_signals": "{\"testKey\":\"someValue\"}" },
"https://localhost:5004": { "buyer_signals": "{\"testKey\":\"someValue\"}" }
}
},
"raw_protected_audience_input": {
"publisher_name": "http://localhost:4001",
"generation_id": "1210718540",
"enable_debug_reporting": true,
"raw_buyer_input": {
"https://localhost:5003": {
"interest_groups": [
{
"name": "dsp-x-demo",
"ad_render_ids": ["1234"],
"bidding_signals_keys": ["demo-key"],
"browser_signals": { "bid_count": "1", "join_count": "1", "prev_wins": "[]" },
"user_bidding_signals": "[1, 2, 3]"
}
]
},
"https://localhost:5004": {
"interest_groups": [
{
"name": "dsp-x-demo",
"ad_render_ids": ["1234"],
"bidding_signals_keys": ["demo-key"],
"browser_signals": { "bid_count": "1", "join_count": "1", "prev_wins": "[]" },
"user_bidding_signals": "[1, 2, 3]"
}
]
}
}
}
}
Salva il file come sfe-test.json
nella cartella principale del repository dei servizi B&A del set A(lo script di compilazione B&A copierà i file nella cartella principale del repository nella cartella /src/workspace
dell'immagine Docker).
4.1.2 Chiamare l'API SFE con Secure Invoke
Esegui il seguente comando dalla cartella principale del repository dei servizi B&A:
DOCKER_NETWORK=ba-dev ./builders/tools/bazel-debian run //tools/secure_invoke:invoke \
-- \
-target_service=sfe \
-input_file=/src/workspace/sfe-test.json \
-host_addr=192.168.84.104:50053 \
-client_ip=192.168.84.100 \
-insecure=true
Se gli stack B&A sono configurati correttamente, riceverai la seguente risposta di esito positivo:
{"adRenderUrl":"https://localhost:5004/ad.html","interestGroupName":"dsp-x-demo","interestGroupOwner":"https://localhost:5004","score":39,"bid":39,"biddingGroups":{"https://localhost:5003":{"index":[0]},"https://localhost:5004":{"index":[0]}}}
4.2 Test BFE
4.2.1 Richiesta GetBids
BFE
{
"buyer_input": {
"interest_groups": {
"name": "dsp-x-demo",
"ad_render_ids": ["1234"],
"bidding_signals_keys": ["demo-key"],
"browser_signals": { "bid_count": "1", "join_count": "1", "prev_wins": "[]" }
}
},
"auction_signals": "{\"testKey\":\"someValue\"}",
"buyer_signals": "{\"testKey\":\"someValue\"}",
"seller": "https://localhost:6002",
"publisher_name": "http://localhost:4001",
"enable_debug_reporting": true,
"client_type": "CLIENT_TYPE_BROWSER"
}
Salva il file come bfe-test.json
nella cartella principale del repository di B&A Services.
4.2.2 Chiama BFE con Secure Invoke
Esegui il seguente comando dalla cartella principale del repository dei servizi B&A:
DOCKER_NETWORK=ba-dev ./builders/tools/bazel-debian run //tools/secure_invoke:invoke \
-- \
-target_service=bfe \
-input_file="/src/workspace/bfe-test.json" \
-host_addr="192.168.84.102:50051" \
-client_ip=192.168.84.100 \
-insecure=true
Se gli stack B&A sono configurati correttamente, BFE restituisce la seguente risposta:
{"bids":[{"bid":6,"render":"https://localhost:5003/ad.html","interestGroupName":"dsp-x-demo"}],"updateInterestGroupList":{}}
4.3 Controlla i log di SFE
Vai al terminale e controlla i log SFE. Esamineremo alcuni dei log più importanti nell'output.
4.3.1 Payload criptato della richiesta di SelectAd
In questo output del log SFE, troviamo il payload criptato della chiamata navigator.getInterestGroupAdAuctionData()
. Questo payload viene generato dal browser, inviato dal tag a SAS e poi inoltrato da SAS a SFE:
I1210 21:20:47.266673 37 select_ad_reactor.cc:228] Protected auction ciphertext: AEAAIAABAAKg3OQSSLEBMR1MmJiwfOT8uef41iE+DQIvKUowsQvVcGbWZ+r17ff2r/iTbEnwqLPtpAxSTy77mi+cVV5cKjkKb4piaZnKiCDIMCyEvrQUD4+BG+HgrbUFhqiWPmQhNThvInMaHuYrXG7xushbRtvSPsVzEl6iBZcLZzD7W3CHMFK7bnJ+ufu52W6B7/8dOQ1gZW6SpwXMGNcrurTGoucbwbZRIPqCcbZk76J1gB69wrDYRo1wQ6jmBleLM36nulxbEj/sHhpQIgr895aKqEGQ3Fy+/HHPTO+zHphcX44YeF6mZ/I+WxZTDxCi1x27nI4yvzC8vI4a/giJN5XUlJZGb/fMrj3/Qly+gwJ8lbxdX+4GWTooDoS4MTtiBpJqh9wkIQ5XwfO54p8Kv6j/tk+51hOfVkOdtGwX0LvVrWT9PiJOJHa23nZ1fLg/22mTe05xdbR3WVeA+xiO9YwF4ozyCYDRUkDyWB/3k9RuaaT9H5S1szVpuOuD2nYSRpT9svmpfG4kipiS6BTPZPX2whDlukpuuoFgdiDtH6cFShNhZ5C47R0ayAvaZ1QSpOZMWfA6pdl4nhvNLpOKesKY/KFDEBzpUXRDsQWsfvmdqFl1mCeX9rOrEc9rodYVLXXhM8GPycehHmvqkccTBW6kipOQlmnSdIYaFmtWSFpUrzxajGkct3mZdTjVjOf...
4.3.2 Payload decriptato
In questo output, troviamo il payload decriptato della chiamata navigator.getInterestGroupAdAuctionData()
:
I1210 21:20:47.267590 37 select_ad_reactor.cc:347] (generationId: c2824bfc-d515-4a1a-9de9-7660ad963252) Decoded BuyerInput:
https://localhost:5003 : {interest_groups { name: "dsp-x-demo" bidding_signals_keys: "demo-key" browser_signals { join_count: 1 recency: 7 prev_wins: "[]" } }}
4.3.3 Richiesta GetBids
al BFE
La richiesta GetBids
viene inviata da SFE a BFE:
I1210 21:20:47.267710 37 select_ad_reactor.cc:751] (generationId: c2824bfc-d515-4a1a-9de9-7660ad963252) Getting bid from a BFE
I1210 21:20:47.267729 37 buyer_frontend_async_client.cc:52] Raw request:
buyer_input {
interest_groups {
name: "dsp-x-demo"
bidding_signals_keys: "demo-key"
browser_signals {
join_count: 1
recency: 7
prev_wins: "[]"
}
}
}
auction_signals: "{\"testKey\":\"someValue\"}"
buyer_signals: "{\"testKey\": \"someValue\"}"
seller: "https://localhost:6002"
publisher_name: "localhost"
enable_debug_reporting: true
log_context {
generation_id: "c2824bfc-d515-4a1a-9de9-7660ad963252"
}
client_type: CLIENT_TYPE_BROWSER
4.3.4 Risposta di GetBids
da BFE
BFE risponde con l'offerta:
I1210 21:20:47.282549 41 select_ad_reactor.cc:856] (generationId: c2824bfc-d515-4a1a-9de9-7660ad963252) Received response from a BFE ...
I1210 21:20:47.282552 41 select_ad_reactor.cc:859] (generationId: c2824bfc-d515-4a1a-9de9-7660ad963252)
GetBidsResponse:
bids {
bid: 9
render: "https://localhost:5003/ad.html"
interest_group_name: "dsp-x-demo"
}
update_interest_group_list {
}
4.3.5 ScoreAds
richiesta al Servizio aste
Dopo aver ricevuto le offerte, SFE effettua la chiamata ScoreAds
al servizio di asta per ogni offerta:
I1210 21:20:47.287898 18 select_ad_reactor.cc:1280] (generationId: c2824bfc-d515-4a1a-9de9-7660ad963252) ScoreAdsRawRequest:
ad_bids {
bid: 9
render: "https://localhost:5003/ad.html"
interest_group_name: "dsp-x-demo"
interest_group_owner: "https://localhost:5003"
join_count: 1
k_anon_status: true
}
seller_signals: "{\"testKey\":\"someValue\"}"
auction_signals: "{\"testKey\":\"someValue\"}"
scoring_signals: "{\"renderUrls\":{\"https://localhost:5003/ad.html\":[1,2,3],\"https://localhost:5004/ad.html\":[1,2,3]}}"
publisher_hostname: "localhost"
enable_debug_reporting: true
log_context {
generation_id: "c2824bfc-d515-4a1a-9de9-7660ad963252"
}
per_buyer_signals {
key: "https://localhost:5003"
value: "{\"testKey\": \"someValue\"}"
}
per_buyer_signals {
key: "https://localhost:5004"
value: "{\"testKey\": \"someValue\"}"
}
seller: "https://localhost:6002"
4.3.6 Risposta del ScoreAds
Servizio aste
Il servizio di asta del venditore risponde con il punteggio di desiderabilità:
I1210 21:20:47.298029 33 default_async_grpc_client.h:134] Decrypting the response ...
I1210 21:20:47.298100 33 default_async_grpc_client.h:152] Decryption/decoding of response succeeded: ad_score {
desirability: 9
render: "https://localhost:5003/ad.html"
interest_group_name: "dsp-x-demo"
buyer_bid: 9
interest_group_owner: "https://localhost:5003"
win_reporting_urls {
top_level_seller_reporting_urls {
}
}
ad_type: AD_TYPE_PROTECTED_AUDIENCE_AD
}
4.3.7 Risposta SelectAd
del team SFE
La risposta SelectAd
dell'SFE viene criptata e inviata al SAS:
I1210 21:20:47.298428 33 select_ad_reactor.cc:1413] (generationId: c2824bfc-d515-4a1a-9de9-7660ad963252) Encrypted SelectAdResponse:
auction_result_ciphertext: "\023\233\252\321\000\331M\327\216\201S\332kl?\322\255\247\312\375h\007W\367\016\366FR\364\275\377\326\027h\204\203\265\t\271-\333\266\tH\342\033F\001k\211C\026V\013\271\255(\236\273\353\260\275\007\346\027\340?\005|\235S\244\265\2563U\246\322\177%\200/\3175\034 \020\024\362\345\3263\356F.s\261\005\231\262Z\000\330x\0230\335>\"\217\254\010\254\330>\206\007\274\235\037`\370W\032\207\356\367\206\026\341.i\"$\370\367\2554i\247\354\304e\306\2466S\337\321w\327+!\316\035:\002\231\246\362\366qm\211\000\013\343\345\224{\365py\361\374\316\202\217-\244\302\331\216D\025W#.\304nH\235\315\311<#\342\344\324\257\354\2441\251\312\320\226\342\021\377>3`\347/\350\254h\306\273\023\365\340@\321\2412\254\323\213\0137,\013n\220|\211\323/\030)\314\263\223\355>\254\312aa`!\375\335\023Z\234p\206\037\001\355\261{$\025+\341\275\327Ny\342\342\264=\376\2138\224\026\2058\251\020\202\245*46\023\307)K\342\364k<\2104r\247\034\216}\034\001\374\215\363\210\026\275\371S>\031;f.b\260\363\257.\255\023I\341A\237*_T\355\262\005\344L\336D%\327\267@\302$\300\340\203c\350|\337>C\275c\260\202o\315xp\260\257\241\305U\nK\033\274L6\025\350\373a:\253\212&>p\210\215\017&^\327\005_\037\020\212\362\351\341\231@g\372\0037\275b:)\207\303d\243?\261O\266\343\214\200\004\247\372\022S\326\200\037\330\252r\257+e\273[\231\202\3625{\330\213\240\370\245\\\214\350/\313\ty/\004\313\0304k\223\354\374\305\233\264\224K\344\241\251\322?\323q6\314D\027\200\203\035]\023O\306\230?\203\237:\254\305\265\332\330\2641l\322\020\022\330O-\242\207>Q\364_{F\235\353tk\207\035\205\005\221\373\207\0143\035\014\322\240H\220\347%\262f\347\017\352\273\265\231\014\204\r\312\254z\000\340&\354\222\323\245\356\217(i\246"
5. Eseguire il test con l'app di test locale dal browser
5.1 Apri Chrome
Leggi l'articolo di Chromium sull'avvio di Chrome dalla riga di comando e avvialo con i seguenti flag:
google-chrome --enable-privacy-sandbox-ads-apis --disable-features=EnforcePrivacySandboxAttestations,FledgeEnforceKAnonymity --enable-features=FledgeBiddingAndAuctionServerAPI,FledgeBiddingAndAuctionServer:FledgeBiddingAndAuctionKeyURL/https%3A%2F%2Fstorage.googleapis.com%2Fba-test-buyer%2Fcoordinator-test-key.json
Il flag è impostato per caricare la chiave del coordinatore simulato che abbiamo ospitato all'indirizzo https://storage.googleapis.com/ba-test-buyer/coordinator-test-key.json
Importante: assicurati di aver chiuso completamente tutte le istanze di Chrome prima di aprirlo dalla riga di comando con i flag B&A. Per uscire da tutti i processi di Chrome, prova a eseguire ps aux | grep -ie chrome/chrome | awk '{print $2}' | xargs kill -9
dalla riga di comando.
5.2 Visita l'interfaccia utente dell'app di test locale
L'interfaccia utente dell'app è disponibile all'indirizzo http://localhost:3000 nell'istanza del browser Chrome aperta con i flag. L'indirizzo esatto che visiti potrebbe essere diverso se utilizzi una VM con un nome host diverso.
Nella riga superiore dell'app, il riquadro "Controlli" contiene i pulsanti per simulare diverse configurazioni dell'asta. Gli altri due riquadri contengono iframe dei siti dell'inserzionista e del publisher.
Quando fai clic sul pulsante "Carica i tag DSP" nell'iframe della pagina dell'inserzionista, alla pagina viene aggiunto uno script di ogni DSP. Questi script aggiungono l'utente ai gruppi di interesse. Apri Chrome DevTools e vai ad "Application/Storage/Interest Groups" (Applicazione/Memoria/Gruppi di interesse) per esaminare i gruppi di interesse uniti dai tag DSP:
Poi, fai clic sui pulsanti nel riquadro "Controlli" per simulare vari tipi di asta.
Se i servizi B&A e l'app di test locale sono configurati correttamente, l'annuncio precedente viene visualizzato nel riquadro "Iframe del sito del publisher".
5.3 Configurazione dell'asta per le app di test locale
Nell'app di test locale complementare sono ospitati i seguenti partecipanti, differenziati dal numero di porta (una porta diversa è considerata cross-origin):
Partecipante | Descrizione | Porta |
Inserzionista | Carica i tag DSP nella pagina |
|
Publisher | Carica i tag SSP nella pagina |
|
| Acquirente on-device |
|
| Acquirente on-device |
|
| Acquirente di B&A |
|
| Acquirente di B&A |
|
| Venditore di primo livello |
|
| Venditore solo sul dispositivo |
|
| Venditore solo B&A |
|
| Venditore con modalità miste |
|
Esistono quattro DSP:
DSP-A
eDSP-B
partecipano alle aste on-deviceDSP-X
eDSP-Y
partecipano alle aste B&A
Esistono quattro SSP e ogni venditore esegue una configurazione dell'asta diversa:
SSP-OD
esegue un'asta solo sul dispositivoSSP-BA
gestisce un'asta solo per B&ASSP-MIX
esegue un'asta in modalità mistaSSP-TOP
gestisce un'asta multi-venditoreSSP-OD/BA/MIX
partecipa come venditore di componenti all'asta multi-venditore diSSP-TOP
Per l'architettura completa, consulta il diagramma di progettazione.
5.4 Configurazione di aste e offerte
In questo codelab, eseguiamo due insiemi di A/B uno accanto all'altro.
Partenza | Servizio | Partecipante | Indirizzo di rete |
Set A | Servizio offerte |
|
|
Servizio BFE |
|
| |
Servizio aste |
|
| |
Servizio SFE |
|
| |
Set B | Servizio offerte |
|
|
Servizio BFE |
|
| |
Servizio aste |
|
| |
Servizio SFE |
|
| |
App | App di test locale | Tutti |
|
- Nell'insieme A, i servizi per gli acquirenti vengono utilizzati da
DSP-X
e i servizi per i venditori daSSP-BA
- Nell'insieme B, i servizi per l'acquirente vengono utilizzati da
DSP-Y
e i servizi per il venditore daSSP-MIX
Per la comunicazione tra l'app di test locale e i servizi B&A, viene utilizzata una rete bridge Docker. La rete bridge ba-dev
viene creata dallo script di configurazione dell'app di test locale. Ai servizi B&A viene assegnato un indirizzo IP nella subnet di 192.168.84.0
.
Ad esempio, quando chiami l'SFE del set A dall'applicazione, viene utilizzato l'indirizzo di rete 192.168.84.104:50053
. Quando carichi lo script di offerte simulata da DSP-X in BFE, viene utilizzato https://192.168.84.100:5003/generate-bid.js
.
6. Conclusione
A questo punto, ci auguriamo che tu abbia acquisito familiarità con l'esecuzione dello stack di servizi B&A localmente sulla tua macchina e che tu abbia compreso meglio il modo in cui i servizi comunicano tra loro.
6.1. Assistenza tecnica
- Se hai domande sulla configurazione dell'app di test locale, apri un problema nel repository LTA.
- Se hai domande sui servizi di offerte e aste, apri un problema nel repository dei servizi di offerte e aste.
- Se hai una domanda su Privacy Sandbox in generale, apri un problema nel repository privacy-sandbox-dev-support.
6.2 Scopri di più
- Scopri di più sull'architettura B&A per il web
- Scopri di più sull'integrazione del venditore con B&A per il web