Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 谷歌云平台-在代码中定义凭据_Google Cloud Platform - Fatal编程技术网

Google cloud platform 谷歌云平台-在代码中定义凭据

Google cloud platform 谷歌云平台-在代码中定义凭据,google-cloud-platform,Google Cloud Platform,我们如何在连接到Google云平台的Java程序中定义凭证以执行代码。 有一种设置GOOGLE_APPLICATION_CREDENTIALS env变量的标准方法。我想在代码中定义。有什么建议吗?谢谢您的回复。GCP不建议使用已理解的定义凭据。因此,我将使用ADC(验证默认凭据) 添加更多信息: 为应用程序提供凭据 GCP客户端库使用一种称为应用程序默认凭据(ADC)的策略来查找应用程序的凭据。当您的代码使用客户端库时,该策略将按以下顺序检查您的凭据: 首先,ADC检查环境变量GOOGLE_A

我们如何在连接到Google云平台的Java程序中定义凭证以执行代码。
有一种设置GOOGLE_APPLICATION_CREDENTIALS env变量的标准方法。我想在代码中定义。有什么建议吗?

谢谢您的回复。GCP不建议使用已理解的定义凭据。因此,我将使用ADC(验证默认凭据)

添加更多信息:

为应用程序提供凭据

GCP客户端库使用一种称为应用程序默认凭据(ADC)的策略来查找应用程序的凭据。当您的代码使用客户端库时,该策略将按以下顺序检查您的凭据:

  • 首先,ADC检查环境变量GOOGLE_APPLICATION_CREDENTIALS是否已设置。如果设置了该变量,ADC将使用该变量指向的服务帐户文件

  • 如果未设置环境变量,ADC将使用计算引擎、Kubernetes引擎、应用引擎和云函数为在这些服务上运行的应用程序提供的默认服务帐户

  • 如果ADC无法使用上述任一凭据,则会发生错误

  • 下面的代码示例说明了此策略。该示例没有显式指定应用程序凭据。但是,只要设置了GOOGLE_APPLICATION_credentials环境变量,或者只要应用程序在计算引擎、Kubernetes引擎、应用程序引擎或云函数上运行,ADC就能够隐式查找凭据

    Java代码:

    static void authImplicit() {
      // If you don't specify credentials when constructing the client, the client library will
      // look for credentials via the environment variable GOOGLE_APPLICATION_CREDENTIALS.
      Storage storage = StorageOptions.getDefaultInstance().getService();
    
      System.out.println("Buckets:");
      Page<Bucket> buckets = storage.list();
      for (Bucket bucket : buckets.iterateAll()) {
        System.out.println(bucket.toString());
      }
    }
    
    static void authImplicit(){
    //如果在构造客户端时未指定凭据,则客户端库将
    //通过环境变量GOOGLE\u APPLICATION\u credentials查找凭据。
    Storage Storage=StorageOptions.getDefaultInstance().getService();
    System.out.println(“bucket:”);
    pagebucket=storage.list();
    for(Bucket:Bucket.iterateAll()){
    System.out.println(bucket.toString());
    }
    }
    

    您可以在GCP链接中找到所有这些详细信息:

    为了更好地理解问题,我们需要更多的上下文:您从哪里运行代码(本地/外部应用程序/GAE/GCE VM)?您使用的是哪种产品,并且您希望使用哪种产品进行身份验证?你用的是哪一种?您想使用服务帐户还是API密钥?你看到了吗?谢谢你的回复。GCP不建议使用已理解的定义凭据。所以,我会使用ADC(认证默认凭证)。答案太模糊,没有用处。@Oliver,你们可以参考谷歌网站质量标准:答案应该尽可能自给自足。你的答案应该是“我必须这样使用ADC:…”,最后可以是“查看更多信息”。谢谢奥利弗。好了,谢谢!我修复了一个使3个步骤难以阅读的格式错误。