AWS'de Toplama Hizmeti ile çalışma

1. Ön koşullar

Bu Codelab'i gerçekleştirmek için birkaç ön koşul gereklidir. Her koşul, "Yerel Test" veya "Toplama Hizmeti" için gerekli olup olmadığına göre işaretlenir.

1.1. Yerel Test Aracı'nı (Yerel Test) indirin

Yerel test için Yerel Test Aracı'nın indirilmesi gerekir. Araç, şifrelenmemiş hata ayıklama raporlarından özet raporlar oluşturur.

Yerel Test aracı, Lambda JAR Archives in Github'da indirilebilir. LocalTestingTool_{version}.jar olarak adlandırılmalıdır.

1.2. JAVA JRE'nin yüklendiğini doğrulayın (Yerel Test ve Toplama Hizmeti)

"Terminal"i açın ve makinenizde Java veya openJDK'nın yüklü olup olmadığını kontrol etmek için java --version komutunu kullanın.

`java --version` komutunu kullanarak Java JRE sürümünü kontrol etme. `java --version` komutunu kullanarak Java JRE sürümünü kontrol etme.

Yüklü değilse Java sitesinden veya openJDK sitesinden indirip yükleyebilirsiniz.

1.3. Toplanabilir Rapor Dönüştürücü'yü (Yerel Test ve Toplama Hizmeti) indirin

Toplanabilir rapor dönüştürücünün bir kopyasını Özel Korumalı Alan Demoları GitHub deposundan indirebilirsiniz.

1.4. Reklam Gizliliği API'lerini Etkinleştirme (Yerel Test ve Toplama Hizmeti)

Tarayıcınızda chrome://settings/adPrivacy simgesine gidin ve tüm Reklam Gizliliği API'lerini etkinleştirin.

Üçüncü taraf çerezlerinin etkinleştirildiğini doğrulayın.

Tarayıcınızda chrome://settings/cookies simgesine gidin ve "Gizli modda üçüncü taraf çerezlerini engelle"yi seçin.

Üçüncü taraf çerezleri için Chrome ayarı. Üçüncü taraf çerezleri için Chrome ayarı.

1.5. Web ve Android kaydı (Aggregation Service)

Özel Korumalı Alan API'lerini üretim ortamında kullanmak için hem Chrome hem de Android'e kayıt ve onay işlemlerini tamamladığınızdan emin olun.

Yerel test için kayıt, Chrome flag'i ve KSA anahtarı kullanılarak devre dışı bırakılabilir.

Demomuz için Chrome flag'ini kullanmak üzere chrome://flags/#privacy-sandbox-enrollment-overrides adresine gidin ve geçersiz kılmayı sitenizle güncelleyin. Demomuzun sitesini kullanacaksanız güncelleme yapmanız gerekmez.

Özel Korumalı Alan kaydı geçersiz kılma Chrome işareti. Özel Korumalı Alan kaydı geçersiz kılma Chrome işareti.

1.6. Aggregation Service'i kullanmaya başlama (Aggregation Service)

Aggregation Service'in kullanılabilmesi için koordinatörlerin hizmete dahil edilmesi gerekir. Raporlama sitesi adresinizi, AWS hesap kimliğinizi ve diğer bilgileri sağlayarak Toplama Hizmeti Onboarding formunu doldurun.

1.7. Bulut sağlayıcı (toplama hizmeti)

Toplama Hizmeti, bulut ortamı kullanan bir Güvenilir Yürütme Ortamı'nın kullanılmasını gerektirir. Toplama hizmeti, Amazon Web Services (AWS) ve Google Cloud'da (GCP) desteklenir. Bu Codelab yalnızca AWS entegrasyonunu kapsar.

AWS, Nitro Enclaves adlı bir güvenilir yürütme ortamı sunar. AWS hesabınızın olduğunu doğrulayın ve AWS CLI ortamınızı ayarlamak için AWS CLI yükleme ve güncelleme talimatlarını uygulayın.

