将我的 C# Azure Function 从 VSCode 部署到 Azure 时,我似乎在门户上看不到它。
我还注意到,消息“无 HTTP 触发器”专门针对 C# 相关函数出现,因为我已尝试使用 Azure 函数扩展部署我的 Python 函数,并且它按预期工作。
当我使用 AZ CLI 时也会发生同样的情况。
以下是 VS Code 部署该函数时出现的一些日志:
14:57:32 functionapp: Processed 496 files...
14:57:52 functionapp: Processed 719 files...
14:58:00 functionapp: Finished successfully.
14:58:01 functionapp: Running post deployment command(s)...
14:58:01 functionapp: Triggering recycle (preview mode disabled).
14:58:01 functionapp: Deployment successful.
14:58:15 functionapp: Syncing triggers...
14:58:25 functionapp: Querying triggers...
14:58:26 functionapp: No HTTP triggers found.
使用 AZ CLI 时:
> az functionapp deployment source config-zip -g rg-name -n functionapp --src publish_output.zip
Getting scm site credentials for zip deployment
Starting zip deployment. This operation can take a while to complete ...
Deployment endpoint responded with status code 202
{
"active": true,
"author": "N/A",
"author_email": "N/A",
"complete": true,
"deployer": "ZipDeploy",
"end_time": "2023-03-29T13:11:34.0203343Z",
"is_readonly": true,
"is_temp": false,
"last_success_end_time": "2023-03-29T13:11:34.0203343Z",
"log_url": "https://functionapp.scm.azurewebsites.net/api/deployments/latest/log",
"message": "Created via a push deployment",
"progress": "",
"provisioningState": "Succeeded",
"received_time": "2023-03-29T13:10:35.008044Z",
"site_name": "functionapp",
"start_time": "2023-03-29T13:10:35.8988656Z",
"status": 4,
"status_text": "",
"url": "https://functionapp.scm.azurewebsites.net/api/deployments/latest"
}
有人知道这个问题可能来自哪里吗?
TIA!
编辑:一些片段
因此,我在函数中进行了一些依赖注入:
using Microsoft.Azure.Functions.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
[assembly: FunctionsStartup(typeof(A.Startup))]
namespace A
{
public class Startup : FunctionsStartup
{
public override void Configure(IFunctionsHostBuilder builder)
{
builder.Services.AddSingleton<IHelper, Helper>();
builder.Services.AddSingleton<
SomeInterface,
SomeClass
>();
}
}
}
我修改了我的类构造函数并且使用了装饰器
namespace A
{
public class FunctionApp
{
private IHelper _helper;
private SomeInterface _someInterface;
public FunctionApp(
IHelper helper,
SomeInterface someInterface
)
{
_helper = helper;
_someInterface = someInterface;
}
/// <summary>
/// The function's entry point.
/// </summary>
/// <param name="req"></param>
/// <param name="log"></param>
/// <returns></returns>
[FunctionName("FunctionApp")]
public async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req,
ILogger log
)
// The code starts here