【问题标题】:How to authorize Google API inside of Docker如何在 Docker 中授权 Google API
【发布时间】:2021-08-06 20:52:24
【问题描述】:

我在 Docker 中运行一个应用程序,需要我利用 google-bigquery。当我在 Docker 之外运行它时,我只需要转到下面的链接(已编辑)并授权。但是,当我从 Docker 终端复制粘贴它时,该链接不起作用。我也尝试过端口映射,也没有运气。

代码:

credentials = service_account.Credentials.from_service_account_file(
    key_path, scopes=["https://www.googleapis.com/auth/cloud-platform"],
)
# Make clients.
client = bigquery.Client(credentials=credentials, project=credentials.project_id,)

回复:
requests_oauthlib.oauth2_session - DEBUG - Generated new state
Please visit this URL to authorize this application:

【问题讨论】:

    标签: docker google-bigquery google-api


    【解决方案1】:

    请查看可用的解决方案on this page,它会不断更新。

    • gcloud 凭据助手
    • 独立的 Docker 凭据助手
    • 访问令牌
    • 服务帐号密钥

    简而言之,您需要使用service account key 文件。确保您使用 Secret Manager,或者您只是为 Docker 映像发布服务帐户密钥文件。

    您需要在构建或运行时将服务帐户密钥文件放入 Docker 容器中。

    【讨论】:

    • 我有一个服务帐户密钥。只是当我在上面的响应中单击该链接时,它会将我带到 This page is not working 网页。这可能不是 Docker 问题,因为我现在正在本地机器上获取它。它通常在第一次工作,但不是以后的时间。
    • 应该没有链接,如果您有链接,则意味着 PERSON 需要将某些东西授权为 OAuth。可以将服务帐户密钥文件添加到代码中,并且可以正常工作。重新访问您的代码,因为您可能使用错误。
    • 有趣。我通常在 Jupyter 笔记本中运行它,它会自动将我带到该站点并进行身份验证(如果我已登录),但这是来自 Docker 容器。很奇怪。谢谢。
    猜你喜欢
    • 2016-11-01
    • 2017-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-23
    • 2015-09-15
    • 2011-11-21
    • 1970-01-01
    相关资源
    最近更新 更多