首页 > 解决方案 > 将在 Azure 上托管的 asp.net 中的环境变量引用的 JSON 文件的存储位置

问题描述

我已经使用 ASP.NET 创建了一个 Web 服务,并将在 Firestore 中存储数据。因此,我需要设置引用 JSON 文件的 GOOGLE_APPLICATION_CREDENTIALS 环境变量。这在我的机器上本地工作,但它在发布到 Azure 时不起作用。问题是我找不到 JSON 文件来定位文件路径,我在发布之前仔细检查了我的本地项目文件夹是否有 JSON 文件。我可以知道存储我的 JSON 文件的最佳位置在哪里,以便我可以找到文件路径,GOOGLE_APPLICATION_CREDENTIALS 可以在 Azure 门户中引用它。

谢谢你。

标签: azureasp.net-web-apienvironment-variablesgoogle-cloud-firestoreazure-web-app-service

解决方案


如果您希望避免将该凭证文件签入源代码控制或开发机器上,并且您已经有一个安全的地方来存储字符串配置数据,这是另一种选择。

您可以通过这种方式启动 Firestore 客户端并手动为其提供凭据:

 var credential = GoogleCredential.FromJson(<JSON AS STRING>);
 var channelCredentials = credential.ToChannelCredentials();
 var channel = new Channel(FirestoreClient.DefaultEndpoint.ToString(), channelCredentials);
 var client = FirestoreClient.Create(channel);

(此处使用 Nuget 包的代码:https ://www.nuget.org/packages/Google.Cloud.Firestore/ )


推荐阅读