appsettings.json 在部署为 Azure Function App 容器时可以正确读取,但在部署为简单的 Azure Function App 时则无法正确读取

发布于 2025-01-20 13:36:15 字数 1048 浏览 0 评论 0原文

我有一个功能应用程序,该应用程序成功地在本地运行,成功运行为“ Azure函数应用程序容器”, 但是,当我试图将其简单地部署为“ Azure函数应用程序”时,发布后,它无法读取我在AppSettings.json文件中放置的字段(我将其放在S3密钥访问和秘密键以及其他方面) ,所显示的错误是“未配置了没有regionEndpoint或serviceurl”,应从appsettings.json文件中获取。 这就是我的创业课程中发生的事情:

public override void Configure(IFunctionsHostBuilder builder)
    {
        var config = new ConfigurationBuilder()
           .SetBasePath(Environment.CurrentDirectory)
           .AddJsonFile("appsettings.json", false)
           .AddUserSecrets(Assembly.GetExecutingAssembly(), false)
           .AddEnvironmentVariables()
           .Build();

        builder.Services.AddLogging();
        builder.Services.AddSingleton<IConfiguration>(config);
        builder.Services.AddSingleton(svc =>
           {
               var client = new AzureLogAnalyticsClient(
                 config[LogAnalyticsWorkspaceID],
                 config[LogAnalyticsKey]);
               client.TimeStampField = config["LogAnalyticsTimestampField"];
               return client;
           });
    }

I have a Function App which is successfully running locally and successfully running as "Azure Function App Container",
but when I'm trying to deploy it as simply "Azure Function App", right after publishing it can't read the fields that I put in the appsettings.json file (I put there s3 key access and secret key among other things), the error that is shown is that "No RegionEndpoint or ServiceURL configured", which should be taken from the appsettings.json file.
This is what happens in my startup class:

public override void Configure(IFunctionsHostBuilder builder)
    {
        var config = new ConfigurationBuilder()
           .SetBasePath(Environment.CurrentDirectory)
           .AddJsonFile("appsettings.json", false)
           .AddUserSecrets(Assembly.GetExecutingAssembly(), false)
           .AddEnvironmentVariables()
           .Build();

        builder.Services.AddLogging();
        builder.Services.AddSingleton<IConfiguration>(config);
        builder.Services.AddSingleton(svc =>
           {
               var client = new AzureLogAnalyticsClient(
                 config[LogAnalyticsWorkspaceID],
                 config[LogAnalyticsKey]);
               client.TimeStampField = config["LogAnalyticsTimestampField"];
               return client;
           });
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

南七夏 2025-01-27 13:36:15

Azure函数应用程序部署将不会默认情况下读取AppSettings.json。相反,将这些配置值放在Azure函数的应用程序设置中。

这可以通过登录Azure Portal,转到您的Azure函数来完成:然后:

  1. 在Azure功能刀片上单击“配置”。
  2. 选择标题中的应用程序设置。
  3. 在下表中输入您的设置。

An Azure Function App deployment will not read appsettings.json by default. Instead, put those configuration values in the Azure Function's application settings.

This can be done by logging into the Azure portal, going to your Azure Function, then:

  1. Click "Configuration" on the Azure Function blade.
  2. Choose Application Settings in the header.
  3. Enter your settings in the table below.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文