1. Introduction
Les services d'enchères et de mise aux enchères se composent de quatre services permettant aux acheteurs et aux vendeurs de faciliter une enchère Protected Audience :
Pile de l'acheteur :
- Service frontend pour les acheteurs
- Service d'enchères
Pile du vendeur :
- Service d'interface utilisateur pour les vendeurs
- Service d'enchères
Cet atelier de programmation vous explique comment configurer et tester la configuration de bout en bout dans votre environnement local. Le tutoriel devrait prendre environ une heure, sans compter le temps de création du service initial.
Même si vous ne travaillez que sur le code côté achat ou côté vente, il est utile de configurer le flux de bout en bout dans votre environnement local pour mieux comprendre comment les piles d'acheteur et de vendeur fonctionnent ensemble. En configurant les deux piles, vous pourrez être plus confiant lorsque vous vous intégrerez à la pile d'acheteur ou de vendeur respective d'une autre partie. Tester les services localement permet également de réduire vos coûts de développement.
Dans cet atelier de programmation, nous utiliserons l'application de test local B&A comme guide.
L'application de test local associée héberge diverses ressources pour les acheteurs et les vendeurs utilisées dans une enchère B&A. L'application fournit également une interface utilisateur à l'adresse http://localhost:3000, qui vous permet de simuler différentes configurations d'enchères.
2. Configuration de l'environnement
2.1 Préparer une machine Linux
Utilisez une machine Linux locale ou provisionnez une VM Linux du fournisseur cloud de votre choix. Pour améliorer le temps de compilation, nous vous recommandons d'utiliser au moins 16 cœurs (32 cœurs ou plus étant l'idéal).
Notez que nous allons charger une page HTML à partir de http://localhost:3000 de cette machine. Si la VM ne fournit pas d'interface utilisateur graphique, assurez-vous que le port 3000 est accessible à votre machine locale pour que vous puissiez vous y connecter.
2.2 Installer Docker
Nous utilisons Docker pour exécuter les services et l'application de test locale.
Nous allons utiliser le script pratique pour installer Docker dans un environnement de 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
Avertissement : Avec la configuration sans sudo, le groupe Docker accorde des droits de niveau racine à l'utilisateur. Pour en savoir plus, consultez le guide Docker sans sudo.
2.3 Démarrer l'application de test local associée
L'application associée fournit des ressources telles que des scripts de simulation d'enchères ou de scoring, ainsi que des points de terminaison BYOS K/V fictifs. L'application doit être démarrée avant l'exécution des services B&A afin que les ressources puissent être chargées dans les services.
Extrayez le dépôt de l'application de test local :
git clone https://github.com/privacysandbox/bidding-auction-local-testing-app.git
À partir de la racine du dépôt, exécutez le script de configuration :
./setup
Le script d'installation crée le réseau Docker ba-dev, génère des certificats SSL et crée l'image de l'application de test.
Une fois la compilation réussie, exécutez le script de démarrage :
./start
3. Compiler et exécuter B&A en local
3.1 Menu déroulant "Enchères et mise aux enchères"
Nous allons exécuter deux ensembles de services B&A sur la même machine. Nous allons donc extraire le dépôt dans deux dossiers différents.
Ensemble A :
Extrayez le dépôt B&A :
git clone https://github.com/privacysandbox/bidding-auction-servers.git bidding-auction-servers-set-a
Ensemble B
Extrayez le dépôt B&A :
git clone https://github.com/privacysandbox/bidding-auction-servers.git bidding-auction-servers-set-b
`
3.2 Compiler les services
Depuis le dossier racine de chaque dossier B&A, exécutez la commande suivante pour créer les quatre services :
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
Cette commande créera une instance local de la version de développement (non_prod) pour Google Cloud (gcp) des quatre services. Si nécessaire, définissez le flag --platform sur le fournisseur de services cloud de votre choix. Pour en savoir plus sur les indicateurs de compilation, consultez le fichier build_and_test_all_docker.
La compilation initiale peut prendre deux heures si vous utilisez une machine à 64 cœurs. La durée de compilation augmente de manière linéaire en fonction du nombre de cœurs. Si vous utilisez une machine à 32 cœurs, cela peut prendre quatre heures. Si vous utilisez une machine à 16 cœurs, cela peut prendre 8 heures.
Notez que les compilations suivantes utilisent le cache et que chacune d'elles devrait prendre entre 5 et 20 minutes.
Bande dessinée xkcd pertinente :
Deux programmeurs se détendent pendant qu'une compilation est en cours d'exécution.
(J'ai rencontré Randall Munroe de xkcd en écrivant cet atelier de programmation et je lui ai dit que j'avais ajouté cette bande dessinée ici.)
3.3 Exécuter les services
Pour nos tests, nous allons exécuter huit services (quatre par pile). Chaque commande est configurée pour utiliser les ressources fournies par l'application Local Testing. Il est vivement recommandé d'utiliser un gestionnaire de fenêtres tel que tmux.
Ouvrez au moins huit fenêtres de terminal supplémentaires et exécutez les commandes suivantes dans chaque session.
Notez que le serveur de l'application de test en local doit déjà être en cours d'exécution dans un processus distinct, car les scripts d'enchères et de scoring seront fournis par l'application.
3.3.1 Commandes de l'ensemble A
Service | Commande |
|
|
Service |
|
|
|
Service |
|
3.3.2 Ensemble de commandes B
Service | Commande |
|
|
Service |
|
|
|
Service |
|
3.3.2 Variables d'environnement pour les scripts de démarrage locaux
Les variables d'environnement suivantes peuvent être utilisées pour contrôler le comportement au démarrage.
Variable d'environnement | Disponibilité | Description |
| Tous les services | Indicateurs à définir pour la commande Docker |
| Tous les services | Lorsque vous effectuez des tests sur votre machine locale, vous devrez peut-être utiliser un certificat autosigné qui échoue au contrôle de validation SSL du pair La valeur par défaut est |
| Tous les services | Niveau des journaux de service. Un niveau plus élevé fournit plus de journaux. 0 est la valeur la plus basse et 10, la valeur la plus élevée. La valeur par défaut est |
| Service d'enchères | Port du service d'enchères. La valeur par défaut est |
| Service d'enchères | URL de la logique d'enchères |
| Service d'enchères | Sortie des données pour l'entraînement du modèle |
| Service d'enchères | Arguments pour l'inférence d'enchères |
| Service BFE | Port du service BFE. La valeur par défaut est |
| Service BFE | Adresse BYOS K/V de l'acheteur |
| Service BFE | Adresse TEE K/V de l'acheteur |
| Service BFE | Adresse du service d'enchères de l'acheteur |
| Service d'enchères | Port du service d'enchères. La valeur par défaut est |
| Service d'enchères | URL de la logique d'évaluation |
| Service d'enchères | URL de rapport sur les victoires de l'acheteur |
| Service d'enchères | Script de rapport sur les victoires de l'acheteur |
| Service d'enchères | Script de reporting des victoires de l'acheteur pour PAS |
| Service SFE | Port du service SFE. La valeur par défaut est |
| Service SFE | Adresse du service d'enchères du vendeur |
| Service SFE | Adresse K/V BYOS du vendeur |
| Service SFE | Adresse TEE K/V du vendeur |
| Service SFE | Origine du vendeur |
| Service SFE | Adresses BFE de l'acheteur |
4. Tester avec Secure Invoke à partir de la ligne de commande
4.1 Tests SFE
Vous pouvez également utiliser l'outil Secure Invoke inclus dans le package B&A Services pour appeler les services directement depuis la ligne de commande.
4.1.2 Charge utile SFE SelectAd
La requête JSON suivante a été remplie avec la configuration des enchères B&A à vendeur unique de 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]"
}
]
}
}
}
}
Enregistrez le fichier sous le nom sfe-test.json dans le dossier racine du dépôt des services B&A de l'ensemble A(le script de compilation B&A copie les fichiers du dossier racine du dépôt dans le dossier /src/workspace de l'image Docker).
4.1.2 Appeler SFE avec Secure Invoke
Exécutez la commande suivante à partir du dossier racine du dépôt 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
Si les piles B&A sont correctement configurées, vous recevrez la réponse de réussite suivante :
{"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 Tests BFE
4.2.1 Demande 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"
}
Enregistrez le fichier sous le nom bfe-test.json dans le dossier racine du dépôt B&A Services.
4.2.2 Appeler le BFE avec Secure Invoke
Exécutez la commande suivante à partir du dossier racine du dépôt 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
Si les piles B&A sont correctement configurées, BFE renvoie la réponse suivante :
{"bids":[{"bid":6,"render":"https://localhost:5003/ad.html","interestGroupName":"dsp-x-demo"}],"updateInterestGroupList":{}}
4.3 Vérifier les journaux SFE
Accédez au terminal et vérifiez les journaux SFE. Nous allons passer en revue certains des journaux notables dans la sortie.
4.3.1 Charge utile chiffrée de la requête SelectAd
Dans ce résultat de journal SFE, nous trouvons la charge utile chiffrée de l'appel navigator.getInterestGroupAdAuctionData(). Cette charge utile est générée par le navigateur, envoyée de la balise à SAS, puis transférée par SAS à 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 Charge utile déchiffrée
Dans ce résultat, nous trouvons la charge utile déchiffrée de l'appel 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 Demande GetBids à BFE
La demande GetBids est envoyée de SFE à 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 Réponse GetBids de BFE
La BFE répond avec l'enchère :
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 demande au service d'enchères
Une fois les enchères reçues, l'appel ScoreAds est effectué par SFE au service d'enchères pour chaque enchère :
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 Réponse ScoreAds du service d'enchères
Le service d'enchères du vendeur répond avec le score de désirabilité :
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 Réponse SelectAd de la SFE
La réponse SelectAd du SFE est chiffrée et envoyée à 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. Tester avec l'application de test local depuis le navigateur
5.1 Ouvrir Chrome
Lisez l'article Chromium sur le démarrage de Chrome à partir de la ligne de commande, puis démarrez-le avec les indicateurs suivants :
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
L'indicateur est défini pour charger la clé du coordinateur fictif que nous avons hébergée sur https://storage.googleapis.com/ba-test-buyer/coordinator-test-key.json.
Important : Assurez-vous d'avoir complètement fermé toutes les instances de Chrome avant de l'ouvrir à partir de la ligne de commande avec les indicateurs B&A. Pour quitter tous les processus Chrome, essayez d'exécuter ps aux | grep -ie chrome/chrome | awk '{print $2}' | xargs kill -9 à partir de la ligne de commande.
5.2 Accéder à l'UI de l'application de test local
L'UI de l'application est disponible à l'adresse http://localhost:3000 dans l'instance du navigateur Chrome que vous avez ouverte avec les indicateurs. L'adresse exacte que vous consultez peut être différente si vous utilisez une VM avec un nom d'hôte différent.
Capture d'écran de l'application de test local consultée dans un navigateur
Dans la première rangée de l'application, le panneau "Controls" (Commandes) contient les boutons permettant de simuler différentes configurations d'enchères. Les deux autres panneaux contiennent des iFrames provenant des sites de l'annonceur et de l'éditeur.
Capture d'écran des groupes d'intérêt dans les outils pour les développeurs Chrome.
Cliquez ensuite sur les boutons du panneau "Commandes" pour simuler différents types d'enchères.
Si les services B&A et l'application de test local sont correctement configurés, l'annonce précédente s'affiche dans le panneau "Iframe du site de l'éditeur".
5.3 Configuration des enchères de l'application de test local
Dans l'application de test local associée, les participants suivants sont hébergés, différenciés par le numéro de port (un port différent est considéré comme une origine croisée) :
Participant | Description | Port |
Annonceur | Charge les balises DSP sur la page |
|
Éditeur | Charge les tags SSP sur la page |
|
| Acheteur sur l'appareil |
|
| Acheteur sur l'appareil |
|
| Acheteur B&A |
|
| Acheteur B&A |
|
| Vendeur de premier niveau |
|
| Vendeur sur l'appareil uniquement |
|
| Vendeur B&A uniquement |
|
| Vendeur multimodal |
|
Voici les quatre DSP :
DSP-AetDSP-Bparticipent aux enchères sur l'appareilDSP-XetDSP-Yparticipent aux enchères sur les marques et les produits.
Il existe quatre SSP, et chaque vendeur exécute une configuration d'enchères différente :
SSP-ODexécute une enchère uniquement sur l'appareilSSP-BAorganise une enchère axée uniquement sur les achats et les enchèresSSP-MIXorganise une vente aux enchères en mode mixte.SSP-TOPexécute une enchère multivendeur.SSP-OD/BA/MIXparticiper en tant que vendeurs de composants à l'enchère multivendeur deSSP-TOP
Pour obtenir l'architecture complète, consultez le schéma de conception.
5.4 Configuration des services d'enchères et de mise aux enchères
Dans cet atelier de programmation, nous exécutons deux ensembles de tests A/B côte à côte.
Défini | Service | Participant | Adresse réseau |
Ensemble A | Service d'enchères |
|
|
Service BFE |
|
| |
Service d'enchères |
|
| |
Service SFE |
|
| |
Ensemble B | Service d'enchères |
|
|
Service BFE |
|
| |
Service d'enchères |
|
| |
Service SFE |
|
| |
Application | Application de test local | Tous |
|
- Dans l'ensemble A, les services d'acheteur sont utilisés par
DSP-Xet les services de vendeur sont utilisés parSSP-BA. - Dans l'ensemble B, les services d'acheteur sont utilisés par
DSP-Yet les services de vendeur sont utilisés parSSP-MIX.
Un réseau pont Docker est utilisé pour la communication entre l'application Local Testing et les services B&A. Le réseau de pont ba-dev est créé par le script de configuration de l'application Local Testing. Les services B&A se voient attribuer une adresse IP dans le sous-réseau 192.168.84.0.
Par exemple, lorsque vous appelez le SFE de l'ensemble A depuis l'application, l'adresse réseau 192.168.84.104:50053 est utilisée. Lorsque vous chargez le script d'enchères fictives de DSP-X dans BFE, https://192.168.84.100:5003/generate-bid.js est utilisé.
6. Conclusion
Nous espérons que vous vous êtes familiarisé avec l'exécution de la pile de services B&A en local sur votre machine et que vous avez mieux compris comment les services communiquent entre eux.
6.1. Assistance technique
- Si vous avez des questions sur la configuration de l'application de test en local, ouvrez un problème dans le dépôt LTA.
- Si vous avez une question sur les services d'enchères et de mise aux enchères, ouvrez un problème dans le dépôt des services B&A.
6.2 En savoir plus
- En savoir plus sur l'architecture B&A pour le Web
- En savoir plus sur l'intégration des vendeurs à B&A pour le Web