AWS CLI'ınız yeni ise CLI yapılandırma talimatlarını kullanarak AWS CLI'ınızı yapılandırabilirsiniz.

1.7.1. AWS S3 paketi oluşturma

Terraform durumunu depolamak için bir AWS S3 paketi, raporlarınızı ve özet raporlarınızı depolamak için başka bir S3 paketi oluşturun. Sağlanan CLI komutunu kullanabilirsiniz. <> içindeki alanı uygun değişkenlerle değiştirin.

aws s3api create-bucket --bucket <tf_bucket_name> --region us-east-1
aws s3api create-bucket --bucket <report_bucket_name> --region us-east-1

1.7.2. Kullanıcı erişim anahtarı oluşturma

AWS kılavuzunu kullanarak kullanıcı erişim anahtarları oluşturun. Bu, AWS'de oluşturulan createJob ve getJob API uç noktalarını çağırmak için kullanılır.

1.7.3. AWS kullanıcı ve grup izinleri

Toplama Hizmeti'ni AWS'ye dağıtmak için hizmeti dağıtmak üzere kullanılan kullanıcıya belirli izinler vermeniz gerekir. Bu Codelab'de, dağıtımda tam izinlere sahip olduğunuzdan emin olmak için kullanıcının yönetici erişimi olduğunu doğrulayın.

1.8. Terraform (Toplama Hizmeti)

Bu Codelab'de, Toplama Hizmeti'ni dağıtmak için Terraform kullanılır. Terraform ikilisinin yerel ortamınıza yüklendiğini doğrulayın.

Terraform ikili programını yerel ortamınıza indirin.

Terraform ikili programı indirildikten sonra dosyayı çıkarın ve Terraform ikili programını /usr/local/bin konumuna taşıyın.

cp <directory>/terraform /usr/local/bin

Terraform'un sınıf yolunda kullanılabilir olduğundan emin olun.

terraform -v

1.9. Postman (Aggregation Service AWS için)

Bu Codelab'de istek yönetimi için Postman'i kullanın.

Üst gezinme çubuğundaki "Çalışma Alanları"na gidip "Çalışma Alanı Oluştur"u seçerek çalışma alanı oluşturun.

postman workspace Postman çalışma alanı

"Boş çalışma alanı"nı seçin, sonraki seçeneğini tıklayın ve çalışma alanını "Özel Korumalı Alan" olarak adlandırın. "Kişisel"i seçip "Oluştur"u tıklayın.

Önceden yapılandırılmış çalışma alanı JSON yapılandırma ve Global Environment dosyalarını indirin.

"İçe aktar" düğmesini kullanarak JSON dosyalarını "Çalışma alanım"a aktarın.

Postman JSON dosyalarını içe aktarabilirsiniz. Postman JSON dosyalarını içe aktarın.

Bu işlem, createJob ve getJob HTTP istekleriyle birlikte sizin için Özel Korumalı Alan koleksiyonunu oluşturur.

Postman&#39;de içe aktarılan koleksiyon. Postman'den içe aktarılan koleksiyon.

"Ortama hızlı bakış" üzerinden AWS "Erişim Anahtarı" ve "Gizli Anahtar"ı güncelleyin.

Postman ortamına hızlı bakış. Postman ortamına hızlı bakış.

"Düzenle"yi tıklayın ve hem "access_key" hem de "secret_key"nin "Geçerli Değer"ini güncelleyin. frontend_api_id bilgisinin bu belgenin 3.1.4 bölümünde yer alacağını unutmayın. Ayrıca us-east-1 bölgesini kullanmanızı öneririz. Ancak farklı bir bölgede dağıtım yapmak istiyorsanız yayınlanan AMI'yi hesabınıza kopyaladığınızı veya sağlanan komut dosyalarını kullanarak kendi derlemenizi yaptığınızı doğrulayın.

Postman genel değişkenleri. Postman genel değişkenleri. Postman&#39;de genel değişkenleri düzenleme Postman'de genel değişkenleri düzenleme

