问题标签 [azure-functions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3679 浏览

azure - 是否可以从 Azure 函数停止/启动 Azure ARM 虚拟机?

Runbook 可用于停止/启动 Azure 中的经典和 ARM 虚拟机。

这也可以通过 Azure 函数实现吗?

0 投票
14 回答
68120 浏览

c# - Azure Functions 数据库连接字符串

如何app.config在 Azure 函数中添加或访问文件以添加数据库连接字符串?

如果您不应该添加一个app.config并且有更好的方法来访问外部数据库以执行该功能,请告诉我最佳实践。谢谢!

0 投票
1 回答
891 浏览

azure - 如何使用门户为 azure 函数设置 authLevel

这篇文档参考了通过文件D:\home\data和本地 json 文件配置 azure 函数。

https://azure.microsoft.com/en-us/documentation/articles/functions-triggers-bindings/#apikeys

首先,file/source通过门户仪表板 UI 创建函数时的代码在哪里,如何更改这些设置?

我假设这是通过 git 方法创建服务的情况,但我看不到如何更改设置或通过仪表板查看密钥。

0 投票
1 回答
747 浏览

azure - 在选定的同一区域中显示 Azure 函数时,Azure 逻辑应用不显示函数

我用 BlobTriggerCSharp 创建了一个函数 App,这是函数的名称:BlobTriggerCSharp1

我想在逻辑应用程序中使用这个功能,所以我创建了逻辑应用程序和选择的重复,提供的频率和间隔。我单击操作,选择在同一区域显示 Azure 函数,它显示所有函数应用程序,如“Container:FunctionappName”,但是当我单击该函数应用程序内的现有函数时,它没有显示。有人可以帮忙吗?

0 投票
2 回答
4712 浏览

azure - Azure Functions 如何横向扩展?

Azure Functions的缩放文档对 Azure Functions如何决定何时添加更多应用程序实例的细节有所了解。

例如,我有一个由 Github webhook 触发的函数。10,000 人同时提交到 Github 存储库(没有合并冲突;)),Github 在很短的时间内调用了我的函数 10,000 次。

我可以期待会发生什么?具体来说,

  1. Azure Functions 会限制 webhook 调用吗?即,如果我的函数应用处于高负载状态,Azure Functions 会拒绝某些函数调用吗?
  2. Azure Functions 是否以某种方式对请求进行排队?如果是这样,在哪里/如何?
  3. 在这种情况下,Azure Functions 将创建多少个我的函数应用实例?每个请求一个(即 10,000 个),并且每个请求将并行运行?
  4. 如果我的应用程序功能被缩减到零个实例,因为它没有负载,我可以期望在第一个功能执行之前看到一些“预热时间”吗?大概多长时间?
0 投票
3 回答
18439 浏览

c# - Newtonsoft.Json 参考抱怨 Azure Functions

我正在运行一个名为SmsWebhook. 它调用外部程序集中的方法,该方法AzureFunctionsSample.Services.dll引用Newtonsoft.Json 8.0.3

我的详细信息Run.csx如下:

在上面的Run()方法中,我创建了一个实例,并在实例中调用了一个方法。但是,每当我调用该方法时,都会收到以下错误:

Newtonsoft.Json.dll我在目录下手动添加了相同版本的bin,但仍然得到相同的错误。为什么它在Newtonsoft.Json.dll档案里抱怨?

顺便说一句,如果我将外部程序集中的所有逻辑都移到 中Run.csx,它不会抱怨。

0 投票
1 回答
1497 浏览

azure-functions - 如何使用输出绑定编写 Http Trigger Azure 函数?

文档中的所有 Http Trigger 示例都实现为不支持 [out] 参数的异步函数。这是否意味着任何 Http/Webhook 触发器都无法使用输出绑定?

0 投票
1 回答
952 浏览

azure-functions - 如何从 Azure 函数访问 Azure 存储“(经典)”

从功能“集成”选项卡内访问 Azure 存储时,似乎只能链接到“新”存储帐户,而不是它列为“(经典)”的存储帐户。

我已经验证了我想要连接的“(经典)”存储帐户与我正在使用的 Azure 应用服务和功能位于同一区域,因此它应该出现但它没有出现。

如何将函数连接到“(经典)”Azure 存储帐户?

