1. Introduzione
I servizi di offerte e aste sono costituiti da quattro servizi per acquirenti e venditori per facilitare un'asta Protected Audience:
Stack dell'acquirente:
- Servizio front-end per gli acquirenti
- Servizio offerte
Seller stack:
- Servizio front-end del venditore
- Servizio aste
Questo codelab ti guida nella configurazione e nel test della configurazione end-to-end nel tuo ambiente locale. La procedura dettagliata dovrebbe richiedere circa un'ora, escluso il tempo di creazione iniziale del servizio.
Anche se lavori solo sul codice lato acquirente o lato venditore, è utile configurare il flusso end-to-end nel tuo ambiente locale per capire meglio come funzionano gli stack dell'acquirente e del venditore. Se configuri entrambi gli stack, potrai avere più sicurezza in un secondo momento quando esegui l'integrazione con lo stack di acquirente o venditore dell'altra parte. Il test dei servizi in locale consente anche di risparmiare sui costi di sviluppo.
In questo codelab, utilizzeremo l'app di test locale B&A come guida.
L'app complementare per i test locali ospita varie risorse per acquirenti e venditori utilizzate in un'asta di B&A. L'app fornisce anche una UI all'indirizzo http://localhost:3000, dove puoi simulare varie configurazioni dell'asta.
2. Configurazione dell'ambiente
2.1 Prepara una macchina Linux
Utilizza una macchina 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 come minimo e sono preferibili 32 o più 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 alla tua macchina 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 convenienza 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ù, leggi la guida a Docker senza sudo.
2.3 Avvia l'app complementare per i test locali
L'app complementare fornisce risorse come script di offerta o 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.
Trascina verso il basso 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 creerà l'immagine dell'app di test.
Una volta completata la build, esegui lo script di avvio:
./start
3. Creare ed eseguire B&A in locale
3.1 Trascina verso il basso B&A Services
Eseguiamo due set di servizi B&A sulla stessa macchina, quindi estraiamo il repository in due cartelle diverse.
Set A:
Scarica il repository B&A:
git clone https://github.com/privacysandbox/bidding-auction-servers.git bidding-auction-servers-set-a
Set B
Scarica 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 root di ogni cartella B&A, esegui questo comando per creare 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
Questo comando creerà un'istanza local della build di sviluppo (non_prod) per 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 build, consulta il file build_and_test_all_docker.
La build iniziale potrebbe richiedere 2 ore se utilizzi una macchina a 64 core e il tempo di build viene scalato linearmente 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.
Due programmatori si rilassano mentre è in esecuzione una build.
(Ho incontrato Randall Munroe di xkcd mentre scrivevo questo codelab e gli ho detto che avevo aggiunto questa striscia 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. È consigliabile utilizzare un window manager come tmux.
Apri almeno altre otto 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 valutazione verranno forniti dall'app.
3.3.1 Set A commands
Servizio | Comando |
|
|
|
|
Servizio aste |
|
Servizio |
|
3.3.2 Set B commands
Servizio | Comando |
|
|
|
|
Servizio aste |
|
Servizio |
|
3.3.2 Variabili di ambiente per gli script di avvio locali
Per controllare il comportamento di avvio, puoi utilizzare le seguenti variabili di ambiente.
Variabile di ambiente | Disponibilità | Descrizione |
| Tutti i servizi | Flag da impostare per il comando docker |
| Tutti i servizi | Quando esegui test sulla tua macchina locale, potresti dover utilizzare un certificato autofirmato che non supera il controllo di verifica peer SSL di Il valore predefinito è |
| Tutti i servizi | Il livello dei log di servizio. Un livello più alto fornisce più log. 0 è il valore più basso e 10 il più alto. Il valore predefinito è |
| Servizio offerte | Porta del servizio offerte. Il valore predefinito è |
| Servizio offerte | URL della logica di offerta |
| Servizio offerte | Egress dei dati per l'addestramento del modello |
| Servizio offerte | Argomenti a favore dell'inferenza delle offerte |
| Servizio BFE | Porta del servizio BFE. Il valore predefinito è |
| Servizio BFE | Indirizzo BYOS K/V dell'acquirente |
| Servizio BFE | Indirizzo TEE K/V dell'acquirente |
| Servizio BFE | Indirizzo del servizio di offerta dell'acquirente |
| Servizio aste | Porta del servizio aste. Il valore predefinito è |
| Servizio aste | URL della logica di assegnazione del punteggio |
| Servizio aste | URL del report sulle vittorie dell'acquirente |
| Servizio aste | Script di report sulle vittorie dell'acquirente |
| Servizio aste | Script di registrazione delle 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 BYOS K/V del venditore |
| Servizio SFE | Indirizzo TEE K/V del venditore |
| Servizio SFE | Origine del venditore |
| Servizio SFE | Indirizzi BFE dell'acquirente |
4. Testare 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 SFE SelectAd
La seguente richiesta JSON è stata compilata con la configurazione dell'asta B&A per un singolo 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 Set A's B&A Services(lo script di build B&A copierà i file nella cartella principale del repository nella cartella /src/workspace dell'immagine Docker).
4.1.2 Chiama SFE con Secure Invoke
Esegui questo comando dalla cartella principale del repository B&A Services:
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 di BFE GetBids
{
"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 il backend per l'esecuzione con Secure Invoke
Esegui questo comando dalla cartella principale del repository B&A Services:
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 SFE
Visita il terminale e controlla i log SFE. Esamineremo alcuni dei log più importanti nell'output.
4.3.1 Payload criptato della richiesta 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 SAS lo inoltra 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 a 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 GetBids risposta di 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 Richiesta ScoreAds al servizio aste
Una volta ricevute le offerte, SFE effettua la chiamata ScoreAds al servizio aste 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 ScoreAds dal servizio aste
Il servizio di aste 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 SelectAd risposta di SFE
La risposta SelectAd dell'SFE è criptata e inviata a 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. Testare 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 si trova all'indirizzo http://localhost:3000 nell'istanza del browser Chrome che hai aperto con i flag. L'indirizzo esatto che visiti potrebbe essere diverso se utilizzi una VM con un nome host diverso.
Uno screenshot dell'app di test locale visitata in un browser
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.
Uno screenshot dei gruppi di interesse in Chrome DevTools.
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 dell'app di test locale
Nell'app di test locale complementare sono ospitati i seguenti partecipanti, differenziati in base al numero di porta (una porta diversa è considerata cross-origin):
Partecipante | Descrizione | Porta |
Inserzionista | Carica i tag DSP sulla pagina |
|
Publisher | Carica i tag SSP sulla pagina |
|
| Acquirente sul dispositivo |
|
| Acquirente sul dispositivo |
|
| Acquirente di B&A |
|
| Acquirente di B&A |
|
| Venditore di primo livello |
|
| Venditore solo sul dispositivo |
|
| Venditore solo B&A |
|
| Venditore multimodale |
|
Esistono quattro DSP:
DSP-AeDSP-Bpartecipano alle aste sul dispositivoDSP-XeDSP-Ypartecipano alle aste di tipo Asta e offerta.
Esistono quattro SSP e ogni venditore esegue una configurazione dell'asta diversa:
SSP-ODesegue un'asta solo sul dispositivoSSP-BAesegue un'asta solo per le offerte e i budgetSSP-MIXesegue un'asta in modalità mistaSSP-TOPesegue un'asta multi-venditoreSSP-OD/BA/MIXpartecipare in qualità di venditori di componenti all'asta multi-venditore diSSP-TOP
Per l'architettura completa, consulta il diagramma di progettazione.
5.4 Configurazione dei servizi di offerte e aste
In questo codelab, eseguiamo due set di B&A uno accanto all'altro.
Configurato | 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 |
|
- Nel set A, i servizi per l'acquirente vengono utilizzati da
DSP-Xe i servizi per il venditore vengono utilizzati daSSP-BA - Nel set B, i servizi per l'acquirente vengono utilizzati da
DSP-Ye i servizi per il venditore vengono utilizzati 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 di 192.168.84.104:50053. Quando carichi lo script di offerta 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 in locale sul tuo computer e che tu abbia compreso meglio il modo in cui i servizi comunicano tra loro.
6.1. Assistenza tecnica
- Se hai una domanda sulla configurazione dell'app di test locale, apri un problema nel repository LTA.
- Se hai una domanda sui servizi di aste e offerte, apri un problema nel repository dei servizi di aste e offerte.
6.2 Scopri di più
- Scopri di più sull'architettura di B&A per il web
- Scopri di più sull'integrazione del venditore con B&A per il web