标签: azure-http-trigger

向 .NET 隔离的 Azure 函数添加运行状况检查

我找不到任何资源来将运行状况检查添加到在 .NET 5.0 隔离中运行的 HTTPTrigger 功能应用程序。

static async Task Main()
{
    var host = new HostBuilder()
        .ConfigureAppConfiguration(configurationBuilder =>
        {
            configurationBuilder.AddEnvironmentVariables();
        })
        .ConfigureFunctionsWorkerDefaults()
        .ConfigureServices((builder, services) =>
        {
            var configuration = builder.Configuration;
            services.AddDbContext(configuration);
                    
            // Add healthcheck here
            services.AddHealthChecks()
            // ...
            // Map health checks
                    
        })
        .Build();

    await host.RunAsync();
}
Run Code Online (Sandbox Code Playgroud)

指南指出我可以添加 MapHealthChecks (但在 asp.net core 中)

var app = builder.Build();

app.MapHealthChecks("/healthz");

app.Run();
Run Code Online (Sandbox Code Playgroud)

如何将其转换为在我的 dotnet 隔离应用程序中运行?

.net azure-functions .net-5 health-check azure-http-trigger

8
推荐指数
1
解决办法
4107
查看次数

Azure Functions(Http 触发)开始随机抛出 TaskCancelled 异常

我该如何解决此问题?

  • 我有几个使用以下触发器签名的 Azure 函数 [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")。

  • 这些功能按照消耗计划运行。

  • 它们每天会被触发 2-3 次。

该函数间歇性无法触发,但出现以下异常:

Azure 的诊断显示该任务在调用工作进程之前已取消。 诊断

public class AlpacaSample 
{
    private ILogger logger;

    public AlpacaSample(ILoggerFactory loggerFactory)
    {
        this.logger = loggerFactory.CreateLogger<AlpacaSample>();
    }

    [Function("AlpacaSample")]
    public async Task<HttpResponseData> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequestData req)
    {
        try
        {
            this.requestData = req;
            string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
            var message = $"Received a trigger {requestBody}";
            this.logger.LogInformation(message);

            // Business logic removed for brevity 


            return await this.CreateStringResponse(req, "All Good");
        }

        catch (Exception ex)
        {
            string responseMessage =
                   $"Error occurrend while …
Run Code Online (Sandbox Code Playgroud)

.net c# azure-functions azure-http-trigger

6
推荐指数
1
解决办法
1642
查看次数

如何禁用逻辑应用程序的 SAS 授权?

有没有办法禁用逻辑应用 HTTP 触发器的 SAS 授权方案?

在文档中,我读到了以下内容: “对请求端点的入站调用只能使用一种授权方案,SAS 或 Azure Active Directory 开放身份验证。尽管使用一种方案不会禁用另一种方案...” - 来源:https ://learn.microsoft.com/en-us/azure/logic-apps/logic-apps-securing-a-logic-app

我想要做什么: 我想禁用 SAS 授权方案。提供正确的 SAS 参数时,不应触发逻辑应用。或者,如果无法停用 SAS 授权,则在使用 SAS 的情况下它应该返回错误。只有 OAuth 授权才能给出有效结果。这可能吗?

azure-logic-apps azure-sas azure-http-trigger

5
推荐指数
1
解决办法
2919
查看次数

如何仅从 Azure Functions (dotnet5) 返回 JSON

我在 dotnet5 中有一组 HttpTrigger Azure 函数,我想从这些 Azure 函数返回 JSON。我正在使用return new OkObjectResult(myObject),但没有提供 JSON,而是 JSON 位于返回的 JSON 的“Value”元素中,即结果看起来有点像

{
  "Value": {
    "MyValueOne": true,
    "MyValueTwo": 8
  },
  "Formatters": [],
  "ContentTypes": [],
  "DeclaredType": null,
  "StatusCode": 200
}
Run Code Online (Sandbox Code Playgroud)

与预期相反

{
    "MyValueOne": true,
    "MyValueTwo": 8
}
Run Code Online (Sandbox Code Playgroud)

我已经走了几条具有不同返回对象的路径,但它们似乎总是具有这些额外的值,并且我想要返回的 JSON 通常包含在其他 JSON 中的值或内容中,例如: JsonResult(myObject) OR ContentResult() { 内容 = serializedVersionOfMyObject }

我什至尝试了 HttpResponseMessage 路径;但在 HttpTrigger 和 Tast 的预期返回方面遇到了麻烦

我觉得我错过了一些简单的东西;从 Azure 函数返回“just json”的预期/期望/直接方式是什么?

.net azure-functions .net-5 azure-http-trigger

4
推荐指数
1
解决办法
7738
查看次数

Azure Functions 和 Swagger UI - 如何在 swagger UI 中显示查询字符串参数?

我有以下由 HTTP 触发的 Azure 函数。我已使用此处的链接为我的端点设置了 Swagger 。以下 API 需要一组查询字符串参数,即"name"、"email"、"phone",因此它可以对目标对象进行一些搜索。目前,函数的主体当然还没有实现,但这对于这个问题来说并不重要。

我的问题:如何在 swagger UI 中显示查询字符串参数?

功能:

[FunctionName(nameof(GetBookingCalendarsFunction))]
 public async Task<IActionResult> GetAllAsync(
        [HttpTrigger(AuthorizationLevel.Anonymous, "GET", Route = "bookings")] HttpRequest request,
        ILogger log)
    {
        log.LogInformation("C# HTTP trigger function processed a request.");

        return new OkObjectResult($"Name: {request.Query["name"]}, email: {request.Query["email"]}, phone: {request.Query["phone"]}");
    }
Run Code Online (Sandbox Code Playgroud)

此功能的 swagger UI

在此输入图像描述

注意:我不想使用路由值而不是查询字符串参数,因为这些参数是可选的,并且调用者可能不想提供其中之一。

例如,我尝试了以下方法,但如果删除任何参数,它将失败,并显示 404,因为它将它们作为路由的一部分(即使它会在 Swagger 中显示它们)

  [FunctionName(nameof(GetBookingCalendarsFunction))]
    public async Task<IActionResult> GetAllAsync(
        [HttpTrigger(AuthorizationLevel.Anonymous, "GET", Route = "bookings/name={name}&email={email}&phone={phone}")] HttpRequest request,
        string name, string email, string phone,
        ILogger log)
    {
        log.LogInformation("C# …
Run Code Online (Sandbox Code Playgroud)

swagger swagger-ui azure-functions azure-http-trigger

2
推荐指数
1
解决办法
3246
查看次数

TypeScript Azure Function 将 POST 方法的正文读取为 JSON

我有带有 Http 触发器的 TypeScript azure 函数。我正在使用 POST 方法并将正文发送到 azure 函数。但我无法读取、请求正文数据作为 Javascript 对象。

我的功能代码

import { AzureFunction, Context, HttpRequest } from "@azure/functions"

const httpTrigger: AzureFunction = async function (context: Context, req: HttpRequest): Promise<void> {
    context.log('HTTP trigger function processed a request.');
    const name = (req.query.name || (req.body && req.body.name));

    if (name) {
        context.res = {
            // status: 200, /* Defaults to 200 */
            body: "Ar Item search " + (req.query.name || req.body.name)
        };
    }
    else {
        context.res = {
            status: 400,
            body: …
Run Code Online (Sandbox Code Playgroud)

azure node.js typescript azure-functions azure-http-trigger

1
推荐指数
1
解决办法
4904
查看次数