Azure Function App - 未找到 HTTP 触发器(本地工作正常)

问题描述 投票:0回答:1

我正在创建一个相对简单的javascript应用程序,它作为azure函数应用程序在节点上运行,并最终返回生成的png。我安装了 Azure Function 扩展,以便使用一个非常简单的 hello world 应用程序。我将其发布到 azure,效果很好。

问题是 - 我想使用 canvas 来创建 png 图像,但是当我修改代码并发布时,我找不到任何 HTTP 触发器,并且 azure 门户上没有列出任何函数。

我大大减少了代码,只是为了显示实际上破坏它的代码有多么少。

httpTrigger1.js

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

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';

        const canvas = createCanvas(600, 600); // ***

        return { body: `Hello, ${name}!` };
    }
});

当删除用 *** 注释的行并发布到 azure 函数应用程序时,触发器会显示并且应用程序会正常返回正文。

packages.json

{
  "name": "accelerate.ai.chart_v3",
  "version": "1.0.0",
  "description": "",
  "scripts": {
    "start": "func start",
    "test": "echo \"No tests yet...\""
  },
  "dependencies": {
    "@azure/functions": "^4.5.1",
    "canvas": "^2.11.2"
  },
  "main": "src/{index.js,functions/*.js}"
}

Azure 功能应用程序设置:
堆栈 = Node.js
Node.js 版本:Node.js 20 LTS

使用 Azure Functions 扩展 1.15.4

javascript node.js azure
1个回答
0
投票

所以我自己解决了这个问题! :)

首先,我创建了一个新项目,并使用 azure 函数 VS Code 扩展选择了模型 3,而不是模型 4。这给了我一个不同的项目结构,其中包含一个 function.json 文件。

然后我使用 windows、x64、node v20 创建了一个新的函数应用程序。

当我发布应用程序时,触发器现在仍然存在并且没有中断!!

© www.soinside.com 2019 - 2024. All rights reserved.