Posts tagged with aws-secrets-manager

I'm currently running a script locally to generate reports using GoogleAdsManager API. Prior running the script I've created new service account key in json format as the key type together with ~/googleads.yaml.

Here's the dev guide.

However, I wanted to schedule this script on (AWS Glue).

This is the sample script and the issue I currently faced is :

How do call this method ad_manager.AdManagerClient.LoadFromStorage() from aws? I've stored the credentials (JSON and YAML) in AWS Secrets Manager

from googleads import ad_manager, oauth2 import tempfile import _locale _locale._getdefaultlocale = (lambda *args: ['en_US', 'UTF-8']) ad_unit_id = XXXXXXXXXX def generate_ad_impressions(client):     # Initialize appropriate service.     report_service = client.GetService("ReportService",      version="v202108")     # Initialize a DataDownloader.     report_downloader = client.GetDataDownloader(version="v202108")     # Create statement object to filter for an order.     statement = (         ad_manager.StatementBuilder(version="v202108")         .Where("PARENT_AD_UNIT_ID = :id")         .WithBindVariable("id", mbns_aa_vod_ad_unit_id)         .Limit(None)  # No limit/offset for reports         .Offset(None)     )     report_job = {         "reportQuery": {         "dimensions": ["DATE", "HOUR"],         "columns": [             "AD_SERVER_IMPRESSIONS",         ],         "dateRangeType": "TODAY",         "startDate": {             "year": "2022",             "month": "1",             "day": "25"         },         "endDate": {             "year": "2022",             "month": "1",             "day": "25"         },         "statement": statement.ToStatement(),       }     }     try:         # Run the report and wait for it to finish.         report_job_id = report_downloader.WaitForReport(report_job)     except:         print("Failed to generate report.")         # Change to your preferred export format.         export_format = "CSV_DUMP"         # report_file =         tempfile.NamedTemporaryFile(suffix=".csv.gz",          delete=False)     with open('ad_unit_report.csv.gz', mode='wb') as report_file:         # Download report data.         report_downloader.DownloadReportToFile(report_job_id,          export_format, report_file)         report_file.close()     # Download report data.     downloaded_report =      report_downloader.DownloadReportToFile(report_job_id,      export_format, report_file)     report_file.close()     print('success!') if __name__ == '__main__':    ad_manager_client =     ad_manager.AdManagerClient.LoadFromStorage('path_to_yaml_file')    generate_ad_impressions(ad_manager_client)