2. Yerel Test Codelab'i

Şifrelenmemiş hata ayıklama raporlarını kullanarak toplama işlemi gerçekleştirmek ve özet raporlar oluşturmak için makinenizdeki yerel test aracını kullanabilirsiniz.

Codelab Adımları

Adım 2.1. Raporu tetikleme: Raporu toplayabilmek için Private Aggregation raporlamasını tetikleyin.

Adım 2.2. Hata ayıklama için toplanabilir rapor oluşturma: Toplanan JSON raporunu AVRO biçimli bir rapora dönüştürün.
Bu adım, reklam teknolojilerinin API raporlama uç noktalarından raporları topladığı ve JSON raporlarını AVRO biçimli raporlara dönüştürdüğü zamana benzer.

Adım 2.3. Paket anahtarını hata ayıklama raporundan ayrıştırın: Paket anahtarları, reklam teknolojileri tarafından tasarlanır. Bu codelab'de paketler önceden tanımlandığı için paket anahtarlarını sağlandığı şekilde alın.

2.4. Adım: Çıkış alanı AVRO'sunu oluşturun: Bucket anahtarları alındıktan sonra çıkış alanı AVRO dosyasını oluşturun.

2.5. adım. Yerel Test Aracı'nı kullanarak özet raporlar oluşturma: Yerel ortamda özet raporlar oluşturmak için Yerel Test Aracı'nı kullanın.

Adım 2.6. Özet raporu inceleyin: Yerel Test Aracı tarafından oluşturulan özet raporu inceleyin.

2.1. Tetikleyici raporu

Özel Korumalı Alan demosunun sitesine gidin. Bu işlem, özel toplama raporunu tetikler. Raporu chrome://private-aggregation-internals adresinde görüntüleyebilirsiniz.

Chrome özel toplama iç öğeleri. Chrome özel toplama iç öğeleri.

Raporunuz "Beklemede" durumundaysa raporu seçip "Seçili Raporları Gönder"i tıklayabilirsiniz.

Gizli toplama raporu gönderin. Özel toplama raporu gönderme

2.2. Hata ayıklama için toplanabilir rapor oluşturma

chrome://private-aggregation-internals içinde, [reporting-origin]/.well-known/private-aggregation/report-shared-storage uç noktasında alınan "Report Body" (Rapor Gövdesi) bölümünü kopyalayın.

"Rapor Gövdesi"nde aggregation_coordinator_origin öğesinin https://publickeyservice.msmt.aws.privacysandboxservices.com içerdiğinden emin olun. Bu, raporun AWS'de toplanabilir bir rapor olduğu anlamına gelir.

Private Aggregation API raporu. Private Aggregation raporu.

JSON "Rapor Gövdesi"ni bir JSON dosyasına yerleştirin. Bu örnekte vim'i kullanabilirsiniz. Ancak istediğiniz metin düzenleyiciyi kullanabilirsiniz.

vim report.json

Raporu report.json içine yapıştırın ve dosyanızı kaydedin.

Rapor JSON dosyası. Rapor JSON dosyası.

Bu raporu aldıktan sonra rapor klasörünüze gidin ve hata ayıklama için toplu rapor oluşturmaya yardımcı olması için aggregatable_report_converter.jar simgesini kullanın. Bu işlem, geçerli dizininizde report.avro adlı toplanabilir bir rapor oluşturur.

java -jar aggregatable_report_converter.jar \
 --request_type convertToAvro \
 --input_file report.json \
 --debug

2.3. Hata ayıklama raporundan paket anahtarını ayrıştırma

Toplama Hizmeti, toplu işleme sırasında iki dosya gerektirir. Toplanabilir rapor ve çıkış alanı dosyası. Çıkış alanı dosyası, toplanabilir raporlardan almak istediğiniz anahtarları içerir. output_domain.avro dosyasını oluşturmak için raporlardan alınabilen paket anahtarlarına ihtiyacınız vardır.

