Azure Functions 无法命中 HttpTrigger

Azure Functions Not able to hit HttpTrigger

我有一个带有 HttpTrigger 的简单 Azure 函数,如下所示:

[FunctionName("Heartbeat")]
public async Task<IActionResult> Heartbeat(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "heartbeat")] HttpRequest req,
    ILogger log)
{
    log.Log(LogLevel.Information, "Received heartbeat request");
    var status = await _healthCheck.CheckHealthAsync();

    return new OkObjectResult(Enum.GetName(typeof(HealthStatus), status.Status));
}

local.settings.json:

{
  "IsEncrypted": false,
    "Values": {
        "AzureWebJobsStorage": "UseDevelopmentStorage=false",
        "FUNCTIONS_WORKER_RUNTIME": "dotnet",
        "APPINSIGHTS_INSTRUMENTATIONKEY": "*****"
    },

    "ConnectionStrings": {
        "ServiceDb": "Server=.;Initial Catalog=Acquire;Integrated Security=True;"
    },

  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },

当我 运行 本地函数时,我能够在 Heartbeat() 中设置断点并获得 200OK。但是,当它部署到 Azure 时,它​​不起作用,我收到 404 Not Found。

本地:

蔚蓝:

问题是什么?为什么我不能执行 HttpTrigger?

另外,有没有办法在 Azure 中查看 local.settings.json 配置?我虽然这些设置会以某种方式从 Azure 中的 local.settings.json 填充(如连接字符串),但它们是空白的。有没有办法在 Azure 中显示这些设置?

is there a way to view local.settings.json configururation in Azure?

Azure 中没有 local.settings.json,因此名称为“本地”。

您应该在您的应用程序设置中添加同名设置。

azure应该有一个选项给你功能url。应该看起来像这样

我找到了解决办法。我的问题是运行时版本设置为:~1 而不是 ~3。我必须对 IOptions 进行绑定的另一个更改是编辑 project,并修改这些选项:

<Content Include="local.settings.json">
  <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
  <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>

要使日志记录工作: https://nuggets.hammond-turner.org.uk/2019/10/tuesday-quickie-ilogger-in-azure.html

我添加了这个,现在我看到所有日志都正常了:

{
  "version": "2.0",
  "logging": {
    "logLevel": {
      "ServiceLogger": "Information"
    }
  }
}

但其他用户的所有回答都让我走上了正确的道路。