google-cloud-platform - 无法从文件中读取 GCS 凭据
问题描述
我已将我的 Google Cloud Platform 凭据文件作为卷安装在 docker 容器中,并使用 docker-compose 从该文件创建 GOOGLE_APPLICATION_CREDENTIALS 环境变量。当我进入 docker 容器时,该文件就在那里并且它是可读的并且内容是正确的,但是当我检查环境变量的内容时,这就是返回的内容:
docker exec -it -u celery container_name sh
/opt/ori $ $GOOGLE_APPLICATION_CREDENTIALS
/opt/ori/application_default_credentials.json: line 2: type:: not found
/opt/ori/application_default_credentials.json: line 3: project_id:: not found
/opt/ori/application_default_credentials.json: line 4: private_key_id:: not found
/opt/ori/application_default_credentials.json: line 5: private_key:: not found
/opt/ori/application_default_credentials.json: line 6: client_email:: not found
/opt/ori/application_default_credentials.json: line 7: client_id:: not found
/opt/ori/application_default_credentials.json: line 8: auth_uri:: not found
/opt/ori/application_default_credentials.json: line 9: token_uri:: not found
/opt/ori/application_default_credentials.json: line 10: auth_provider_x509_cert_url:: not found
/opt/ori/application_default_credentials.json: line 11: client_x509_cert_url:: not found
显然它正在部分读取 JSON 文件,因为它提取了键,但为什么找不到值?
解决方案
此语句/opt/ori $ $GOOGLE_APPLICATION_CREDENTIALS
将凭证文件视为可执行文件并尝试将其作为脚本执行。
此行/opt/ori/application_default_credentials.json: line 2: type:: not found
显示操作系统找不到type::
要执行的程序。
推荐阅读
- java - 将不透明度动态应用于十六进制颜色
- java - 如何获得最大值。使用 Java 动态显示 Active Directory 的页面大小
- java - 使用 S3Client 在 S3 上重命名文件名
- node.js - 需要 SSL 连接。请指定 SSL 选项并重试
- python - 如何从Django中的数据库中获取另一个应用程序的值?
- scala - select 和 withcolumn 都不适用于 foldleft
- r - if ((!is.matrix(model)) | ncol(model) != 3) stop("model argument must be a 3-column matrix") 中的错误
- scala - Spark迭代程序具有线性内存消耗
- javascript - 当数据仅返回布尔值时,如何编写 graphql-tag?
- angular - ng slim loader 在点击链接时重复 3 次