1. Introducción
Los servicios de ofertas y subastas (B&A) incluyen 4 servicios para que los compradores y vendedores faciliten una subasta de Protected Audience:
Pila del comprador:
- Servicio de frontend para compradores
- Servicio de licitación
Pila de herramientas del vendedor:
- Servicio de frontend para vendedores
- Servicio de subastas
En este codelab, se explica cómo configurar y probar la configuración de extremo a extremo en tu entorno local. Se espera que el recorrido dure aproximadamente 1 hora, sin incluir el tiempo de compilación inicial del servicio.
Aunque solo trabajes en el código del comprador o del vendedor, es útil configurar el flujo de extremo a extremo en tu entorno local para comprender mejor cómo funcionan las pilas del comprador y del vendedor entre sí. Si configuras ambas pilas, podrás tener más confianza cuando integres la pila de comprador o vendedor respectiva de otra parte. Probar los servicios de forma local también ahorra costos de desarrollo.
En este codelab, usaremos la app de pruebas locales de B&A como guía.
La app complementaria de pruebas locales aloja varios recursos para compradores y vendedores que se usan en una subasta de B&A. La app también proporciona una IU en http://localhost:3000 en la que puedes simular varias configuraciones de subastas.
2. Configuración del entorno
2.1 Prepara una máquina Linux
Usa una máquina Linux local o aprovisiona una VM de Linux del proveedor de servicios en la nube que elijas. Para mejorar el tiempo de compilación, se recomienda un mínimo de 16 núcleos y se prefieren 32 o más.
Ten en cuenta que cargaremos una página HTML desde http://localhost:3000 de esta máquina. Si la VM no proporciona una GUI, asegúrate de que el puerto 3000 sea accesible para tu máquina local de modo que puedas conectarte a él.
2.2 Instala Docker
Usamos Docker para ejecutar los servicios y la aplicación de prueba local.
Usaremos la secuencia de comandos de conveniencia para instalar Docker en un entorno de prueba.
# 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
Advertencia: Con la configuración sin sudo, el grupo de Docker otorga privilegios a nivel de raíz al usuario. Lee la guía de Docker sin sudo para obtener más información.
2.3 Inicia la app complementaria de pruebas locales
La app complementaria proporciona recursos, como secuencias de comandos de simulación de ofertas o de puntuación, y extremos de BYOS simulados de K/V. La app debe iniciarse antes de ejecutar los servicios de B&A para que los recursos se puedan cargar en los servicios.
Extrae el repositorio de la app de pruebas locales:
git clone https://github.com/privacysandbox/bidding-auction-local-testing-app.git
Desde la raíz del repositorio, ejecuta la secuencia de comandos de configuración:
./setup
La secuencia de comandos de configuración creará la red de Docker ba-dev, generará certificados SSL y compilará la imagen de la app de prueba.
Una vez que la compilación se realice correctamente, ejecuta la secuencia de comandos de inicio:
./start
3. Compila y ejecuta B&A de forma local
3.1 Despliega los servicios de B&A
Ejecutaremos dos conjuntos de servicios de B&A en la misma máquina, por lo que extraeremos el repositorio en dos carpetas diferentes.
Conjunto A:
Extrae el repositorio de B&A:
git clone https://github.com/privacysandbox/bidding-auction-servers.git bidding-auction-servers-set-a
Conjunto B
Extrae el repositorio de B&A:
git clone https://github.com/privacysandbox/bidding-auction-servers.git bidding-auction-servers-set-b
`
3.2 Compila los servicios
Desde la carpeta raíz de cada carpeta de B&A, ejecuta el siguiente comando para compilar los 4 servicios:
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
Este comando compilará una instancia local de la compilación de desarrollo (non_prod) para Google Cloud (gcp) de los 4 servicios. Si es necesario, actualiza la marca --platform al proveedor de servicios en la nube que elijas. Para obtener más información sobre las marcas de compilación, consulta el archivo build_and_test_all_docker.
La compilación inicial puede tardar 2 horas si se usa una máquina de 64 núcleos, y el tiempo de compilación se ajusta de forma lineal según la cantidad de núcleos. Si tienes una máquina de 32 núcleos, puede tardar 4 horas. Si usas una máquina de 16 núcleos, puede tardar 8 horas.
Ten en cuenta que las compilaciones posteriores usan la caché y que cada compilación debería tardar entre 5 y 20 minutos.
Dos programadores se divierten mientras se ejecuta una compilación.
(Conocí a Randall Munroe de xkcd mientras escribía este codelab y le dije que agregué esta tira cómica aquí).
3.3 Ejecuta los servicios
Para nuestras pruebas, ejecutaremos 8 servicios (4 servicios por pila). Cada comando está configurado para usar los recursos que proporciona la app de Local Testing. Se recomienda usar un administrador de ventanas como tmux.
Abre al menos 8 ventanas de terminal adicionales y ejecuta los siguientes comandos en cada sesión.
Ten en cuenta que el servidor de la app de prueba local ya debe estar ejecutándose en un proceso independiente, ya que la app publicará las secuencias de comandos de ofertas y puntuación.
3.3.1 Comandos de conjunto A
Servicio | Comando |
|
|
Servicio de |
|
|
|
Servicio de |
|
3.3.2 Comandos del conjunto B
Servicio | Comando |
|
|
Servicio de |
|
|
|
Servicio de |
|
3.3.2 Variables de entorno para las secuencias de comandos de inicio locales
Las siguientes variables de entorno se pueden usar para controlar el comportamiento de inicio.
Variable de entorno | Disponibilidad | Descripción |
| Todos los servicios | Marcas que se deben establecer para el comando docker |
| Todos los servicios | Cuando realices pruebas en tu máquina local, es posible que debas usar un certificado autofirmado que no supere la verificación de pares SSL de La configuración predeterminada es |
| Todos los servicios | Es el nivel de los registros de servicio. El nivel más alto proporciona más registros. 0 es el más bajo y 10 es el más alto. La configuración predeterminada es |
| Servicio de licitación | Es el puerto del servicio de licitación. La configuración predeterminada es |
| Servicio de licitación | URL de la lógica de ofertas |
| Servicio de licitación | Salida de datos para el entrenamiento de modelos |
| Servicio de licitación | Argumentos para la inferencia de ofertas |
| Servicio de BFE | Es el puerto del servicio de BFE. La configuración predeterminada es |
| Servicio de BFE | Dirección de K/V de BYOS del comprador |
| Servicio de BFE | Dirección K/V del TEE del comprador |
| Servicio de BFE | Dirección del servicio de licitación del comprador |
| Servicio de subastas | Es el puerto del servicio de subastas. La configuración predeterminada es |
| Servicio de subastas | URL de la lógica de puntuación |
| Servicio de subastas | URL de informes de victorias del comprador |
| Servicio de subastas | Secuencia de comandos de informes de victorias del comprador |
| Servicio de subastas | Guion de informes de victorias del comprador para PAS |
| Servicio de SFE | Es el puerto del servicio de SFE. La configuración predeterminada es |
| Servicio de SFE | Dirección del servicio de subastas del vendedor |
| Servicio de SFE | Dirección de K/V de BYOS del vendedor |
| Servicio de SFE | Dirección de K/V de TEE del vendedor |
| Servicio de SFE | Origen del vendedor |
| Servicio de SFE | Direcciones de BFE del comprador |
4. Cómo realizar pruebas con Secure Invoke desde la línea de comandos
4.1 Pruebas de SFE
También puedes usar la herramienta Secure Invoke que se incluye en el paquete de B&A Services para llamar a los servicios directamente desde la línea de comandos.
4.1.2 Carga útil de SFE SelectAd
La siguiente solicitud JSON se completó con la configuración de la subasta de B&A de un solo vendedor 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]"
}
]
}
}
}
}
Guarda el archivo como sfe-test.json en la carpeta raíz del repositorio de B&A Services del conjunto A(el script de compilación de B&A copiará los archivos de la carpeta raíz del repositorio en la carpeta /src/workspace de la imagen de Docker).
4.1.2 Llama a SFE con Secure Invoke
Ejecuta el siguiente comando desde la carpeta raíz del repositorio de 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 las pilas de B&A están configuradas correctamente, recibirás la siguiente respuesta de éxito:
{"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 Pruebas de BFE
4.2.1 Solicitud de 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"
}
Guarda el archivo como bfe-test.json en la carpeta raíz del repositorio de B&A Services.
4.2.2 Llama a BFE con Secure Invoke
Ejecuta el siguiente comando desde la carpeta raíz del repositorio de 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 las pilas de B&A están configuradas correctamente, BFE devuelve la siguiente respuesta:
{"bids":[{"bid":6,"render":"https://localhost:5003/ad.html","interestGroupName":"dsp-x-demo"}],"updateInterestGroupList":{}}
4.3 Verifica los registros de SFE
Visita la terminal y verifica los registros de SFE. Revisaremos algunos de los registros más importantes del resultado.
4.3.1 Carga útil encriptada de la solicitud de SelectAd
En este resultado del registro de SFE, encontramos la carga útil encriptada de la llamada navigator.getInterestGroupAdAuctionData(). El navegador genera esta carga útil, la etiqueta la envía a SAS y, luego, SAS la reenvía 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 Carga útil descifrada
En este resultado, encontramos la carga útil desencriptada de la llamada a 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 Solicitud GetBids a BFE
La solicitud de GetBids se envía desde el SFE al 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 Respuesta GetBids de BFE
El BFE responde con la oferta:
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 Solicitud ScoreAds al servicio de subastas
Después de recibir las ofertas, SFE realiza la llamada ScoreAds al servicio de subastas para cada oferta:
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 Respuesta ScoreAds del servicio de subastas
El servicio de subastas del vendedor responde con la puntuación de conveniencia:
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 respuesta de SFE
La respuesta SelectAd del SFE se encripta y se envía 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. Realiza pruebas con la app de prueba local desde el navegador
5.1 Abre Chrome
Lee el artículo de Chromium sobre cómo iniciar Chrome desde la línea de comandos y ejecútalo con las siguientes marcas:
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
La marca se configura para cargar la clave del coordinador simulado que alojamos en https://storage.googleapis.com/ba-test-buyer/coordinator-test-key.json.
Importante: Asegúrate de salir por completo de todas las instancias de Chrome antes de abrirlo desde la línea de comandos con las marcas de B&A. Para salir de todos los procesos de Chrome, intenta ejecutar ps aux | grep -ie chrome/chrome | awk '{print $2}' | xargs kill -9 desde la línea de comandos.
5.2 Visita la IU de la app de Local Testing
Puedes encontrar la IU de la app en http://localhost:3000 en la instancia del navegador Chrome que abriste con las marcas. La dirección exacta que visites puede ser diferente si usas una VM con un nombre de host diferente.
Una captura de pantalla de la app de prueba local que se visita en un navegador
En la fila superior de la app, el panel "Controles" contiene los botones para simular diferentes configuraciones de la subasta. Los otros dos paneles contienen elementos iframe de los sitios del anunciante y del publicador.
Captura de pantalla de los grupos de interés en las Herramientas para desarrolladores de Chrome.
Luego, haz clic en los botones del panel "Controles" para simular varios tipos de subastas.

Si los servicios de B&A y la app de Local Testing están configurados correctamente, el anuncio anterior se renderizará en el panel "Iframe del sitio del publicador".
5.3 Configuración de la subasta de la app de pruebas locales
En la app complementaria de pruebas locales, se alojan los siguientes participantes, diferenciados por el número de puerto (se considera que un puerto diferente es de origen cruzado):
Participante | Descripción | Puerto |
Anunciante | Carga etiquetas de DSP en la página |
|
Editor | Carga etiquetas de SSP en la página |
|
| Comprador en el dispositivo |
|
| Comprador en el dispositivo |
|
| Comprador de B&A |
|
| Comprador de B&A |
|
| Vendedor de nivel superior |
|
| Vendedor solo en el dispositivo |
|
| Vendedor solo de B&A |
|
| Vendedor de varios medios de transporte |
|
Existen cuatro DSP:
DSP-AyDSP-Bparticipan en subastas en el dispositivoDSP-XyDSP-Yparticipan en las subastas de B&A
Hay cuatro SSP y cada vendedor ejecuta una configuración de subasta diferente:
SSP-ODejecuta una subasta solo en el dispositivoSSP-BAejecuta una subasta solo de B&ASSP-MIXejecuta una subasta en modo mixtoSSP-TOPejecuta una subasta de varios vendedoresSSP-OD/BA/MIXparticipa como vendedor de componentes de la subasta de varios vendedores deSSP-TOP
Para ver la arquitectura completa, consulta el diagrama de diseño.
5.4 Configuración de los servicios de ofertas y subastas
En este codelab, ejecutamos dos conjuntos de B&A uno junto al otro.
Establecer | Servicio | Participante | Dirección de red |
Conjunto A | Servicio de licitación |
|
|
Servicio de BFE |
|
| |
Servicio de subastas |
|
| |
Servicio de SFE |
|
| |
Conjunto B | Servicio de licitación |
|
|
Servicio de BFE |
|
| |
Servicio de subastas |
|
| |
Servicio de SFE |
|
| |
Aplicación | App de pruebas locales | Todos |
|
- En el conjunto A,
DSP-Xusa los servicios del comprador ySSP-BAusa los servicios del vendedor. - En el conjunto B,
DSP-Yusa los servicios del comprador ySSP-MIXusa los servicios del vendedor.
Para la comunicación entre la app de Local Testing y los servicios de B&A, se usa una red de puente de Docker. La red de puente ba-dev se crea con el secuencia de comandos de configuración de la app de Local Testing. A los servicios de B&A se les asigna una dirección IP en la subred de 192.168.84.0.
Por ejemplo, cuando llamas al SFE del conjunto A desde la aplicación, se usa la dirección de red de 192.168.84.104:50053. Cuando cargas la secuencia de comandos de ofertas simuladas desde DSP-X en BFE, se usa https://192.168.84.100:5003/generate-bid.js.
6. Conclusión
A estas alturas, esperamos que te hayas familiarizado con la ejecución de la pila de servicios de B&A de forma local en tu máquina y que comprendas mejor cómo se comunican los servicios entre sí.
6.1. Asistencia técnica
- Si tienes alguna pregunta sobre la configuración de la app de Local Testing, abre un problema en el repositorio de la LTA.
- Si tienes alguna pregunta sobre los servicios de ofertas y subastas, abre un problema en el repositorio de los servicios de ofertas y subastas.
6.2 Más información
- Obtén más información sobre la arquitectura de B&A para la Web
- Obtén más información sobre la integración del vendedor con B&A para la Web