我正在评估Azure功能以创建缩略图.较大图像的源URL放置在存储队列中,带有队列触发器的C#函数用于处理URL(从源下载,调整大小并上载到另一个位置).
每个函数调用需要500毫秒进行处理,这很好.然而,经过一系列测试后,我发现整体并行处理吞吐量并不是那么好.对于队列中1500-2000个项目的工作负载,平台每秒仅执行大约10个函数实例.
有没有办法扩展并使平台同时执行更多的函数实例?
我正在整理一些我想从基于PowerShell的Azure Functions调用的.net Core CLI应用程序.
不幸的是,我对于以可调用它们的方式部署可执行文件的正确/最佳方法有点模糊.
注意:我只使用git进行源代码控制,而不是部署.所以没有基于git的选择.
希望有人可以告诉我此ARM模板部署在做什么。
使用问题底部的模板,我可以部署带有应用程序服务计划和存储帐户的功能应用程序,但是出现以下错误。
STATUS BadRequest
PROVISIONING STATE Failed
TIMESTAMP 4/19/2017, 1:33:00 PM
DURATION 1 second
TYPE Microsoft.Web/sites/config
RESOURCE ID /subscriptions/blah-blah-blah/resourceGroups/blah/providers/Microsoft.Web/sites/functionname/config/appsettings
STATUSMESSAGE {
"Code": "BadRequest",
"Message": "There was a conflict. The remote server returned an error: (400) Bad Request.",
"Target": null,
"Details": [
{
"Message": "There was a conflict. The remote server returned an error: (400) Bad Request."
},
{
"Code": "BadRequest"
},
{
"ErrorEntity": {
"ExtendedCode": "01020",
"MessageTemplate": "There was a conflict. {0}",
"Parameters": [
"The remote server returned an error: …Run Code Online (Sandbox Code Playgroud) 我有一个Azure函数,用于侦听Azure Servicebus队列中的消息.当它收到消息时,它将它们标记为已完成,并且它们不再在队列中.有没有办法只在长过程完成时将它们标记为?如果失败,还是将它们标记为完整?
我的函数调用Api,我希望消息不被标记为完成,直到Api用成功代码回复.
我有带有Http触发器的nodejs azure函数。我正在使用POST方法并将正文发送到azure函数。由于主体很大,因此使用gzip对其进行压缩。
我在azure函数中收到请求,内容编码标头为'gzip'。我试图使用nodejs
zlib.gunzip(req.body,...)
Run Code Online (Sandbox Code Playgroud)
它引发了一个错误
错误:标头检查不正确
我遇到一个问题,即我的EventHubTriggerAttribute不再使用我的local.settings.json文件来填充属性中的事件中心名称。这是我得到的错误:
在上面的错误中,它正在寻找ddhubnamespace.servicebus.windows.net/eventhubname哪个应该是ddhubnamespace.servicebus.windows.net/ddhub
这是TriggerAttribute在此处的事件中心名称:
public static void Run([EventHubTrigger("eventHubName", Connection = "eventHubConnection")]string data, TraceWriter log)
Run Code Online (Sandbox Code Playgroud)
这使用的是local.settings.json文件,我必须从此处获取eventHubName:
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_EXTENSION_VERSION": "~1",
"eventHubConnection": "Endpoint=sb://ddhubnamespace.servicebus.windows.net/;...",
"eventHubName": "ddhub",
Run Code Online (Sandbox Code Playgroud)
如果在属性中,我将local.settings.json(“ ddhub”)中的实际事件中心名称切换为“ eventHubName”。该功能将成功运行。将属性中的Connection属性设置为json名称也将从json中获取值。关于为什么我的eventhubname不再从json中提取,而是将其作为文字字符串的任何想法吗?
我在VS 2017中创建了一个azure函数应用程序。我包含了一个proxies.json文件并发布了该应用程序。但是,我在Azure门户中看不到代理。
它只说: 代理(预览)(只读)
我已经进入功能设置,并且没有启用代理的设置。我认为这是旧方法,(不是用于在Visual Studio中开发功能)
proxies.json看起来像这样:
{
"$schema": "http://json.schemastore.org/proxies",
"proxies": {
"user": {
"matchCondition": {
"methods": [ "GET" ],
"route": "/user/{user}"
},
"backendUri": "https://<mycontainer>.blob.core.windows.net/html/test.html/{user}"
}
}
}
Run Code Online (Sandbox Code Playgroud) 我想用azure函数编写一个提醒类型系统.我的计划是创建一个带有http触发器的功能,该功能可以创建提醒,然后是第二个可以在提醒到期时发送电子邮件的功能.
我看过计时器,我不相信他们会做我想要做的事,同样也有排队.
是否有一个内置的计时器,它将在一个可配置的时间(X小时或Y:00pm)激活一个功能,或者我应该回到我的计划创建一个计时器功能,它将轮询数据库?
我有azure函数(C#v1函数 - 非脚本化),它们使用DocumentDBAttribute绑定来读取和写入文档.在以下情况下,这些绑定如何响应限制?
这适用于函数v1.
第一种情况:
//input binding
[DocumentDB(ResourceNames.APCosmosDBName,
ResourceNames.EpisodeOfCareCollectionName,
ConnectionStringSetting = "APCosmosDB",
CreateIfNotExists = true)] ICollector<EOC> eoc,
//...
eoc.Add(new EOC()); //what happens here if throttling is occuring?
Run Code Online (Sandbox Code Playgroud)
第二种情况:
[DocumentDB(ResourceNames.ORHCasesDBName, ResourceNames.ORHCasesCollectionName, ConnectionStringSetting = "ORHCosmosDBCases", CreateIfNotExists = true, Id = "{id}")] string closedCaseStr,
Run Code Online (Sandbox Code Playgroud) 我在Azure中创建了一个新的Function App。我为应用程序服务计划选择了一个消费计划。
创建应用程序后,我现在在资源组中有一个名为“ WestEuropePlan”的新应用程序服务计划。
下件事 IT部门表示“ WestEuropePlan”不是App Service计划的正确命名约定。
我有什么选择。创建功能应用程序时,使用基于消耗的计划时,Im不允许选择或命名现有计划。
我无法重命名自动生成的计划。
在创建功能应用程序之前,我无法手动创建基于消耗的计划。
我该怎么办?我唯一的选择是不使用基于消费的计划,而是创建一个我可以命名的普通应用程序服务计划吗?
我可以从azure CLI或使用ARM模板做什么?