为Azure托管的MVC网站设置GOOGLE_APPLICATION_CREDENTIALS

时间:2018-07-11 08:49:03

标签: asp.net-mvc azure environment-variables google-cloud-storage

标题几乎全部说明了。

在应用设置下设置GOOGLE_APPLICATION_CREDENTIALS环境变量时,我尝试将json文件上传到azure存储并引用了它的url,但是在远程调试网站时,显然url /目录的格式不可接受。我也无法在本地存储json文件,因为该网站对我的C盘目录一无所知。

我应该在哪里存储该文件,以便将我的azure网站的GOOGLE_APPLICATION_CREDENTIALS环境变量设置为json文件的目录?

3 个答案:

答案 0 :(得分:1)

如果有人想知道如何在.Net应用程序中平稳处理Google的凭据,而不是在服务器上使用文件的奇怪方式,那么这就是我为Translation Service解决的方法。其他服务必须遵循相同的原则:

  • 将Google凭据json文件的内容作为环境变量存储在您的应用的settings.json / azure配置中(对于内部文本,使用''代替“”):

    "GOOGLE_APPLICATION_CREDENTIALS": "{'type': 'service_account','project_id': ...}"
    
  • 创建并返回客户端:

      var credential = GoogleCredential.FromJson(Environment.GetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS"));
      var channelCredentials = credential.ToChannelCredentials();
      var channel = new Channel(TranslationServiceClient.DefaultEndpoint.ToString(), channelCredentials);
      return TranslationServiceClient.Create(channel);
    

花点时间让我自己理解一下。希望能帮助到你。

答案 1 :(得分:0)

azure门户上的 azure应用中,转到应用设置,然后在应用设置下添加凭据标签

然后,您可以像在web.config文件中一样在代码中引用它们。

答案 2 :(得分:0)

我在本地环境中使用.json文件(由于Windows中环境变量长度的限制),而在Azure上,我使用“应用程序设置”来设置环境变量。这段代码处理两种情况:

npm