如何在 Azure Function v4 中访问 http 状态

How to access http status in Azure Function v4

提问人:ReoDude 提问时间:10/31/2023 更新时间:11/1/2023 访问量:86

问:

如何读取使用 Azure Functions v4 生成的 http 触发器函数的 http 状态?

v3 中的等价物应该是这样的

const statusCode = context.res.status; context.log(HTTP Status Code: ${statusCode});

我尝试调试并尝试在上下文变量中找到状态,但我知道它不存在。我可以从文档(https://learn.microsoft.com/en-us/azure/azure-functions/functions-node-upgrade-v4?tabs=v3)中看到,您可以使用返回状态来设置状态,例如return { status: 200 };但是我不知道如何简单地读取当前状态。

谢谢!

Azure 函数 http-status-codes azure-http-trigger

评论


答:

0赞 Pavan 10/31/2023 #1

如何读取使用 Azure Functions v4 生成的 http 触发器函数的 http 状态?

我创建了一个 Http 触发的函数。

法典:

const { app } = require('@azure/functions');

app.http('httpTrigger1', {
    methods: ['GET', 'POST'],
    authLevel: 'anonymous',
    handler: async (request, context) => {
        context.log(`Http function processed request for url "${request.url}"`);

        const name = request.query.get('name') || (await request.text()) || 'world';

        // Your response object
        const response = { body: `Hello, ${name}!` };

        // Log the HTTP status code
        context.log(`HTTP Status Code: ${response.status || 200}`); // Default to 200 if not set explicitly

        return response;
    }
});

以上代码执行成功。本地输出状态:

enter image description here

我已成功将 http 触发器函数部署到 Azure 门户中。检查以下内容:

enter image description here

然后单击该函数,转到 ,然后运行代码。它运行成功,状态如下: 输出:code+test

enter image description here

评论

1赞 ReoDude 10/31/2023
感谢您的回复!抱歉,我对此很陌生,但在您的示例中,您将状态设置为 200,然后阅读它,不是吗?我试图实现的是让 API 确定状态,然后读取它。另外,我正在使用 Javascript,同样,这在 AZ Functions v3 中使用“context.res.status”似乎很容易做到,但我似乎无法使用 v4 做到这一点?
0赞 Pavan 11/1/2023
@ReoDude,我将上述内容更新为javascript 。AFAIK,我搜索了状态代码,而无需手动在代码中设置,这在函数 v4 中得到语句中是不可能的,例如 .context.res.statusThe Azure Functions team is aware of the need for a way to directly access the HTTP status of a function execution in v4. They are planning to add this feature in a future release
1赞 ReoDude 11/3/2023
有趣的是,这个功能还没有在 v4 中出现。我正在研究使用 APIM 策略来读取运行时设置的状态并设置自定义响应的可能性。谢谢你的努力。