标签: azure-function-app

为什么我的 EF Core DbContext 不受 DI 绑定?

我有一个 Azure Function App,其函数在 blob 触发器上运行。我已经证明这个函数可以通过 Azure 门户运行并响应这个 blob 触发器而不会出现问题......或者至少是这样。

现在我已经添加了使用 EF Core (2.2.4) 的功能,在本地调试和发布到 Azure 时都会出现以下错误:

Microsoft.Azure.WebJobs.Host:索引方法“ParseThings”出错。Microsoft.Azure.WebJobs.Host:无法将参数“context”绑定到 AvastusContext 类型。确保绑定支持参数类型。如果您使用绑定扩展(例如 Azure 存储、ServiceBus、计时器等),请确保您已在启动代码中调用扩展的注册方法(例如 builder.AddAzureStorage()、builder.AddServiceBus( )、builder.AddTimers() 等)。

Startup按照 Azure Function App 文档的指示开设了一个课程并且严格按照他们的示例进行操作,除了以下行代替其配置的示例服务之外:

[assembly: FunctionsStartup(typeof(AvstFunctionApp.Startup))]

namespace AvstFunctionApp
{
    public class Startup : FunctionsStartup
    {
        public override void Configure(IFunctionsHostBuilder builder)
        {
            builder.Services.AddDbContext<AvastusContext>(options => options.UseSqlServer(Environment.GetEnvironmentVariable("AvastusDb")));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的函数的开头:

public static class ParseThings
{
    [FunctionName("ParseThings")]
    public static void Run([BlobTrigger("summaries/{name}", Connection = "StorageConnectionString")]Stream myBlob, string name, ILogger log, AvastusContext context)
Run Code Online (Sandbox Code Playgroud)

我可以确认该AddDbContext …

c# azure entity-framework-core asp.net-core azure-function-app

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

Azure Function Apps - 在管理门户中设置当前正在运行的实例数量

有什么方法可以查看管理门户中函数应用程序中 man 实例的运行情况吗?我尝试查看实时指标,但它只显示传入的请求,而不显示正在运行的实例的数量。

azure-functions azure-function-app

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

Azure Functions 应用程序在发布后为只读

我有几个 Azure Functions 应用程序(c#、javascript 和 python),一段时间后它们都被随机设置为只读模式。奇怪的是,在这3个功能应用程序中只有一个在发生这种情况之前进行了更新。我知道这不一定是问题,但我希望能够从门户进行编辑。

我无法打开应用服务编辑器
应用服务编辑器无法按下
我无法从功能应用设置 -> 功能应用编辑模式将应用设置为读/写 在此处输入图片说明 我也尝试使用“func azure functionapp publish myAzFuncAppName --nozip”,但结果相同

azure azure-functions azure-function-app

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

了解 Azure Functions 高级计划计费

我一直在阅读有关此的各种文档,但无法清楚地确认我的理解,我们正在评估 Azure Functions 高级计划并希望更清楚地了解成本。

我的理解如下:

  1. 在高级计划中,我们可以配置最小实例数和突发大小。这是 Premium Plan 实例预留池的最小和最大大小(假设它是 SKU EP2)。假设我将最小实例数设置为 3,突发大小设置为 10。

  2. 配置的最小值(在本例中为 3)意味着有 3 个 EP2 一直在运行,即使它们没有做任何事情,我也要为此付费。

  3. 在我的函数应用程序中,我指定我需要 2 个预热的函数实例。我还为这些预热和等待请求付费。

  4. 请求开始进来,现在我还要为预热实例中的执行时间(按内核和内存使用)付费。

我上面的理解正确吗?此处相关的总成本是否如下:

(3 个 EP2 固定成本 + 最多 10 个 EP2 最大突发)+(2 个预热实例 + 额外的消费实例)+(请求执行)

我们如何为预热的实例收费?

azure-functions azure-functions-runtime azure-function-app

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

如何将与 VNet 集成的 Azure 功能应用程序列入白名单以进行 Even Grid 订阅

我们在标准应用服务计划中托管了功能应用。为了保护功能应用程序的安全,我们将其集成到 VNet,并仅允许来自 API 管理服务的流量。现在,我们希望允许来自具有函数应用程序端点 Web 挂钩的事件网格(它具有 IoTHub 和 SignalR 订阅)的流量。

我们的一种选择是将所有事件网格 IP 范围列入白名单。我们尝试的第二个选项是允许使用网络安全组的事件网格服务标记。但是,azure 不允许 NSG 中的入站规则到 VNet。除了将所有 Event-Grid IP 范围列入白名单之外,还有其他干净的方法吗?

https://learn.microsoft.com/en-us/azure/app-service/web-sites-integrate-with-vnet#network-security-groups

azure azure-eventgrid azure-function-app

5
推荐指数
0
解决办法
498
查看次数

Azure Function - 应用程序服务计划 - 安装 git 包

我已经编写了一个 Azure Funciton API(使用 python 运行时)来自动化我们正在做的一些工作的 git 签入过程(使用 gitPython)。它在我当地的环境中运行良好。但是,当我尝试将其发布到 azure 函数时,API 失败了。

 ---> Microsoft.Azure.WebJobs.Script.Workers.Rpc.RpcException: Result: Failure
Exception: ImportError: Failed to initialize: Bad git executable.
The git executable must be specified in one of the following ways:
    - be included in your $PATH
    - be set via $GIT_PYTHON_GIT_EXECUTABLE
    - explicitly set via git.refresh()

All git commands will error until this is rectified.

This initial warning can be silenced or aggravated in the future by setting the
$GIT_PYTHON_REFRESH environment variable. Use one …
Run Code Online (Sandbox Code Playgroud)

gitpython azure-app-service-plans azure-functions azure-function-app

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

如何使用 azure devops 应用服务部署任务将函数应用设置部署到 azure 函数应用

我的 .net core azure 函数应用程序的 local.settings.json 文件中有大约 20 多个(并且还在不断增加)应用程序设置。作为部署的一部分,将这些添加到门户中的函数应用程序的唯一方法是使用键值格式的所有应用程序设置的长连接字符串,这非常混乱、容易出错且难以维护。

我正在寻找一种简洁的方法(如果可能)将应用程序设置添加到函数应用程序,作为函数应用程序部署过程的一部分。

PS 我正在使用 terraform 创建函数应用程序,对使用更混乱的 ARM 模板解决方案不感兴趣。

azure azure-devops azure-function-app

5
推荐指数
2
解决办法
9228
查看次数

System.Private.Uri:Azure 函数的值不能为空错误

我在 Visual Studio Code 中创建了一个 C# Azure 函数。在 Visual Studio Code 中运行该函数时,出现以下错误:

[8/21/2020 1:27:34 AM] A host error has occurred during startup operation '803d7235-e81a-4768-a68d-15fcd93d8518'.
[8/21/2020 1:27:34 AM] System.Private.Uri: Value cannot be null. (Parameter 'uriString').
[8/21/2020 1:27:34 AM] Stopping JobHost
Value cannot be null. (Parameter 'provider')
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

在此处输入图片说明

azure-functions azure-function-app

5
推荐指数
2
解决办法
4546
查看次数

Python 脚本中的 Azure Function ModuleNotFoundError

我尝试在 Azure Function 中运行以下脚本: init .py

import logging
import azure.functions as func
import pandas as pd
import numpy as np
from datetime import datetime

def main(myblob: func.InputStream):
    logging.info(f"Python blob trigger function processed blob \n"
                 f"Name: {myblob.name}\n"
                 f"Blob Size: {myblob.length} bytes")
Run Code Online (Sandbox Code Playgroud)

这是 function.json:

{
    "scriptFile": "__init__.py",
    "bindings": [
        {
            "name": "myblob",
            "type": "blobTrigger",
            "direction": "in",
            "path": "uwci-sftp-rb92351a6c-41fa-4b90-aa79-4e9974ca83f7/{name}",
            "connection": ""
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

当我仅导入 azure.functions 和日志记录时,它工作正常。我仅在尝试在 Azure Function 中运行代码时收到此错误。对于 pandas 或任何其他库,我收到以下错误:

Result: Failure
Exception: ModuleNotFoundError: No module named 'pandas'
Stack:   File "/azure-functions-host/workers/python/3.7/LINUX/X64/azure_functions_worker/dispatcher.py", …
Run Code Online (Sandbox Code Playgroud)

python-3.x azure-blob-storage azure-functions azure-function-app

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

Azure 存储模拟器无法与 azure 函数 docker run 配合使用

我正在尝试使用 Docker 运行我的计时器触发器 azure 函数示例。它在 Visual Studio 中的调试和发布模式下都运行良好。但是当使用docker时

docker run -d -p 8080:80 testdockercors

应用程序启动并显示以下消息,但我的计时器触发器天蓝色功能未运行。

Hosting environment: Production
Content root path: /app
Now listening on: http://[::]:80
Application started. Press Ctrl+C to shut down..
Run Code Online (Sandbox Code Playgroud)

但从 Visual Studio 运行时,计时器触发器工作正常。请找到我的 docker 文件。

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["Testdockercors/Testdockercors.csproj", "Testdockercors/"]
RUN dotnet restore "Testdockercors/Testdockercors.csproj"
COPY . .
WORKDIR "/src/Testdockercors"
RUN dotnet build "Testdockercors.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "Testdockercors.csproj" -c Release -o /app/publish

FROM base AS …
Run Code Online (Sandbox Code Playgroud)

azure azure-storage-emulator docker azure-functions azure-function-app

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