簡體   English   中英

在不使用環境變量的情況下對 Google Cloud 視覺進行身份驗證(通過代碼設置憑據)

[英]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.oauth2service_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM