1. 1. Предварительные требования
Примерное время выполнения: 1-2 часа
Для выполнения этого практического задания предусмотрены 2 режима: локальное тестирование или использование сервиса агрегации . Для режима локального тестирования требуется локальный компьютер и браузер Chrome (без создания/использования ресурсов Google Cloud). Для режима использования сервиса агрегации требуется полное развертывание сервиса агрегации в Google Cloud.
Для выполнения этого практического задания в любом из режимов требуется выполнить ряд предварительных условий. Каждое требование отмечено в зависимости от того, требуется ли оно для локального тестирования или для агрегации данных.
1.1. Завершение регистрации и подтверждения данных (услуга агрегирования)
Для использования API Privacy Sandbox убедитесь, что вы завершили регистрацию и аттестацию как в Chrome, так и в Android.
1.2. Включите API для обеспечения конфиденциальности рекламы (сервис локального тестирования и агрегации).
Поскольку мы будем использовать «песочницу конфиденциальности», мы рекомендуем вам включить API рекламы в этой песочнице.
В браузере перейдите по адресу chrome://settings/adPrivacy и включите все API для защиты конфиденциальности рекламы.
Также убедитесь, что у вас включены сторонние файлы cookie .
В разделе chrome://settings/cookies убедитесь, что сторонние файлы cookie НЕ блокируются. В зависимости от версии Chrome в этом меню настроек могут отображаться разные параметры, но допустимые конфигурации включают:
- "Блокировать все сторонние файлы cookie" = ОТКЛЮЧЕНО
- "Блокировать сторонние файлы cookie" = ОТКЛЮЧЕНО
- "Блокировать сторонние файлы cookie в режиме инкогнито" = ВКЛЮЧЕНО
Включение файлов cookie
1.3. Загрузите инструмент локального тестирования (Local Testing)
Для локального тестирования потребуется загрузить инструмент локального тестирования. Этот инструмент будет генерировать сводные отчеты на основе незашифрованных отладочных отчетов.
Инструмент локального тестирования доступен для загрузки в JAR-архиве Cloud Function на 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. Настройка среды облачной платформы (сервиса агрегации)
Для работы сервиса агрегации требуется доверенная среда выполнения, использующая облачного провайдера. В этом практическом задании сервис агрегации будет развернут в Google Cloud, но AWS также поддерживается .
Следуйте инструкциям по развертыванию на GitHub , чтобы настроить CLI gcloud, загрузить бинарные файлы и модули Terraform и создать ресурсы Google Cloud для службы агрегации.
Основные шаги в инструкции по развертыванию:
- Настройте CLI-интерфейс "gcloud" и Terraform в вашей среде.
- Создайте корзину Cloud Storage для хранения состояния Terraform.
- Загрузите зависимости.
- Обновите файл
adtech_setup.auto.tfvarsи запустите Terraform-скриптadtech_setup. Пример файлаadtech_setup.auto.tfvarsприведен в Приложении. Обратите внимание на имя создаваемого здесь хранилища данных — оно будет использоваться в практическом задании для хранения создаваемых нами файлов. - Обновите файл
dev.auto.tfvars, используйте учетную запись службы развертывания и запустите Terraformdev. Пример файлаdev.auto.tfvarsприведен в Приложении. - После завершения развертывания получите значение
frontend_service_cloudfunction_urlиз выходных данных Terraform , которое понадобится для отправки запросов к сервису агрегации на последующих этапах.
1.7. Полное подключение к сервису агрегации (Сервис агрегации)
Для использования сервиса агрегации требуется регистрация координаторов. Заполните форму регистрации в сервисе агрегации , указав свой сайт отчетности и другую информацию, выбрав «Google Cloud» и указав адрес вашей учетной записи сервиса. Эта учетная запись сервиса создается на предыдущем этапе (1.6. Настройка среды Google Cloud). (Подсказка: если вы используете предоставленные по умолчанию имена, эта учетная запись сервиса будет начинаться с «worker-sa@»).
Процесс адаптации может занять до 2 недель.
1.8. Определите свой метод вызова конечных точек API (сервис агрегации).
В этом практическом задании предлагаются два варианта вызова конечных точек API сервиса агрегации: cURL и Postman . cURL — более быстрый и простой способ вызова конечных точек API из терминала, поскольку он требует минимальной настройки и не требует дополнительного программного обеспечения. Однако, если вы не хотите использовать cURL, вы можете вместо этого использовать Postman для выполнения и сохранения запросов API для дальнейшего использования.
В разделе 3.2. Использование сервиса агрегации вы найдете подробные инструкции по использованию обоих вариантов. Вы можете ознакомиться с ними сейчас, чтобы определить, какой метод вы будете использовать. Если вы выберете Postman, выполните следующую первоначальную настройку.
1.8.1. Настройка рабочего места
Зарегистрируйтесь в Postman . После регистрации для вас автоматически будет создано рабочее пространство.
Рабочее место в 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 в предварительном условии 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). Если вы используете свой собственный сайт и еще не завершили регистрацию и подтверждение, а также подключение к службе агрегации данных, вам потребуется использовать флаг 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. Создание сводного отладочного отчета
Скопируйте отчет, найденный в "Report Body" по адресу 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 в поле "INPUT" и нажмите "Decode".
Кнопка декодирования.
Страница возвращает десятичное значение ключа корзины. Ниже приведен пример ключа корзины.
Пример ключа для ведра.
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 , загруженный в рамках предварительного условия 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.
Для преобразования отчета AVRO обратно в формат JSON мы воспользуемся aggregatable_report_converter.jar .
java -jar aggregatable_report_converter.jar \
--request_type convertToJson \
--input_file output.avro
В результате будет создан отчет, похожий на приведенный ниже, а также файл output.json который будет находиться в той же директории.
Вывод в формате JSON
Практический семинар завершен!
Краткое описание: Вы собрали отладочный отчет, создали выходной файл домена и сгенерировали сводный отчет, используя локальный инструмент тестирования, имитирующий поведение агрегации службы агрегации.
Следующие шаги: Теперь, когда вы поэкспериментировали с инструментом локального тестирования, вы можете попробовать то же самое с развернутой в вашей среде службой агрегации. Еще раз проверьте предварительные условия, чтобы убедиться, что вы все настроили для режима «Служба агрегации», а затем перейдите к шагу 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 для пакетной обработки в службе агрегации. Команды оболочки, описанные в этих шагах, можно запускать в Cloud Shell Google Cloud (при условии, что зависимости из раздела «Предварительные условия» клонированы в вашу среду 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. Сбор сводных отчетов
Собирайте сводные отчеты из конечных точек .well-known соответствующего 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 в поле "INPUT" и нажмите "Decode".
Кнопка декодирования.
Страница возвращает десятичное значение ключа корзины. Ниже приведен пример ключа корзины.
Пример ключа для ведра.
Теперь, когда у нас есть ключ корзины, давайте создадим файл output_domain.avro в той же папке, где мы работали. Убедитесь, что вы заменили ключ корзины на полученный вами ключ корзины.
java -jar aggregatable_report_converter.jar \
--request_type createDomainAvro \
--bucket_key <bucket key>
Скрипт создаёт файл output_domain.avro в текущей папке.
3.1.5. Перемещение отчетов в облачное хранилище.
После создания отчетов AVRO и выходного домена переместите отчеты и выходной домен в хранилище Cloud Storage (что вы отметили в предварительном условии 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-запросов к конечным точкам службы агрегации. Инструкции для обоих вариантов приведены ниже.
Если ваша задача завершилась с ошибкой, обратитесь к нашей документации по устранению неполадок на GitHub для получения дополнительной информации о дальнейших действиях.
3.2.1. Использование конечной точки createJob для пакетной обработки
Для создания задания используйте одну из следующих команд 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 . В разделе "Параметры" запроса 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, то вы получите сводный отчет в папке debug, расположенной в output_data_blob_prefix . Отчет имеет формат AVRO и может быть преобразован в JSON с помощью указанной выше команды.
Отчет содержит ключ к интервалу, метрику без шума и шум, который добавляется к метрике без шума для формирования сводного отчета. Отчет выглядит примерно так.
Шумный отчет
В аннотациях также содержатся "in_reports" или "in_domain" (или оба варианта), что означает:
- in_reports - ключ корзины доступен внутри агрегируемых отчетов.
- in_domain - ключ корзины доступен внутри файла AVRO output_domain.
Практический семинар завершен!
Краткое описание: Вы развернули службу агрегации в собственной облачной среде, собрали отладочный отчет, создали выходной файл домена, сохранили эти файлы в хранилище Cloud Storage и успешно выполнили задание!
Следующие шаги: Продолжайте использовать службу агрегации в вашей среде или удалите только что созданные облачные ресурсы, следуя инструкциям по очистке, приведенным в шаге 4.
4. 4. Уборка
Для удаления ресурсов, созданных для службы агрегации с помощью 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