Ошибка 403 при попытке перечислить метрики в другом проекте через мониторинг api из движка приложения

Я использую приложение движка приложений, написанное на python2.7, для сбора показателей мониторинга из разных проектов. Я запускаю это из облачной оболочки. Приложение движка приложения развернуто в projectA, и оно может собирать метрики из projectA с помощью приведенного ниже вызова.

service = build('monitoring', 'v3', cache_discovery=True)
    project_name = 'projects/{project_id}'.format(
        project_id=project_id
    )

    metrics = service.projects().metricDescriptors().list(
         name=project_name,
         pageSize=config.PAGE_SIZE,
         pageToken=next_page_token
    ).execute()

Этот вызов записывается в цикле. Теперь мне нужно собрать метрики ProjectB, у меня есть доступ владельца к ProjectB. Когда ProjectB передается в качестве параметра project_id, я получаю следующую ошибку:

                        logMessage: "Error: <HttpError 403 when requesting https://monitoring.googleapis.com/v3/projects/ProjectB/metricDescriptors?pageToken=&alt=json&pageSize=500 returned "Permission monitoring.metricDescriptors.list denied (or the resource may not exist).">"     
severity: "ERROR"     
sourceLocation: {
 file: "/base/data/home/apps/s~ProjectA/list-metrics:20200706t123743.427891295940019389/main.py"      
 functionName: "post"      
 line: "665"      
}
time: "2020-07-06T16:10:43.724399Z"

Я не уверен, что нужно сделать, чтобы эта работа заработала? Я очень новичок в облаке Google и его API, а также в движке приложений, python2.7 любезно помогите, спасибо


comment
ошибка: Permission monitoring.metricDescriptors.list отказано (или ресурс может не существовать).   -  person c69    schedule 07.07.2020


Ответы (1)


Я решил это таким образом, добавив учетную запись службы по умолчанию для движка приложения в роль monitoring.viewer для ProjectB, и теперь я также могу получать метрики из ProjectB.

person user1403505    schedule 06.07.2020