为AppEngine灵活环境实例设置"GOOGLE_APPLICATION_CREDENTIALS"



我的应用程序需要设置GOOGLE_APPLICATION_CREDENTIALS环境变量。然而,当SSH进入我的GoogleAppEngineFlexibleEnvironment实例并运行echo $GOOGLE_APPLICATION_CREDENTIALS时,我发现环境变量没有设置。

我通过gcloud app deploy --image-url "gcr.io/$GCP_PROJECT_ID/$GITHUB_SHA"进行部署。我还需要做些什么来确保在新运行的实例上正确设置GOOGLE_APPLICATION_CREDENTIALS吗?

自定义运行时docker映像是谷歌未处理或修改的映像,这意味着GCloud不可用,因为在构建映像时,没有安装另一个问题中提到的sdk,而且自定义运行时不包括任何凭据,只有灵活的(基于谷歌运行时(或标准实例包括默认凭据。

要解决此问题,您需要创建一个服务帐户并添加必要的权限,在创建此帐户后,您需要生成json凭据

要创建json凭据,必须访问服务帐户页面

单击与您的服务帐户匹配的行中的列操作中的3点图标,在菜单中选择模式中的create key,选择JSON,然后单击CREATE按钮。

此文件需要添加到docker映像中,并且需要使用凭据文件的路径定义环境变量GOOGLE_APPLICATION_CREDENTIALS

例如,在dockerfile上添加环境变量

ENV GOOGLE_APPLICATION_CREDENTIALS="[PATH]"

通过这些步骤,基于自定义运行时的应用程序引擎实例将能够使用链接到服务帐户的凭据来使用其他GCP产品或服务

根据官方文件:

创建应用程序引擎应用程序后,应用程序引擎默认创建服务帐户并将其用作应用程序引擎的标识服务应用程序引擎默认服务帐户与关联您的云项目,并代表运行的应用程序执行任务在应用程序引擎中。

默认情况下,应用程序引擎默认服务帐户具有编辑器角色在项目中。

因此,您不需要为在App Engine Flex上运行的应用程序设置GOOGLE_APPLICATION_CREDENTIALS。

相关内容

最新更新