Bucket anahtarları, API'yi çağıran tarafından tasarlanır ve demo, önceden oluşturulmuş örnek bucket anahtarları içerir. Demoda Özel Toplama için hata ayıklama modu etkinleştirildiğinden, bucket anahtarını almak üzere "Rapor Gövdesi"nden hata ayıklama amaçlı şifresiz metin yükünü ayrıştırabilirsiniz. Ancak bu durumda, site privacy sandbox demo, grup anahtarlarını oluşturur. Bu site için özel toplama hata ayıklama modunda olduğundan, paket anahtarını almak için "Rapor Gövdesi"ndeki debug_cleartext_payload öğesini kullanabilirsiniz.

Rapor gövdesinden debug_cleartext_payload simgesini kopyalayın.

Rapor gövdesindeki düz metin yükünde hata ayıklama. Rapor gövdesinden şifresiz metin yükünde hata ayıklayın.

Özel toplama için hata ayıklama yükü kod çözücüsü aracını açın ve debug_cleartext_payload değerinizi "INPUT" (GİRİŞ) kutusuna yapıştırıp "Decode" (Kod çöz) seçeneğini tıklayın.

Yük kod çözücü. Yük kod çözücü.

Sayfa, paket anahtarının ondalık değerini döndürür. Aşağıda örnek bir paket anahtarı verilmiştir.

Yük kod çözücü sonucu. Yük kod çözücü sonucu.

2.4. Çıkış alanı AVRO'sunu oluşturun

Paket anahtarını aldığımıza göre paket anahtarının ondalık değerini kopyalayın. Paket anahtarını kullanarak output_domain.avro oluşturmaya devam edin. yerine aldığınız paket anahtarını kullandığınızı doğrulayın.

java -jar aggregatable_report_converter.jar \
 --request_type createDomainAvro \
 --bucket_key <bucket key>

Komut dosyası, geçerli klasörünüzde output_domain.avro dosyasını oluşturur.

2.5. Yerel Test Aracı'nı kullanarak özet raporlar oluşturma

Özet raporları oluşturmak için Bölüm 1.1'de indirilen LocalTestingTool_{version}.jar kullanılacaktır. Aşağıdaki komutu kullanın. LocalTestingTool_{version}.jar yerine LocalTestingTool için indirilen sürümü kullanmanız gerekir.

Yerel geliştirme ortamınızda özet rapor oluşturmak için aşağıdaki komutu çalıştırın:

java -jar LocalTestingTool_{version}.jar \
--input_data_avro_file report.avro \
--domain_avro_file output_domain.avro \
--output_directory .

Komut çalıştırıldıktan sonra aşağıdaki resme benzer bir sonuç görmeniz gerekir. Bu işlem tamamlandığında bir rapor output.avro oluşturulur.

Yerel test özeti raporu avro dosyası. Yerel test özeti raporu avro dosyası.

2.6. Özet raporu inceleme

Oluşturulan özet rapor AVRO biçimindedir. Bunu okuyabilmek için AVRO biçiminden JSON biçimine dönüştürmeniz gerekir. İdeal olarak, reklam teknolojisi, AVRO raporlarını tekrar JSON'a dönüştürecek şekilde kodlanmalıdır.

Codelab'imizde, AVRO raporunu tekrar JSON'a dönüştürmek için sağlanan aggregatable_report_converter.jar aracını kullanacağız.

java -jar aggregatable_report_converter.jar \
--request_type convertToJson \
--input_file output.avro

Bu işlem, aşağıdaki resme benzer bir rapor döndürür. Aynı dizinde oluşturulan bir rapor output.json ile birlikte.

Özet avro dosyası JSON&#39;a dönüştürülür. Özet avro dosyası json'a dönüştürüldü.

Özet raporu incelemek için JSON dosyasını istediğiniz bir düzenleyicide açın.

3. Aggregation Service dağıtımı

