我有一个 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
有什么方法可以查看管理门户中函数应用程序中 man 实例的运行情况吗?我尝试查看实时指标,但它只显示传入的请求,而不显示正在运行的实例的数量。
我一直在阅读有关此的各种文档,但无法清楚地确认我的理解,我们正在评估 Azure Functions 高级计划并希望更清楚地了解成本。
我的理解如下:
在高级计划中,我们可以配置最小实例数和突发大小。这是 Premium Plan 实例预留池的最小和最大大小(假设它是 SKU EP2)。假设我将最小实例数设置为 3,突发大小设置为 10。
配置的最小值(在本例中为 3)意味着有 3 个 EP2 一直在运行,即使它们没有做任何事情,我也要为此付费。
在我的函数应用程序中,我指定我需要 2 个预热的函数实例。我还为这些预热和等待请求付费。
请求开始进来,现在我还要为预热实例中的执行时间(按内核和内存使用)付费。
我上面的理解正确吗?此处相关的总成本是否如下:
(3 个 EP2 固定成本 + 最多 10 个 EP2 最大突发)+(2 个预热实例 + 额外的消费实例)+(请求执行)
我们如何为预热的实例收费?
我们在标准应用服务计划中托管了功能应用。为了保护功能应用程序的安全,我们将其集成到 VNet,并仅允许来自 API 管理服务的流量。现在,我们希望允许来自具有函数应用程序端点 Web 挂钩的事件网格(它具有 IoTHub 和 SignalR 订阅)的流量。
我们的一种选择是将所有事件网格 IP 范围列入白名单。我们尝试的第二个选项是允许使用网络安全组的事件网格服务标记。但是,azure 不允许 NSG 中的入站规则到 VNet。除了将所有 Event-Grid IP 范围列入白名单之外,还有其他干净的方法吗?
我已经编写了一个 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
我的 .net core azure 函数应用程序的 local.settings.json 文件中有大约 20 多个(并且还在不断增加)应用程序设置。作为部署的一部分,将这些添加到门户中的函数应用程序的唯一方法是使用键值格式的所有应用程序设置的长连接字符串,这非常混乱、容易出错且难以维护。
我正在寻找一种简洁的方法(如果可能)将应用程序设置添加到函数应用程序,作为函数应用程序部署过程的一部分。
PS 我正在使用 terraform 创建函数应用程序,对使用更混乱的 ARM 模板解决方案不感兴趣。
我在 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 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
我正在尝试使用 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