回答編集履歴

3

修正

2019/04/24 03:55

投稿

YasuhiroNiji
YasuhiroNiji

スコア584

test CHANGED
@@ -76,4 +76,4 @@
76
76
 
77
77
  ```
78
78
 
79
- そこで表示されるエラーメッセージによって対応するといいです。なお、pathはフルパスで入力した方がいいです。
79
+ そこで表示されるエラーメッセージによって対応するといいです。なお、keyファイルへのpathは始めはフルパスで入力した方がいいです。

2

誤字修正

2019/04/24 03:55

投稿

YasuhiroNiji
YasuhiroNiji

スコア584

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- GCP 側の設定は、「サービスアカウント」役割が付与れているかとAPIが有効になっているかどうかだけだと思います。
9
+ GCP 側の設定は、「サービスアカウント」役割が付与れているかとAPIが有効になっているかだけだと思います。
10
10
 
11
11
 
12
12
 

1

回答の追加

2019/04/24 03:53

投稿

YasuhiroNiji
YasuhiroNiji

スコア584

test CHANGED
@@ -3,3 +3,77 @@
3
3
 
4
4
 
5
5
  コンソールの「APIとサービス」で一度確認してみるといいと思います。
6
+
7
+
8
+
9
+ GCP 側の設定は、「サービスアカウント」へ役割が付与荒れているかとAPIが有効になっているかどうかだけだと思います。
10
+
11
+
12
+
13
+ 別の回答で発言しているようにkeyファイルの指定誤りが想定されるのであれば、以下のコードを追加して、環境変数`GOOGLE_APPLICATION_CREDENTIALS`が正しい値になっているか確認してみてください。
14
+
15
+
16
+
17
+ ```
18
+
19
+ import os
20
+
21
+ print(os.environ['GOOGLE_APPLICATION_CREDENTIALS'])
22
+
23
+ ```
24
+
25
+
26
+
27
+ それでもだめであれば、環境変数`GOOGLE_APPLICATION_CREDENTIALS`のexportをすべて削除して、以下のようにすると
28
+
29
+
30
+
31
+ ```
32
+
33
+ import logging
34
+
35
+ import google.cloud.logging
36
+
37
+
38
+
39
+ client = google.cloud.logging.Client()
40
+
41
+ client.setup_logging()
42
+
43
+ logger = logging.getLogger(__name__)
44
+
45
+ logging.info('This is an error')
46
+
47
+ ```
48
+
49
+ エラーメッセージは、以下のように変わります。
50
+
51
+ ```
52
+
53
+ google.auth.exceptions.DefaultCredentialsError: Could not automatically determine credentials. Please set GOOGLE_APPLICATION_CREDENTIALS or explicitly create credentials and re-run the application.
54
+
55
+ ```
56
+
57
+
58
+
59
+ そこで、`from_service_account_json`を使ってkeyファイルを指定します。
60
+
61
+ ```
62
+
63
+ import logging
64
+
65
+ import google.cloud.logging
66
+
67
+
68
+
69
+ client = google.cloud.logging.Client.from_service_account_json('keyファイルへのpath')
70
+
71
+ client.setup_logging()
72
+
73
+ logger = logging.getLogger(__name__)
74
+
75
+ logging.info('This is an error')
76
+
77
+ ```
78
+
79
+ そこで表示されるエラーメッセージによって対応するといいです。なお、pathはフルパスで入力した方がいいです。