1. 1. Предпосылки
Расчетное время выполнения: 1-2 часа.
Существует 2 режима выполнения этой кодовой лаборатории: локальное тестирование или агрегационная служба . Для локального тестирования требуется локальная машина и браузер Chrome (без создания/использования ресурсов Google Cloud). Для агрегационной службы требуется полное развертывание агрегационной службы в Google Cloud.
Для выполнения этой кодовой лаборатории в любом режиме требуется несколько предварительных условий. Каждое требование помечено соответствующим образом, требуется ли оно для локального тестирования или агрегационной службы.
1.1. Полная регистрация и аттестация (служба агрегации)
Чтобы использовать API Privacy Sandbox, убедитесь, что вы завершили регистрацию и аттестацию для Chrome и Android.
1.2. Включить API конфиденциальности рекламы (локальная служба тестирования и агрегации)
Поскольку мы будем использовать Privacy Sandbox, мы рекомендуем вам включить API Privacy Sandbox Ads.
В браузере перейдите на страницу chrome://settings/adPrivacy
и включите все API конфиденциальности рекламы.
Также проверьте, включены ли сторонние файлы cookie .
Из chrome://settings/cookies
убедитесь, что сторонние файлы cookie НЕ блокируются. В зависимости от версии Chrome вы можете увидеть разные параметры в этом меню настроек, но приемлемые конфигурации включают:
- «Блокировать все сторонние файлы cookie» = ОТКЛЮЧЕНО
- «Блокировать сторонние файлы cookie» = ОТКЛЮЧЕНО
- «Блокировать сторонние файлы cookie в режиме инкогнито» = ВКЛЮЧЕНО
Включение файлов cookie
1.3. Загрузите инструмент локального тестирования (локальное тестирование)
Локальное тестирование потребует загрузки Local Testing Tool. Инструмент сгенерирует сводные отчеты из незашифрованных отладочных отчетов.
Инструмент локального тестирования доступен для загрузки в архивах Cloud Function JAR на GitHub . Он должен называться LocalTestingTool_{version}.jar
.
1.4. Убедитесь, что установлена JAVA JRE (локальная служба тестирования и агрегации)
Откройте «Терминал» и используйте java --version
, чтобы проверить, установлена ли на вашем компьютере Java или openJDK.
Проверьте версию Java.
Если он не установлен, вы можете загрузить и установить его с сайта Java или сайта openJDK .
1.5. Загрузить aggregatable_report_converter (локальная служба тестирования и агрегации)
Вы можете загрузить копию aggregatable_report_converter из репозитория Privacy Sandbox Demos GitHub . Репозиторий GitHub упоминает использование IntelliJ или Eclipse, но ни один из них не является обязательным. Если вы не используете эти инструменты, загрузите вместо этого файл JAR в свою локальную среду.
1.6. Настройка среды облачной платформы (служба агрегации)
Aggregation Service требует использования Trusted Execution Environment, которая использует поставщика облачных услуг. В этой кодовой лаборатории Aggregation Service будет развернут в Google Cloud, но AWS также поддерживается .
Следуйте инструкциям по развертыванию на GitHub , чтобы настроить интерфейс командной строки gcloud, загрузить двоичные файлы и модули Terraform и создать ресурсы Google Cloud для службы агрегации.
Основные шаги в инструкциях по развертыванию:
- Настройте CLI «gcloud» и Terraform в своей среде.
- Создайте контейнер облачного хранилища для хранения состояния Terraform.
- Зависимости загрузки.
- Обновите
adtech_setup.auto.tfvars
и запуститеadtech_setup
Terraform. Пример файлаadtech_setup.auto.tfvars
см. в Приложении. Обратите внимание на имя контейнера данных, который здесь создается — он будет использоваться в codelab для хранения создаваемых нами файлов. - Обновите
dev.auto.tfvars
, олицетворите учетную запись службы развертывания и запуститеdev
Terraform. Пример файлаdev.auto.tfvars
см. в Приложении. - После завершения развертывания извлеките
frontend_service_cloudfunction_url
из выходных данных Terraform , который понадобится для отправки запросов в службу агрегации на последующих этапах.
1.7. Полное подключение службы агрегации (служба агрегации)
Для использования службы агрегации требуется подключение к координаторам. Заполните форму подключения к службе агрегации , указав свой сайт отчетности и другую информацию, выбрав «Google Cloud» и введя адрес своей учетной записи службы. Эта учетная запись службы создается в предыдущем предварительном условии (1.6. Настройка среды Google Cloud). (Подсказка: если вы используете предоставленные имена по умолчанию, эта учетная запись службы будет начинаться с «worker-sa@»).
Процесс адаптации может занять до 2 недель.
1.8 Определите свой метод вызова конечных точек API (служба агрегации)
Эта кодовая лаборатория предоставляет 2 варианта вызова конечных точек API Aggregation Service: cURL и Postman . cURL — это более быстрый и простой способ вызова конечных точек API из вашего терминала, поскольку он требует минимальной настройки и не требует дополнительного программного обеспечения. Однако, если вы не хотите использовать cURL, вы можете вместо этого использовать Postman для выполнения и сохранения запросов API для будущего использования.
В разделе 3.2. Использование сервиса агрегации вы найдете подробные инструкции по использованию обоих вариантов. Вы можете просмотреть их сейчас, чтобы определить, какой метод вы будете использовать. Если вы выбрали Postman, выполните следующую начальную настройку.
1.8.1.Настройка рабочего пространства
Зарегистрируйте учетную запись Postman . После регистрации для вас автоматически создается рабочее пространство.
Рабочее место почтальона.
Если рабочее пространство не создано, перейдите в верхний элемент навигации «Рабочие пространства» и выберите «Создать рабочее пространство».
Выберите «Пустое рабочее пространство», нажмите «Далее» и назовите его «GCP Privacy Sandbox». Выберите «Персональное» и нажмите «Создать».
Загрузите предварительно настроенную конфигурацию JSON рабочего пространства и файлы глобальной среды .
Импортируйте оба файла JSON в «Мою рабочую область» с помощью кнопки «Импорт».
Кнопка «Импорт».
Это создаст для вас коллекцию «GCP Privacy Sandbox» вместе с HTTP-запросами createJob
и getJob
.
1.8.2.Настройка авторизации
Щелкните коллекцию «GCP Privacy Sandbox» и перейдите на вкладку «Авторизация».
Кнопка авторизации.
Вы будете использовать метод «Bearer Token». Из вашей терминальной среды выполните эту команду и скопируйте вывод.
gcloud auth print-identity-token
Затем вставьте это значение токена в поле «Токен» на вкладке авторизации Postman:
Поле «Токен».
1.8.3.Настройка среды
Перейдите к «Краткому обзору среды» в правом верхнем углу:
Кнопка быстрого просмотра окружающей среды.
Нажмите «Изменить» и обновите «Текущее значение» для «environment», «region» и «cloud-function-id»:
Установите текущие значения.
Вы можете оставить "request-id" пустым на данный момент, так как мы заполним его позже. Для других полей используйте значения из frontend_service_cloudfunction_url
, который был возвращен после успешного завершения развертывания Terraform в Prerequisite 1.6. URL имеет следующий формат: https://
2. 2. Локальная тестовая лаборатория
Расчетное время выполнения: <1 часа
Вы можете использовать локальный инструмент тестирования на своей машине для выполнения агрегации и создания сводных отчетов с использованием незашифрованных отчетов отладки. Перед началом убедитесь, что вы выполнили все предварительные условия, помеченные как «Локальное тестирование».
Шаги Codelab
Шаг 2.1. Запуск отчета : запуск частного агрегирования отчетов для возможности сбора отчета.
Шаг 2.2. Создание отчета отладки AVRO : преобразование собранного отчета JSON в отчет в формате AVRO. Этот шаг будет аналогичен тому, когда специалисты по рекламе собирают отчеты с конечных точек отчетов API и преобразуют отчеты JSON в отчеты в формате AVRO.
Шаг 2.3. Извлеките ключи контейнера : ключи контейнера разработаны специалистами по рекламе. В этой кодовой лаборатории, поскольку контейнеры предопределены, извлеките ключи контейнера, как указано.
Шаг 2.4. Создание выходного домена AVRO : После получения ключей контейнера создайте файл выходного домена AVRO.
Шаг 2.5. Создание сводного отчета : используйте инструмент локального тестирования, чтобы иметь возможность создавать сводные отчеты в локальной среде.
Шаг 2.6. Просмотрите сводные отчеты : просмотрите сводный отчет, созданный локальным инструментом тестирования.
2.1. Отчет о триггере
Чтобы запустить частный отчет агрегации, вы можете использовать демонстрационный сайт Privacy Sandbox (https://privacy-sandbox-demos-news.dev/?env=gcp) или свой собственный сайт (например, https://adtechexample.com). Если вы используете свой собственный сайт и не завершили Enrollment & Attestation и Aggregation Service Onboarding, вам нужно будет использовать флаг Chrome и переключатель CLI .
Для этой демонстрации мы будем использовать демонстрационный сайт Privacy Sandbox. Перейдите по ссылке , чтобы перейти на сайт; затем вы сможете просмотреть отчеты на chrome://private-aggregation-internals
:
Страница внутренних компонентов Chrome.
Отчет, отправляемый в конечную точку {reporting-origin}/.well-known/private-aggregation/debug/report-shared-storage
также находится в «Теле отчета» отчетов, отображаемых на странице внутренних данных Chrome.
Здесь вы можете увидеть много отчетов, но для этой кодовой лаборатории используйте агрегируемый отчет, специфичный для Google Cloud и сгенерированный конечной точкой отладки . «URL отчета» будет содержать «/debug/», а aggregation_coordinator_origin field
в «Теле отчета» будет содержать этот URL: https://publickeyservice.msmt.gcp.privacysandboxservices.com.
Отчет об отладке Google Cloud.
2.2. Создание отладочного агрегированного отчета
Скопируйте отчет, найденный в «Теле отчета» chrome://private-aggregation-internals
, и создайте файл JSON в папке privacy-sandbox-demos/tools/aggregatable_report_converter/out/artifacts/aggregatable_report_converter_jar
(в репозитории, загруженном в предварительном условии 1.5).
В этом примере мы используем vim, поскольку мы используем linux. Но вы можете использовать любой текстовый редактор, который вам нравится.
vim report.json
Вставьте отчет в report.json
и сохраните файл.
Код отчета JSON.
После этого используйте aggregatable_report_converter.jar
для создания отладочного агрегируемого отчета. Это создаст агрегируемый отчет с именем report.avro
в вашем текущем каталоге.
java -jar aggregatable_report_converter.jar \
--request_type convertToAvro \
--input_file report.json \
--debug
2.3. Извлечь ключ контейнера из отчета
Для создания файла output_domain.avro
вам понадобятся ключи контейнеров, которые можно извлечь из отчетов.
Ключи контейнера разработаны рекламным техником. Однако в этом случае ключи контейнера создает сайт Privacy Sandbox Demo . Поскольку частная агрегация для этого сайта находится в режиме отладки, мы можем использовать debug_cleartext_payload
из "Тела отчета", чтобы получить ключ контейнера.
Продолжайте и скопируйте debug_cleartext_payload
из тела отчета.
Отладка полезной нагрузки в открытом виде.
Откройте goo.gle/ags-payload-decoder , вставьте debug_cleartext_payload
в поле «ВВОД» и нажмите «Расшифровать».
Кнопка декодирования.
Страница возвращает десятичное значение ключа контейнера. Ниже приведен пример ключа контейнера.
Образец ключа от ведра.
2.4 Создать выходной домен AVRO
Теперь, когда у нас есть ключ контейнера, давайте создадим output_domain.avro
в той же папке, в которой мы работали. Убедитесь, что вы заменили ключ контейнера на полученный вами ключ контейнера.
java -jar aggregatable_report_converter.jar \
--request_type createDomainAvro \
--bucket_key <bucket key>
Скрипт создает файл output_domain.avro
в вашей текущей папке.
2.5. Создание сводных отчетов с использованием локального инструмента тестирования
Мы будем использовать LocalTestingTool_{version}.jar
, который был загружен в Prerequisite 1.3, для создания сводных отчетов с помощью следующей команды. Замените {version}
на версию, которую вы скачали. Не забудьте переместить LocalTestingTool_{version}.jar
в текущий каталог или добавить относительный путь для ссылки на его текущее местоположение.
java -jar LocalTestingTool_{version}.jar \
--input_data_avro_file report.avro \
--domain_avro_file output_domain.avro \
--output_directory .
После выполнения команды вы должны увидеть что-то похожее на следующее. После завершения этой команды создается отчет output.avro
.
Выход AVRO
2.6. Просмотрите сводный отчет.
Сводный отчет создается в формате AVRO. Чтобы его прочитать, вам нужно преобразовать его из формата AVRO в формат JSON. В идеале рекламный техник должен написать код для преобразования отчетов AVRO обратно в JSON.
Мы будем использовать aggregatable_report_converter.jar
для преобразования отчета AVRO обратно в JSON.
java -jar aggregatable_report_converter.jar \
--request_type convertToJson \
--input_file output.avro
Это возвращает отчет, аналогичный следующему. Вместе с отчетом output.json
, созданным в том же каталоге.
Вывод JSON
Лабораторная работа завершена!
Резюме: Вы собрали отладочный отчет, построили выходной файл домена и сгенерировали сводный отчет с помощью локального инструмента тестирования, который имитирует поведение агрегации службы агрегации.
Следующие шаги: Теперь, когда вы поэкспериментировали с инструментом Local Testing, вы можете попробовать то же самое упражнение с живым развертыванием Aggregation Service в вашей собственной среде. Пересмотрите предварительные условия, чтобы убедиться, что вы настроили все для режима "Aggregation Service", затем перейдите к шагу 3.
3. 3. Агрегационная служба, кодовая лаборатория
Расчетное время выполнения: 1 час.
Прежде чем начать , убедитесь, что вы выполнили все предварительные условия, помеченные как «Служба агрегации».
Шаги Codelab
Шаг 3.1. Создание входных данных службы агрегации : создание отчетов службы агрегации, которые пакетируются для службы агрегации.
- Шаг 3.1.1. Отчет о триггере
- Шаг 3.1.2. Сбор агрегированных отчетов
- Шаг 3.1.3. Конвертация отчетов в AVRO
- Шаг 3.1.4. Создание output_domain AVRO
- Шаг 3.1.5. Перемещение отчетов в контейнер облачного хранилища
Шаг 3.2. Использование службы агрегации : используйте API службы агрегации для создания сводных отчетов и просмотрите сводные отчеты.
- Шаг 3.2.1. Использование конечной точки
createJob
для пакетной обработки - Шаг 3.2.2. Использование конечной точки
getJob
для получения статуса партии - Шаг 3.2.3. Просмотр сводного отчета
3.1 Создание входных данных службы агрегации
Продолжайте создавать отчеты AVRO для пакетной обработки в Aggregation Service. Команды оболочки на этих этапах можно запускать в Cloud Shell Google Cloud (при условии, что зависимости из Prerequisites клонированы в вашу среду Cloud Shell) или в локальной среде выполнения.
3.1.1 Отчет о триггере
Перейдите по ссылке , чтобы перейти на сайт; затем вы сможете просмотреть отчеты по адресу chrome://private-aggregation-internals
:
Страница внутренних компонентов Chrome
Отчет, отправляемый в конечную точку {reporting-origin}/.well-known/private-aggregation/debug/report-shared-storage
также находится в «Теле отчета» отчетов, отображаемых на странице внутренних данных Chrome.
Здесь вы можете увидеть много отчетов, но для этой кодовой лаборатории используйте агрегируемый отчет, специфичный для Google Cloud и сгенерированный конечной точкой отладки . «URL отчета» будет содержать «/debug/», а aggregation_coordinator_origin field
в «Теле отчета» будет содержать этот URL: https://publickeyservice.msmt.gcp.privacysandboxservices.com.
Отчет об отладке Google Cloud.
3.1.2. Собирайте агрегированные отчеты
Собирайте агрегированные отчеты из известных конечных точек вашего соответствующего API.
- Частная агрегация:
{reporting-origin}/.well-known/private-aggregation/report-shared-storage
- Отчет об атрибуции — сводный отчет:
{reporting-origin}/.well-known/attribution-reporting/report-aggregate-attribution
Для этой кодовой лаборатории мы собираем отчеты вручную. В производстве специалисты по рекламе должны программно собирать и преобразовывать отчеты.
Давайте продолжим и скопируем отчет JSON в «Тело отчета» из chrome://private-aggregation-internals
.
В этом примере мы используем vim, поскольку мы используем linux. Но вы можете использовать любой текстовый редактор, который вам нравится.
vim report.json
Вставьте отчет в report.json
и сохраните файл.
Отчет JSON
3.1.3 Преобразование отчетов в AVRO
Отчеты, полученные от конечных точек .well-known
, находятся в формате JSON и должны быть преобразованы в формат отчета AVRO. После получения отчета JSON перейдите к месту хранения report.json
и используйте aggregatable_report_converter.jar
для создания отладочного агрегируемого отчета. Это создаст агрегируемый отчет с именем report.avro
в вашем текущем каталоге.
java -jar aggregatable_report_converter.jar \
--request_type convertToAvro \
--input_file report.json
3.1.4. Создать выходной_домен AVRO
Для создания файла output_domain.avro
вам понадобятся ключи контейнеров, которые можно извлечь из отчетов.
Ключи контейнера разработаны рекламным техником. Однако в этом случае ключи контейнера создает сайт Privacy Sandbox Demo . Поскольку частная агрегация для этого сайта находится в режиме отладки, мы можем использовать debug_cleartext_payload
из "Тела отчета", чтобы получить ключ контейнера.
Продолжайте и скопируйте debug_cleartext_payload
из тела отчета.
Отладка полезной нагрузки в открытом виде.
Откройте goo.gle/ags-payload-decoder , вставьте debug_cleartext_payload
в поле «ВВОД» и нажмите «Расшифровать».
Кнопка декодирования.
Страница возвращает десятичное значение ключа контейнера. Ниже приведен пример ключа контейнера.
Образец ключа от ведра.
Теперь, когда у нас есть ключ контейнера, давайте создадим output_domain.avro
в той же папке, в которой мы работали. Убедитесь, что вы заменили ключ контейнера на полученный вами ключ контейнера.
java -jar aggregatable_report_converter.jar \
--request_type createDomainAvro \
--bucket_key <bucket key>
Скрипт создает файл output_domain.avro
в вашей текущей папке.
3.1.5 Перемещение отчетов в контейнер облачного хранилища
После создания отчетов AVRO и выходного домена перейдите к перемещению отчетов и выходного домена в контейнер в облачном хранилище (который вы отметили в предварительном условии 1.6).
Если в вашей локальной среде настроен интерфейс командной строки gcloud, используйте следующие команды для копирования файлов в соответствующие папки.
gcloud storage cp report.avro gs://<bucket_name>/reports/
gcloud storage cp output_domain.avro gs://<bucket_name>/output_domain/
В противном случае вручную загрузите файлы в контейнер. Создайте папку с именем "reports" и загрузите туда файл report.avro
. Создайте папку с именем "output_domains" и загрузите туда файл output_domain.avro
.
3.2 Использование сервиса агрегации
Вспомните, что в Предварительном условии 1.8 вы выбрали curl или Postman для выполнения запросов API к конечным точкам Aggregation Service. Инструкции для обоих вариантов приведены ниже.
Если задание завершается ошибкой, ознакомьтесь с нашей документацией по устранению неполадок на GitHub для получения дополнительной информации о дальнейших действиях.
3.2.1 Использование createJob
Endpoint для пакетной обработки
Для создания задания используйте одну из следующих инструкций curl или Postman.
завиток
В вашем "Терминале" создайте файл тела запроса ( body.json
) и вставьте следующий объект JSON. Обязательно обновите значения заполнителей. Обратитесь к этой документации API для получения дополнительной информации о том, что представляет каждое поле.
{
"job_request_id": "<job_request_id>",
"input_data_blob_prefix": "<report_folder>/<report_name>.avro",
"input_data_blob_prefixes": [ // Mutually exclusive to input_data_blob_prefix as of v2.11.0
"<report_folder>/<report_name-1>/",
"<report_folder>/<report_name-2>/",
"<report_folder>/<report_name>.avro"
],
"input_data_bucket_name": "<bucket_name>",
"output_data_blob_prefix": "<output_folder>/<summary_report_prefix>",
"output_data_bucket_name": "<bucket_name>",
"job_parameters": {
"output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
"output_domain_bucket_name": "<bucket_name>",
"attribution_report_to": "<reporting origin of report>",
"reporting_site": "<domain of reporting origin(s) of report>", // Mutually exclusive to attribution_report_to as of v2.7.0
"report_error_threshold_percentage": "10",
"debug_run": "true"
}
}
Выполните следующий запрос. Замените заполнители в URL-адресе запроса curl значениями из frontend_service_cloudfunction_url
, который выводится после успешного завершения развертывания Terraform в предварительном условии 1.6.
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" \
-d @body.json \
https://<environment>-<region>-frontend-service-<cloud-function-id>-uc.a.run.app/v1alpha/createJob
После того, как запрос будет принят службой агрегации, вы должны получить ответ HTTP 202. Другие возможные коды ответов задокументированы в спецификациях API .
Почтальон
Для конечной точки createJob
требуется тело запроса, чтобы предоставить службе агрегации местоположение и имена файлов агрегируемых отчетов, выходных доменов и сводных отчетов.
Перейдите на вкладку «Тело» запроса createJob
:
Вкладка «Тело»
Замените заполнители в предоставленном JSON. Для получения дополнительной информации об этих полях и их представлении обратитесь к документации API .
{
"job_request_id": "<job_request_id>",
"input_data_blob_prefix": "<report_folder>/",
"input_data_blob_prefixes": [ // Mutually exclusive to input_data_blob_prefix as of v2.11.0
"<report_folder>/<report_name-1>/",
"<report_folder>/<report_name-2>/",
"<report_folder>/<report_name>.avro"
],
"input_data_bucket_name": "<bucket_name>",
"output_data_blob_prefix": "<output_folder>/<summary_report_prefix>",
"output_data_bucket_name": "<bucket_name>",
"job_parameters": {
"output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
"output_domain_bucket_name": "<bucket_name>",
"attribution_report_to": "<reporting origin of report>",
"reporting_site": "<domain of reporting origin(s) of report>", // Mutually exclusive to attribution_report_to as of v2.7.0
"report_error_threshold_percentage": "10",
"debug_run": "true"
}
}
«Отправить» запрос API createJob
:
Кнопка «Отправить»
Код ответа можно найти в нижней половине страницы:
Код ответа
После того, как запрос будет принят службой агрегации, вы должны получить ответ HTTP 202. Другие возможные коды ответов задокументированы в спецификациях API .
3.2.2 Использование конечной точки getJob
для получения статуса партии
Чтобы получить работу, воспользуйтесь одной из следующих инструкций curl или Postman.
завиток
Выполните следующий запрос в вашем терминале. Замените заполнители в URL-адресе значениями из frontend_service_cloudfunction_url
, который является тем же URL-адресом, который вы использовали для запроса createJob
. Для "job_request_id" используйте значение из задания, которое вы создали с помощью конечной точки createJob
.
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" \
https://<environment>-<region>-frontend-service-<cloud-function-id>-uc.a.run.app/v1alpha/getJob?job_request_id=<job_request_id>
Результат должен вернуть статус вашего запроса на задание со статусом HTTP 200. «Тело» запроса содержит необходимую информацию, такую как job_status
, return_message
и error_messages
(если задание завершилось ошибкой).
Почтальон
Чтобы проверить статус запроса на задание, вы можете использовать конечную точку getJob
. В разделе "Params" запроса getJob
обновите значение job_request_id
до job_request_id
, который был отправлен в запросе createJob
.
Идентификатор запроса на работу
«Отправить» запрос getJob
:
Кнопка «Отправить»
Результат должен вернуть статус вашего запроса на задание со статусом HTTP 200. «Тело» запроса содержит необходимую информацию, такую как job_status
, return_message
и error_messages
(если задание завершилось ошибкой).
Ответ JSON
3.2.3. Рассмотрение сводного отчета
После того, как вы получите ваш сводный отчет в выходном контейнере Cloud Storage, вы можете загрузить его в свою локальную среду. Сводные отчеты находятся в формате AVRO и могут быть преобразованы обратно в JSON. Вы можете использовать aggregatable_report_converter.jar
для чтения вашего отчета с помощью этой команды.
java -jar aggregatable_report_converter.jar \
--request_type convertToJson \
--input_file <summary_report_avro>
Это возвращает JSON-файл агрегированных значений каждого ключа сегмента, который выглядит примерно так:
Сводный отчет.
Если ваш запрос createJob
включает debug_run
как true, то вы можете получить свой сводный отчет в папке отладки, которая находится в output_data_blob_prefix
. Отчет находится в формате AVRO и может быть преобразован в JSON с помощью предыдущей команды.
Отчет содержит ключ контейнера, незашумленную метрику и шум, который добавляется к незашумленной метрике для формирования сводного отчета. Отчет похож на следующий.
Шумный отчет
Аннотации также содержат «in_reports» или «in_domain» (или оба), что означает:
- in_reports — ключ контейнера доступен внутри агрегируемых отчетов.
- in_domain — ключ контейнера доступен внутри файла AVRO output_domain.
Лабораторная работа завершена!
Краткое описание: Вы развернули службу агрегации в своей облачной среде, собрали отладочный отчет, создали выходной файл домена, сохранили эти файлы в контейнере облачного хранилища и успешно выполнили задание!
Дальнейшие действия: Продолжайте использовать службу агрегации в своей среде или удалите только что созданные вами облачные ресурсы, следуя инструкциям по очистке в шаге 4.
4. 4. Уборка
Чтобы удалить ресурсы, созданные для Aggregation Service с помощью Terraform, используйте команду destroy в папках adtech_setup
и dev
(или другой среде):
$ cd <repository_root>/terraform/gcp/environments/adtech_setup
$ terraform destroy
$ cd <repository_root>/terraform/gcp/environments/dev
$ terraform destroy
Чтобы удалить контейнер Cloud Storage, содержащий ваши агрегированные отчеты и сводные отчеты:
$ gcloud storage buckets delete gs://my-bucket
Вы также можете вернуть настройки cookie Chrome из Prerequisite 1.2 в предыдущее состояние.
5. 5. Приложение
Пример файла adtech_setup.auto.tfvars
/**
* Copyright 2023 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
project = "my-project-id"
# Required to generate identity token for access of Adtech Services API endpoints
service_account_token_creator_list = ["user:me@email.com"]
# Uncomment the below line if you like Terraform to create an Artifact registry repository
# for self-build container artifacts. "artifact_repo_location" defaults to "us".
artifact_repo_name = "my-ags-artifacts"
# Note: Either one of [1] or [2] must be uncommented.
# [1] Uncomment below lines if you like Terraform grant needed permissions to
# pre-existing service accounts
# deploy_service_account_email = "<YourDeployServiceAccountName>@<ProjectID>.iam.gserviceaccount.com"
# worker_service_account_email = "<YourWorkerServiceAccountName>@<ProjectID>.iam.gserviceaccount.com"
# [2] Uncomment below lines if you like Terraform to create service accounts
# and needed permissions granted e.g "deploy-sa" or "worker-sa"
deploy_service_account_name = "deploy-sa"
worker_service_account_name = "worker-sa"
# Uncomment the below line if you want Terraform to create the
# below bucket. "data_bucket_location" defaults to "us".
data_bucket_name = "my-ags-data"
# Uncomment the below lines if you want to specify service account customer role names
# deploy_sa_role_name = "<YourDeploySACustomRole>"
# worker_sa_role_name = "<YourWorkerSACustomRole>"
Пример файла dev.auto.tfvars
/**
* Copyright 2022 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
# Example values required by job_service.tf
#
# These values should be modified for each of your environments.
region = "us-central1"
region_zone = "us-central1-c"
project_id = "my-project-id"
environment = "operator-demo-env"
# Co-locate your Cloud Spanner instance configuration with the region above.
# https://cloud.google.com/spanner/docs/instance-configurations#regional-configurations
spanner_instance_config = "regional-us-central1"
# Adjust this based on the job load you expect for your deployment.
# Monitor the spanner instance utilization to decide on scale out / scale in.
# https://console.cloud.google.com/spanner/instances
spanner_processing_units = 100
# Uncomment the line below at your own risk to disable Spanner database protection.
# This needs to be set to false and applied before destroying all resources is possible.
spanner_database_deletion_protection = false
instance_type = "n2d-standard-8" # 8 cores, 32GiB
# Container image location that packages the job service application
# If not set otherwise, uncomment and edit the line below:
#worker_image = "<location>/<project>/<repository>/<image>:<tag or digest>"
# Service account created and onboarded for worker
user_provided_worker_sa_email = "worker-sa@my-project-id.iam.gserviceaccount.com"
min_worker_instances = 1
max_worker_instances = 20