0 投票
2 回答
3124 浏览

c# - 带有实体框架的 Azure Functions 在程序集中找不到 DbConfiguration

我正在尝试让 Azure 函数与 EF6 一起使用,但遇到了一些奇怪的零星问题。它已经工作了两次,但其他一百次都没有工作。我得到的错误是:

Microsoft.Azure.WebJobs.Script:出现一个或多个错误。EntityFramework:设置了“MyDbConfiguration”实例,但未在与“MyDbContext”上下文相同的程序集中发现此类型。要么将 DbConfiguration 类型放在与 DbContext 类型相同的程序集中,使用 DbContext 类型上的 DbConfigurationTypeAttribute 来指定 DbConfiguration 类型,要么在配置文件中设置 DbConfiguration 类型。有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=260883

我正在以编程方式设置提供程序,因为我不知道没有app.config文件的任何其他方法。我之前遇到过DbConfigurationEF 的(可怕的)单例限制,但在这种情况下,我不明白为什么它不起作用。

Azure 函数运行时是否将我的.csx文件拆分为多个程序集?我尝试将事物更改为嵌套/私有类、内部和各种其他随机更改,但它不起作用(或至少不一致)。我的下一次尝试将是App.config正常上传文件并查看是否有效...

令人不安的是,有时它确实有效。然而,这似乎是随机的,而且很少见。可能在闲置一段时间后;我在写这篇文章时尝试了更多的更改,它最初工作,然后没有,然后在恢复我的更改后仍然没有工作。

我正在通过 Azure 门户的保存和测试按钮对其进行编辑和测试(并首先在 VS 中编写代码以进行语法检查和 IntelliSense ...)。这是代码(更新将随之而来):


更新1:更糟糕的是,如果我更改类的名称(例如DbConfigurationx),保存并运行它会给出与上面相同的错误,对于旧的类名,所以我不确定编辑器中的代码是代码正在运行……这有点令人担忧。这是服务应该如何工作的吗?


更新 2:添加App.config并没有什么不同。坚果。


更新 3:添加 aWeb.config似乎可以修复它——它在六次测试中都有效,但随后又停止工作。我还看到日志消息出现乱序,有时在编译完成之前它正在运行并且测试失败,所以我真的不确定 WTF 是否继续使用此服务,我不确定我是否可以推荐在任何地方使用它这不一致。我能够通过避免所有 EF 启动废话并创建我自己的数据库连接并将其传递到上下文中来使其工作。如果随着时间的推移这实际上证明是可靠的,我将添加一个答案,说明我是如何做到的。我想手动打开数据库连接是可以的,因为这是一个一次性的请求,不幸的是我认为这意味着它不使用共享连接池,所以它会减慢一切(到目前为止似乎确实如此)。

假设这会奏效,总的来说我很失望。AWS Lambda 是一个更大的 PITA,但它可预测的,后者更为重要。对我来说,完成工作所花费的时间大致相同(处理 EF 和 Azure 的一般怪异,AWS 的控制台配置)。


更新 4:好吧,我尝试将 POCO 移动到另一个组件中,一旦我开始工作(尝试成为有效词),我计划无论如何都要这样做。我改为使用 Git 进行部署,以便可以在 VS 中构建。首先,我通过 Git 部署获得了单文件版本,这需要几个小时。构建另一个 DLL 意味着我需要向JsonIgnore其中添加 Newtonsoft.Json (Json)、for 和 EF。我遇到了 Json 版本问题(DLL 地狱在 .NET 中仍然存在并且运行良好),但这些东西在我能找到的任何地方都没有记录,所以我在我的文件中添加了 Json 作为 EF 旁边的 nuget 包,project.json但后来它停止了能够更新:

2016-05-22T08:40:36 更新分支“主”。2016-05-22T08:40:37
无法删除“D:/home/site/wwwroot/execution/bin/common.dll”:访问被拒绝。

