【问题标题】:Google API - .NET Core support?Google API - .NET Core 支持?
【发布时间】:2017-03-21 15:32:20
【问题描述】:

我们最近正在研究将 BigQuery 流式处理流程(一种传统的 .NET Windows 控制台应用程序)重构为 .NET Core 的可行性,以便它可以分布在容器中,并且可以在 Google Container Engine 上轻松编排.

最近上网查的时候发现here提了一个问题,说ServiceAccountCredential还不支持.NET Core。这实际上是一个交易破坏者。

想知道现在有任何支持 .NET 核心的计划吗?除了 ServiceAccountCredential 之外,还有其他关于 BigQuery Api 的内容在 .NET 核心中不受支持吗?

仅供参考,以下是我们的流程如何创建凭证。有什么解决方法吗?

 private void InitBigQueryService()
    {

        _credential = new ServiceAccountCredential
                                                  (
                                                        new ServiceAccountCredential.Initializer(_account.ClientEmailId)
                                                        {
                                                            Scopes = new[] { BigqueryService.Scope.Bigquery,BigqueryService.Scope.BigqueryInsertdata }
                                                        }.FromCertificate(_account.P12Key)
                                                  );
        BigQueryService = new BigqueryService(new BaseClientService.Initializer
        {
            HttpClientInitializer = _credential,
            ApplicationName = _applicationName,
        });
    }

【问题讨论】:

标签: google-bigquery google-api-dotnet-client


【解决方案1】:

.NET Core 自发布 v1.16.0 起就支持 ServiceAccountCredential。所以你展示的代码应该可以编译和工作。如果没有,请告诉我们。

问题 #758 与 Windows 8.1 应用程序有关,而不是 .NET Core。

【讨论】:

    【解决方案2】:

    除了 Chris 的回答之外,在 Container Engine 中使用 BigQuery 时需要注意的其他事项:

    假设您的集群已使用正确的范围初始化,您应该可以使用容器引擎中的Application Default Credentials,因此您甚至不需要 p12 文件。这就是我们为 Cloud Next 2017 demo 所做的——在本地开发时,我有一个服务帐户 JSON 文件并设置了 GOOGLE_APPLICATION_CREDENTIALS 环境,而在 Container Engine 或 AppEngine 灵活环境中部署时我不需要做任何事情。您可以使用GoogleCredential.GetApplicationDefaultAsync() 来检索凭据。 (如果您在同步上下文中,可以安全地使用 .Result。)该演示在我们运行它时恰好使用了 Datastore,但在其他时候它使用了 BigQuery,所以它确实有效。

    此外,由于我一直在研究BigQuery wrapper library,现在使用 .NET 中的 BigQuery 变得更加简单。它目前仅处于测试阶段,但我希望它能够显着简化您的代码 - 它处理带有记录字段等的行的 JSON 格式的所有繁琐方面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      • 1970-01-01
      • 2021-03-24
      • 2017-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多