如何使用Azure资源管理器API创建Azure Function应用程序v4

k4emjkb1  于 2023-11-21  发布在  其他
关注(0)|答案(1)|浏览(133)

考虑以下适用于v4之前的函数应用程序的代码:

var bindingsConfig = new
{
    bindings = new object[]
        {
            new
            {
                AuthLevel = "function",
                Type = "httpTrigger",
                Direction = "in",
                Name = "request",
                Methods = new[] {"post"}
            },
            new
            {
                Type = "http",
                Direction = "out",
                Name = "$return"
            }
        }
};

app = await myResourceGroup.GetWebSites().GetAsync("my-app-name", ct);
var func = await app.GetSiteFunctions().CreateOrUpdateAsync(WaitUntil.Completed, "my-func-name", new FunctionEnvelopeData
{
    Config = BinaryData.FromObjectAsJson(config)
}, ct);

字符串
现在根据this docfunction.json不再用于v4编程模型。我的问题是-这是否意味着我不应该将bindingsConfig传递到CreateOrUpdateAsync()?当我尝试它时,我得到以下错误:

Azure.RequestFailedException: 'Error creating function. <my-func-name> is not a valid function name
Status: 400 (Bad Request)
ErrorCode: BadRequest


一般来说,我应该如何调用CreateOrUpdateAsync()来创建一个v4类型的函数?

2fjabf4q

2fjabf4q1#

对于那些对解析感兴趣的人来说,事实证明,对app.GetSiteFunctions().CreateOrUpdateAsync()的调用永远不应该用于创建函数v4。这个调用会导致创建v3风格的function.json,这与v4编程模型相冲突(v3和v4编程模型不应该混合在一个应用程序中)。
同样重要的是,如果node_modules文件夹丢失(在Kudu UI中),请确保调用npm install

相关问题