簡體   English   中英

GCP 函數不能互相調用

[英]GCP functions can't call each other

我無法對 GCP function 進行身份驗證以向其他功能發送請求。 我確實有運行時服務帳戶的服務密鑰。 這是我使用的代碼。 我得到 401

  service_account_key = json.loads(creds)
  creds = service_account.IDTokenCredentials.from_service_account_info(
    service_account_key, target_audience=url
  )
  request = google.auth.transport.requests.Request()
  creds.refresh(request=request)
  token = creds.token

  r = authed_session.post(
    url=url,
    json=data,
    headers={
      'content-type': 'application/json',
      'authorization': f'bearer {token}'
    }
  )

  print(r.text)

首先,在雲功能中,您不應該(不得)使用服務帳戶密鑰文件。 確實,您可以自定義Cloud Functions 服務帳戶,然后從元數據服務器獲取憑據

,用於服務調用 該鏈接指向 Cloud Run 服務,但底層基礎架構相同,並且 Cloud Run 文檔更好。 您需要一個 id_token 才能調用您的 Cloud Functions。

此外,將請求者服務帳戶授權為 cloudfunctions.invoker。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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