Toplama Hizmeti'ni dağıtmak için aşağıdaki adımları uygulayın:

3. adım: Toplama Hizmeti Dağıtımı: Toplama Hizmeti'ni AWS'ye dağıtın
3.1.Adım Toplama Hizmeti deposunu klonlayın
3.2.adım Önceden oluşturulmuş bağımlılıkları indirin
3.3.adım Geliştirme ortamı oluşturma
Adım 3.4. Aggregation Service'i dağıtma

3.1. Aggregation Service deposunu klonlayın

Yerel ortamınızda Aggregation Service GitHub deposunu klonlayın.

git clone https://github.com/privacysandbox/aggregation-service.git

3.2. Önceden oluşturulmuş bağımlılıkları indirme

Aggregation Service deposunu klonladıktan sonra, deponun Terraform klasörüne ve ilgili bulut klasörüne gidin. cloud_provider değeriniz AWS ise /terraform/aws bölümüne geçebilirsiniz.

cd <repository_root>/terraform/aws

/terraform/aws içinde download_prebuilt_dependencies.sh komutunu çalıştırın.

bash download_prebuilt_dependencies.sh

3.3. Geliştirme ortamı oluşturma

/terraform/aws/environments içinde geliştirme ortamı oluşturun. dev adlı bir klasör oluştur.

mkdir dev

demo klasörünün içeriğini dev klasörüne kopyalayın.

