Я пытаюсь вести журнал моего приложения Flutter в корзину журнала определенного облачного проекта Google, а не в консоль разработчика. Я сталкиваюсь с Permission 'logging.logEntries.create' denied on resource (or it may not exist).
, когда запускаю код. Как я могу это исправить? Код дротика для публикации журнала приведен ниже.
final logEntry = {
"jsonPayload": {
"message": {
"test": "entry",
"test 2": "entry 2",
},
},
"logName": logName,
"resource": {
"type": "global",
"labels": {
"project_id": projectId,
},
}
};
final url = "https://logging.googleapis.com/v2/entries:write";
http.Response response = await http.post(
Uri.parse(url),
headers: {
HttpHeaders.contentTypeHeader: 'application/json',
"X-goog-api-key": apiKey,
},
body: json.encode(
{
"entries": [logEntry],
},
),
);
Ключ API, который я создал, не имеет ограничений API, но я также пытался ограничить его использованием только API ведения журнала, но он по-прежнему имеет ту же ошибку.
Вам необходимо предоставить logging.logEntries.create
разрешение на учетную запись службы, используемую вашим Flutter
приложением.
На странице IAM
в консоли Google Cloud
вы сможете назначить роль, содержащую указанное выше разрешение, для вашей учетной записи службы.
Если вы использовали пользовательскую роль, вы также можете напрямую добавить разрешение logging.logEntries.create
к этой пользовательской роли.
Как указано в документе:
Разрешение
logging.logEntries.create
необходимо для каждого проекта, организация, учетная запись для выставления счетов или папка, которая получает новый журнал записей, независимо от того, указан ли ресурс в logName или в индивидуальная запись в журнале.
Итак, вам нужно дать разрешение logging.logEntries.create
на учетную запись службы, используемую вашим приложением Flutter.
Вы также можете ознакомиться с подробной статьей Руководство по контролю доступа.
Это исправило ошибку, я изначально использовал ключ учетных данных API, а не ключ учетной записи службы. Теперь я получаю ошибку
API key not valid. Please pass a valid API key.
. Я использую ключ API, созданный в учетной записи службы с ролью администратора ведения журнала.