[英]Authenticate Google Cloud vision without using environment variables (set credentials by code)
我正在嘗試從 AWS lambda 函數連接到 Google Cloud Vision,身份驗證的唯一方法似乎是通過設置某個環境變量,有沒有辦法使用代碼進行身份驗證(我計划在 AWS Secrets Manager 中存儲憑證詳細信息並將它們傳遞到 Python 中的 Google Vision 客戶端)。
vision.ImageAnnotatorClient 的構造函數將 Credentials 作為第一個參數,但令人沮喪的是,我無法為一組服務帳戶憑據構造這樣的對象!
希望有人能幫忙!
編輯在此鏈接中,似乎除了 Python 之外的其他語言都可以幫助解析憑據,但不能使用 Python 示例!
https://cloud.google.com/docs/authentication/production#auth-cloud-explicit-python
不是一個容易找到的 :( 這是執行此操作的代碼:
service_account_info_string = R"""{
"type": "service_account",
"project_id": "",
"private_key_id": "",
"private_key": "-----BEGIN PRIVATE KEY-----\n.......\n-----END PRIVATE KEY-----\n",
"client_email": "....@.....iam.gserviceaccount.com",
"client_id": "545................45648",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/....%40....iam.gserviceaccount.com"
}
"""
service_account_info_json = json.loads(service_account_info_string)
service_account_creds = creds.from_service_account_info(service_account_info_json)
client = vision.ImageAnnotatorClient(credentials=service_account_creds)
您可以將您的憑據放在service_account.json
文件中並執行以下操作:
from google.cloud import vision
client = vision.Client.from_service_account_json('service_account.json')
我有一個類似的問題,並通過其他答案之間的組合來解決。
您需要使用來自google.oauth2
的service_account
和您的credentials.json
文件的完整路徑來創建credentials
對象。
然后在vision.ImageAnnotatorClient
使用這個credentials
對象。
from google.cloud import vision
from google.oauth2 import service_account
credentials = service_account.Credentials.from_service_account_file('PATH/TO/FILE.json')
client = vision.ImageAnnotatorClient(credentials=credentials)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.