2016-05-22T08:40:39 发生错误,类型:错误,文本:无法删除“D:/home/site/wwwroot/execution/bin/common.dll”:访问被拒绝。, stackTrace: 在 LibGit2Sharp.Core.Proxy.git_checkout_tree(RepositorySafeHandle repo, ObjectId treeId, GitCheckoutOpts& opts) 在 LibGit2Sharp.Core.Ensure.HandleError(Int32 结果) 在 LibGit2Sharp.Repository.CheckoutTree(Tree tree, IList`1 paths, IConvertableToGitCheckoutOpts opts ) 在 LibGit2Sharp.Repository.Checkout(Branch branch, CheckoutOptions options, Signature signature) at LibGit2Sharp.Repository.Checkout(Tree tree, CheckoutOptions checkoutOptions, String headTarget, String refLogHeadSpec, Signature signature) at LibGit2Sharp.Repository.Checkout(String committishOrBranchSpec, CheckoutOptions选项,签名签名)在 Kudu。
在 Kudu.Core.Deployment.DeploymentManager.d__25.MoveNext() 2016-05-22T08:40:39 发生错误,类型:错误,文本:发生一个或多个错误。,stackTrace:在 System.Threading.Tasks.Task。 ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancelToken) at Kudu.Console.Program.PerformDeploy(String appRoot, String wapTargets, String deployer, String lockPath, IEnvironment env, IDeploymentSettingsManager settingsManager, TraceLevel级别,ITracer 跟踪器,ITraceFactory traceFactory,IOperationLock deploymentLock),innerText:部署失败,innerStackTrace:在 Kudu.Core.Deployment.DeploymentManager.d__25.MoveNext() 2016-05-22T08:41:25.266 作业主机停止

考虑到我破坏了它,我从中删除了 Json 包project.json并进行了部署,这似乎可以工作,但现在我在测试它时得到了 404。也许我打扰了整个主机......重新启动应用服务似乎可以修复它(一个正在运行的主题),但没有。现在,当我推送到 Git 时,它实际上并没有更新应用程序……“日志流”也没有说什么。叹。

原来它与上面的“访问被拒绝”错误相同,但这些内容不会显示在 Azure Functions 日志流中,但会显示在/api/logstream端点中。

我想我现在会[尝试]回到单个文件。


更新 5:嗯,我能够将 EF 位放入一个common.csx文件中,#load并且从我的run.csx. 从技术上讲,它可以工作,但是我遇到了另一个问题。虽然我所有的代码都可以正常工作,但没有修改,它是零星的。大多数时候(>75%)我似乎得到了一个“糟糕的部署”,其中我的一些函数无法编译并且不起作用。症状是系统说它找不到System.Data.Entity或说没有System.Data.SqlClient提供者。这可以在部署时立即发生,或者在某些请求成功运行后发生。我认为是在一段时间后,比如它空闲了 X 分钟,或者某种内部循环,但我不确定。就好像我在project.json“消失”中指定的 EntityFramework 包一样。

我可以通过触摸(例如在末尾添加一个空行)project.json文件(没有 JSON 或.csx更改),通过 Git 推送,系统注意到更改,尝试下载包(但不安装任何包)来“重新部署” ,一切都神奇地开始工作。没有代码或包更改!更奇怪的是,有时我的两个功能中的一个会像这样中断,但另一个不会,但它们会以同样的方式得到修复。我经常需要重新重新部署才能使我的两个功能都进入工作状态。


通过故障排除,本文可能有些偏离主题。根据系统,最初的问题是我的 EFDbContext没有使用属性以“正常”方式工作,因为在某处DbConfiguration已经有一个在起作用。DbConfiguration除非有具体问题可以减少垃圾邮件,否则我将停止更新。

我发现了十几个其他问题,从烦恼或意外行为到我必须解决的阻塞问题,但这不是解决这些问题的场所。我很乐意帮助复制或讨论它们,但不幸的是,我不知道那个场地是什么。

0 投票
1 回答
890 浏览

azure - Azure Functions 能否与 URI 路径 ID 一起使用?

我想知道是否可以将 Azure 函数应用程序配置为接受 RESTful 服务中通常使用的 URI 路径 ID,例如/api/foo/1函数所在的位置foo。我无法找到有关此的文档,并且我发现的绑定信息表明这是不可能的(我看不到映射它的方法)。它不适用于典型的 HTTP 触发器(支持/api/foo?id=1)。在该配置中,我猜是因为它不知道foo使用 URI 中的 ID 后缀调用函数。

万一这很重要,我正在使用 C# 来编写我的函数。