cp -R demo/* dev

dev klasörünüze taşıyın.

cd dev

main.tf dosyanızı güncelleyin ve dosyayı düzenlemek için input'ye yönelik i tuşuna basın.

vim main.tf

# işaretini kaldırıp paket ve anahtar adlarını güncelleyerek kırmızı kutudaki kodun yorumunu kaldırın.

AWS main.tf için:

AWS ana tf dosyası. AWS main tf dosyası.

Yorumdan çıkarılan kod aşağıdaki gibi görünmelidir.

backend "s3" {
  bucket = "<tf_state_bucket_name>"
  key    = "<environment_name>.tfstate"
  region = "us-east-1"
}

Güncellemeler tamamlandıktan sonra esc -> :wq! tuşlarına basarak güncellemeleri kaydedin ve düzenleyiciden çıkın. Bu işlem, güncellemeleri main.tf konumuna kaydeder.

Ardından, example.auto.tfvars dosyasını dev.auto.tfvars olarak yeniden adlandırın.

mv example.auto.tfvars dev.auto.tfvars

Dosyayı düzenlemek için dev.auto.tfvars değerini güncelleyin ve input için i tuşuna basın.

vim dev.auto.tfvars

Aşağıdaki resimde kırmızı kutu içindeki alanları, Aggregation Service oryantasyonu, ortamı ve bildirim e-postası sırasında sağlanan doğru AWS ARN parametreleriyle güncelleyin.

Geliştirme için otomatik tfvars dosyasını düzenleyin. Edit dev auto tfvars file.

Güncellemeler tamamlandıktan sonra esc -> :wq! tuşlarına basın. Bu işlem, dev.auto.tfvars dosyasını kaydeder ve dosya aşağıdaki resme benzer şekilde görünür.

Geliştirme için otomatik tfvars dosyası güncellendi. Updated dev auto tfvars file.

3.4. Aggregation Service'i dağıtma

Aggregation Service'i dağıtmak için aynı klasörde /terraform/aws/environments/dev Terraform'u başlatın.

terraform init

Bu işlem, aşağıdaki resme benzer bir sonuç döndürmelidir:

Terraform init. Terraform'u başlatın.

Terraform başlatıldıktan sonra Terraform yürütme planını oluşturun. Burada, eklenecek kaynakların sayısı ve aşağıdaki resme benzer diğer ek bilgiler döndürülür.

terraform plan

Aşağıdaki "Plan" özetini inceleyebilirsiniz. Bu yeni bir dağıtımsa eklenecek kaynak sayısını, değiştirilecek ve kaldırılacak kaynak sayısı 0 olarak görürsünüz.

Terraform planı. Terraform planı.

Bu işlemi tamamladıktan sonra Terraform'u uygulamaya devam edebilirsiniz.

terraform apply

Terraform'un işlemleri gerçekleştirmesini onaylamanız istendiğinde değere yes girin.

Terraform uygulama istemi. Terraform uygulama istemi.

terraform apply işlemi tamamlandığında createJob ve getJob için aşağıdaki uç noktalar döndürülür. Postman'de bölüm 1.9'da güncellemeniz gereken frontend_api_id da döndürülür.

Terraform uygulama işlemi tamamlandı. Terraform apply complete.

4. Aggregation Service girişi oluşturma

Toplama Hizmeti'nde gruplandırma için AVRO raporları oluşturmaya devam edin.

4. adım: Aggregation Service Girişi Oluşturma: Aggregation Service için gruplandırılmış Aggregation Service raporlarını oluşturun.
4.1.adım Tetikleyici Raporu
Adım 4.2. Toplanabilir raporları toplama
4.3.adım Raporları AVRO'ya dönüştürme
4.4.adım Çıkış alanı AVRO'sunu oluşturun

4.1. Tetikleyici raporu

Özel Korumalı Alan demosunun bulunduğu siteye gidin. Bu işlem, özel toplama raporunu tetikler. Raporu chrome://private-aggregation-internals adresinde görüntüleyebilirsiniz.

Chrome özel toplama iç öğeleri. Chrome özel toplama iç öğeleri.

Raporunuz "Beklemede" durumundaysa raporu seçip "Seçili Raporları Gönder"i tıklayabilirsiniz. '

Gizli toplama raporu gönderin. Özel toplama raporu gönderme

4.2. Toplanabilir raporları toplama

Toplanabilir raporlarınızı ilgili API'nizin .well-known uç noktalarından toplayın.

  • Private Aggregation
    [reporting-origin] /.well-known/private-aggregation/report-shared-storage
  • İlişkilendirme Raporlama - Özet Rapor
    [reporting-origin] /.well-known/attribution-reporting/report-aggregate-attribution

Bu Codelab'de rapor toplama işlemini manuel olarak gerçekleştireceksiniz. Üretim aşamasında, reklam teknolojilerinin raporları programatik olarak toplaması ve dönüştürmesi beklenir.

chrome://private-aggregation-internals içinde, [reporting-origin]/.well-known/private-aggregation/report-shared-storage uç noktasında alınan "Report Body" (Rapor Gövdesi) bölümünü kopyalayın.

"Rapor Gövdesi"nde aggregation_coordinator_origin öğesinin https://publickeyservice.msmt.aws.privacysandboxservices.com içerdiğinden emin olun. Bu, raporun AWS'de toplanabilir bir rapor olduğu anlamına gelir.

Private Aggregation API raporu. Private Aggregation raporu.

JSON "Rapor Gövdesi"ni bir JSON dosyasına yerleştirin. Bu örnekte vim'i kullanabilirsiniz. Ancak istediğiniz metin düzenleyiciyi kullanabilirsiniz.

vim report.json

Raporu report.json içine yapıştırın ve dosyanızı kaydedin.

Rapor JSON dosyası. Rapor JSON dosyası.

4.3. Raporları AVRO'ya dönüştürme

.well-known uç noktalarından alınan raporlar JSON biçimindedir ve AVRO rapor biçimine dönüştürülmesi gerekir. JSON raporunu aldıktan sonra rapor klasörünüze gidin ve hata ayıklama için toplanabilir raporun oluşturulmasına yardımcı olması için aggregatable_report_converter.jar simgesini kullanın. Bu işlem, geçerli dizininizde report.avro adlı toplanabilir bir rapor oluşturur.

java -jar aggregatable_report_converter.jar \
 --request_type convertToAvro \
 --input_file report.json

4.4 Çıkış alanı AVRO'sunu oluşturun

output_domain.avro dosyasını oluşturmak için raporlardan alınabilen paket anahtarlarına ihtiyacınız vardır.

Grup anahtarları, reklam teknolojisi tarafından tasarlanır. Ancak bu durumda, Privacy Sandbox demo sitesi grup anahtarlarını oluşturur. Bu site için özel toplama hata ayıklama modunda olduğundan, paket anahtarını almak için "Rapor Gövdesi"ndeki debug_cleartext_payload öğesini kullanabilirsiniz.

Rapor gövdesinden debug_cleartext_payload öğesini kopyalayın.

Rapor gövdesindeki düz metin yükünde hata ayıklama. Rapor gövdesinden şifresiz metin yükünde hata ayıklayın.

goo.gle/ags-payload-decoder adresini açın, debug_cleartext_payload kodunuzu "INPUT" (GİRİŞ) kutusuna yapıştırıp "Decode" (Kod Çöz) seçeneğini tıklayın.

Yük kod çözücü. Yük kod çözücü.

Sayfa, paket anahtarının ondalık değerini döndürür. Aşağıda örnek bir paket anahtarı verilmiştir.

Yük kod çözücü sonucu. Yük kod çözücü sonucu.

Paket anahtarını aldığımıza göre output_domain.avro oluşturmaya devam edelim. yerine aldığınız paket anahtarını kullandığınızı doğrulayın.

java -jar aggregatable_report_converter.jar \
 --request_type createDomainAvro \
 --bucket_key <bucket key>

Komut dosyası, geçerli klasörünüzde output_domain.avro dosyasını oluşturur.

4.5. Raporları AWS paketine taşıma

AVRO raporları (bölüm 3.2.3) ve çıkış alanı (bölüm 3.2.4) oluşturulduktan sonra raporları ve çıkış alanını raporlama S3 paketlerine taşıyın.

Yerel ortamınızda AWS KSA kurulumu varsa raporları ilgili S3 paketi ve rapor klasörüne kopyalamak için aşağıdaki komutları kullanın.

aws s3 cp report.avro s3://<report_bucket_name>/<report_folder>/
aws s3 cp output_domain.avro s3://<report_bucket_name>/<output_domain_folder>/

5. Aggregation Service kullanımı

terraform apply tarafından create_job_endpoint, get_job_endpoint ve frontend_api_id iade edilir. frontend_api_id değerini kopyalayın ve ön koşullar bölümündeki 1.9 numaralı adımda ayarladığınız Postman global değişkeni frontend_api_id içine yerleştirin.

5. adım: Aggregation Service Kullanımı: Özet raporlar oluşturmak ve özet raporları incelemek için Aggregation Service API'yi kullanın.
Adım 5.1. createJob uç noktasını kullanarak toplu işleme
Adım 5.2. Toplu iş durumunu almak için getJob uç noktasını kullanma
5.3.adım Özet raporu inceleme

5.1. Toplu iş için createJob uç noktasını kullanma

Postman'de "Özel Korumalı Alan" koleksiyonunu açın ve "createJob"u seçin.

"Body"yi ve istek yükünüzü yerleştirmek için "raw"ı seçin.

postman createJob istek içeriği postman createJob request body

createJob yük şeması github'da mevcuttur ve aşağıdaki gibi görünür. <> yerine uygun alanları girin.

{
    "job_request_id": "<job_request_id>",
    "input_data_blob_prefix": "<report_folder>/<report_name>.avro",
    "input_data_blob_prefixes": [
      "<report_folder>/<report_name-1>/",
      "<report_folder>/<report_name-2>/",
      "<report_folder>/<report_name>.avro"
    ], // Mutually exclusive to input_data_blob_prefix as of v2.11.0
    "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"
    }
}

"Gönder"i tıkladığınızda job_request_id ile iş oluşturulur. İstek, toplama hizmeti tarafından kabul edildikten sonra bir HTTP 202 yanıtı alırsınız. Diğer olası dönüş kodlarını HTTP yanıt kodları bölümünde bulabilirsiniz.

postman createJob isteğinin durumu postman createJob request status

5.2. Toplu iş durumunu almak için getJob uç noktasını kullanma

İş isteğinin durumunu kontrol etmek için getJob uç noktasını kullanabilirsiniz. "Özel Korumalı Alan" koleksiyonunda "getJob"ı seçin.

"Params" bölümünde, job_request_id değerini createJob isteğinde gönderilen job_request_id ile güncelleyin.

postman getJob isteği postman getJob isteği

getJob sonucunda, iş isteğinizin durumu 200 HTTP durumuyla döndürülmelidir. "Body" isteği, job_status, return_message ve error_messages gibi gerekli bilgileri içerir (işte hata varsa).

postman getJob request status postman getJob isteğinin durumu

Oluşturulan demo raporunun raporlama sitesi, AWS kimliğinizde kullanıma alınan sitenizden farklı olduğundan PRIVACY_BUDGET_AUTHORIZATION_ERROR return_code ile yanıt alabilirsiniz. Raporların "raporlama kaynağı" sitesi, AWS kimliği için kullanılan raporlama sitesiyle eşleşmediğinden bu durum normaldir.

{
      "job_status": "FINISHED",
      "request_received_at": "2023-12-07T22:50:58.830956Z",
      "request_updated_at": "2023-12-07T22:51:10.526326456Z",
      "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": "<input_bucket_name>",
      "output_data_blob_prefix": "<output_folder>/<summary_report_prefix>",
      "output_data_bucket_name": "<output_bucket_name>",
      "postback_url": "",
      "result_info": {
          "return_code": "PRIVACY_BUDGET_AUTHORIZATION_ERROR",
          "return_message": "Aggregation job successfully processed",
          "error_summary": {
              "error_counts": [],
              "error_messages": []
          },
          "finished_at": "2023-12-07T22:51:10.517730898Z"
      },
      "job_parameters": {
          "debug_run": "true",
          "output_domain_bucket_name": "<output_domain_bucket_name>",
          "output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
          "attribution_report_to": "https://privacy-sandbox-demos-dsp.dev",
          "reporting_site": "<domain of reporting origin(s) of report>", // Mutually exclusive to attribution_report_to as of v2.7.0
      },
      "request_processing_started_at": "2023-12-07T22:51:06.034472697Z"
}

5.3. Özet raporu inceleme

Özet raporunuzu çıkış S3 paketinizde aldıktan sonra yerel ortamınıza indirebilirsiniz. Özet raporlar AVRO biçimindedir ve tekrar JSON'a dönüştürülebilir. Raporunuzu okumak için aşağıdaki komutu kullanarak aggregatable_report_converter.jar özelliğini kullanabilirsiniz.

java -jar aggregatable_report_converter.jar \
--request_type convertToJson \
--input_file <summary_report_avro>

Bu işlem, her paket anahtarının toplanmış değerlerinin JSON'unu döndürür. Bu JSON, aşağıdaki resme benzer.

Özet rapor Özet rapor.

createJob isteğiniz debug_run olarak true içeriyorsa özet raporunuzu output_data_blob_prefix içindeki hata ayıklama klasöründe alabilirsiniz. Rapor AVRO biçimindedir ve önceki komut kullanılarak JSON'a dönüştürülebilir.

Rapor; gruplandırma anahtarını, gürültü içermeyen metriği ve özet raporu oluşturmak için gürültü içermeyen metriğe eklenen gürültüyü içerir. Rapor, aşağıdaki resme benzer.

Hata ayıklama özeti raporu. Hata ayıklama özeti raporu.

Açıklamalarda in_reports ve in_domain da yer alır. Bu işaretler şunları ifade eder:

  • in_reports: Paket anahtarı, toplanabilir raporlarda kullanılabilir.
  • in_domain: Paket anahtarı, output_domain AVRO dosyasında kullanılabilir.