可以在TimerTrigger上创建异步运行的函数吗?换句话说,在安排下一次执行之前,一个不会导致触发器等待完成的函数
我们有一个场景,需要每5秒安排一次函数执行。大多数执行只需不到1秒的时间就可以完成,但偶尔,它们可能需要更长的时间(超过5秒)。在这种情况下,我们仍然希望我们的5秒时间表生效,即使这会导致并行执行
根据:
如果函数执行时间长于计时器间隔,则在当前调用完成之前不会触发另一次执行。计划在当前执行完成后执行下一次
我正在寻找的是一种避免延迟下一次执行的可能方法。我认为添加队列可能会解
根据页面,我正在尝试使用以下内容创建一个新的python预览应用程序:
az functionapp createpreviewapp -n MyApp -g MyResourceGroup -l "eastus" -s mystoragename --runtime python --is-linux
这将导致以下错误:
__init__() takes 1 positional argument but 3 were given
Traceback (most recent call la
我一直在修补Azure Data Brick和Azure Data factory,我想知道当您只想通过调用这些服务API(Rest)从一些服务获取数据,然后使用Rest API将这些数据推送到服务X时,这些是否有些过分
我已经看到数据工厂可以调用rest API(但似乎不支持Oauth2),但我还没有发现将数据推送到另一个rest API的任何方法(此时将所有内容整合到Azure DB中并没有什么意义)
所以,我应该使用数据工厂,还是编写python脚本并使用Azure函数调用它更适合解决这个
这需要一段时间才能找到
我有这个代码
CloudBlobClient cloudBlobClient = storageAccount.CreateCloudBlobClient();
var uploadedContainer = cloudBlobClient.GetContainerReference("uploadedfiles");
uploadedContainer.CreateIfNotExists(new BlobReque
为什么Azure功能的Application Insights刀片服务器变灰了
函数本身运行.NETCoreV3.1。
有一个带有事件中心侦听器的函数和两个带有时间触发器的持久函数
APPINSIGHTS\u INSTRUMENTATIONKEY变量设置了正确的键。如果您基于Linux操作系统,您将面临以下问题:
这是功能UI的一个问题。您可以转到触发器,并选择以下选项:
那就好了。谢谢!现在可以了。顺便说一句,这是一个多么混乱的用户界面。在Azure中,它大部分是非常直观的,但这次肯
我正试图通过terraform部署azure功能,每次我更新代码并创建新的zip文件并在本地运行terraform apply时,它都不会注册更改,也不会显示任何要更新的内容。我认为在下面的函数app的appsettings中使用hash()函数应该足以检测对zip文件夹的更改并强制重新部署。我可以进行哪些更改以允许每次zip文件更改时强制更新。另外,是否有一种方法可以允许部队部署资源,而不考虑地形状态的任何变化
resource "azurerm_storage_blob"
我在VisualStudio代码中创建了一个C#Azure函数。在Visual Studio代码中运行函数时,出现以下错误:
[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. (Paramet
我有两个azure函数
从表存储中获取新记录(readFunction)
更新第二次更新已处理的表存储(updateFunction)
这两个函数都调用以下函数:
public static async Task UpdateMessage(CloudTable table, string partitionKey, string rowKey, JobUpdateStatus updateToStatus)
{
TableOperation
我在.net core 3.x上使用Azure函数v3,其中ILOGER是通过IServiceProvider-like ILOGER=\u log=serviceProvider.GetService()对相应的类T进行依赖注入而创建的
除了\u log.LogMetric()之外,每隔一段日志消息(跟踪、信息、错误、异常等)就会被推送到Application Insight。我已经检查了事务搜索的跟踪部分以及日志的跟踪和自定义度量
甚至host.json文件日志记录配置似乎都是正确的。那么我
我需要将dotnet5与Azure函数一起使用,因此按照指南创建新的解决方案:
这非常有效,所以下一个工作就是为控制台和sql server添加serilog和接收器
我添加了nuget软件包:
Serilog.AspNetCore v4.1.0
Serilog.Sinks.MSSqlServer v5.6.0
以下是程序。主要:
{
string EventName = "Main";
Log.Logger = new LoggerConfig
Out绑定有以下示例:
ICollector<T> (to output multiple blobs)
“集成”UI中的默认值为:
Path: outcontainer/{rand-guid}
但这还不足以让我取得进展。如果我用C#编码,function.json和run.csx的语法是什么,以将多个blob输出到一个容器 有几种不同的方法可以实现这一点。首先,如果需要输出的blob数量是固定的,则可以使用多个输出绑定
using System;
public class I
由于此错误,我的.net core azure计时器功能突然失败
此平台不支持System.Data.SqlClient
我不知道是什么改变了,为什么会开始失败
当我在本地运行代码时,它运行良好,没有错误。Ataching我在Azure门户上看到的内容
有什么建议吗
我不知道是什么改变了,为什么会开始失败
根据错误消息,您似乎已将System.Data.SqlClient版本从4.5.1升级到4.6
如果正如我所说的,当涉及到与运行时程序集相关的引用时,似乎存在一些问题,请参考以下内容
如果您不
我可以使用Xunit测试Azure函数,如下所示:
var req=GenerateReq();
var res=等待MyFunc.Run(请求,记录器);
如果在我的函数中生成一个CosmosDb DocumentClient,如下所示:
static DocumentClient docClient=GetCustomClient();
私有静态文档客户端GetCustomClient()
{
字符串cosmosUrl=string.Empty;
string cosmosKey=stri
我有一个运行在docker容器中的Azure函数。此函数需要使用Azure服务总线。因此,我的函数使用属性“ServiceBusAccount”来获取服务总线连接字符串
[FunctionName("MyFunc")]
[ServiceBusAccount("ServiceBusConnectionString")]
public async Task MyFunc(...)
...
在configuration buil
我有一个Azure v2(和v3预览)函数(HTTP触发器),其签名如下:
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post",
Route = null)] HttpRequest req,
ILogger log)
公共静态异步任务运行(
[HttpTrigger(Authori
标签: Azure Functions
azure-iot-hubazure-eventhubazure-stream-analyticsazure-triggers
我对Azure一无所知。我尝试建立以下体系结构,在power bi中显示来自Vicotee设备的传感器数据。
Vicotee设备->网关->Azure物联网中心->Azure功能->Azure事件中心=>Azure流分析=>PowerBI。
我使用visualstudio代码,用python编写了一个azure函数来解码传感器数据。没有iot集线器触发器可供选择,我使用了事件集线器触发器(应该相同吗?)。当我在计算机上本地运行该功能时,一切正常。传感器数据正确解码,数据被发送到事件中心、流分析作
我刚刚为我的Azure功能部署了一个更新:有不同的带有计时器或servicebus触发器的功能。在过去的几天里,我注意到了一个与Marklio相关的错误/警告,我在项目中没有使用这个包。以下是软件包:
<PackageReference Include="AzureExtensions.Swashbuckle" Version="3.2.2" />
<PackageReference Include="Microsoft.Azu
我已经在应用程序设置下创建了一个应用程序设置名称,如下图(myStorageName)中红色圆圈所示。
它确实有价值。但是,每当我在HttpTrigger函数中调用以下行时,它都返回null
accountName = ConfigurationManager.AppSettings["myStorageName"];
log.LogInformation(accountName);
我试图在管理下包含myStorageName,但我不认为配置管理器。AppSettings用于在管理下检索功
自定义分配支持设置初始设备双胞胎和物联网集线器。该设备未设置
我已将Azure中的设备配置服务配置为使用自定义Azure功能。在Azure函数中,通过自定义API,我们运行逻辑来确定设备的最佳IoT集线器位置。除了物联网集线器分配外,该代码还提供初始设备双胞胎数据,但不起作用
下面是本博客中描述的代码示例:
我已经查看了几个相关的自定义分配问题,但没有发现任何人使用上述自定义azure函数方法
下面是上面博客文章中的相关代码片段
var response = new Response(save
我有一个Azure函数V2
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
[CosmosDB(
databaseName:"ct",
collectionName:"ops",
Con
Azure存储帐户可以在上载blob或向其队列发送消息以连接和执行某些任务时引发事件。当添加、更新或删除行时,我在Azure存储帐户表中找不到任何类似的事件。甚至没有Azure函数支持这样的场景。如何实现这一目标而不必不断轮询表以实现其行的更改。不幸的是,如果您想通过更新表存储直接触发azure函数,这似乎是不可能的,甚至事件网格也不支持此功能。下图显示了它的处理范围
正确的方法应该是将事件传递到队列,并使用队列触发函数。我们可以将其作为功能请求实现吗?@Arash它可以在请求时绑定为输入。请
创建azure函数应用程序后,是否有任何方法可以将azure函数应用程序中的运行时堆栈从.net更改为python。根据一些测试,如果操作系统是linux,我发现它可以从.net更改为python。如果.net函数在linux系统上运行,我们可以通过单击“配置”-->edie“函数\u工作者\u运行时”并保存,将运行时堆栈更改为python。之后,当我们将python从VS代码部署到azure时,该函数可以成功运行。
但是如果.net函数应用程序在Windows系统中,尽管我们可以通过上述步骤
有没有办法锁定或使.csx函数只读
我已经在Azure功能平台上开发了很多年,并且一直以经典的“项目”风格组装开发它们,通过CI/CD等将项目部署到某个阶段
我正在考虑将“实用程序”类型的函数放在新的消费计划中,并在门户中的.csx文件中编写代码。有点整洁,但是又快又松
我似乎找不到任何选项(或搜索结果!)来说明如何“锁定”这些函数,至少可以防止其中一个函数的代码更改,以防手指过大或意外编辑。遵循以下步骤,然后您的crx函数应用程序将成为只读
首先,转到功能应用程序设置
其次,在“功能应用程序
我正在尝试使用托管标识通过Azure门户访问Azure功能。若我使用系统分配的标识,下面的代码行运行良好
[FunctionName("FunctionDemo")]
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequestMessage req,
ILogger log)
如何将Azure Function Core Tools的Azure Function publish功能指向自定义注册表(如企业实例)
例如:
运行func azure functionapp publish时,如何从我选择的注册表而不是pypi获取requirements.txt进行安装
非常类似于更改npm的默认注册表
该命令运行pip install,因此任何pip查找的命令都将工作
如果需要自定义注册表中的所有模块,请设置PIP\u INDEX\u URL
如果您只需要一些模块,那
我们的基础架构包括一个Azure HTTP触发器,它通过Azure API管理服务接收客户端REST调用
我们使用applicationinsights全程记录。但是,client\u IP字段始终显示为0.0.0。以下示例是应用程序洞察的请求表中的屏幕截图,该表已在clould_RoleName上过滤,以显示API管理捕获的请求
我们错过了什么
谢谢,
默认情况下,Sau将临时收集IP地址,但不会存储在Application Insights中。有关更多详细信息,请参阅
为了存储真实的IP地
摘要:我可以使用KeyVault向Blob存储绑定提供连接字符串功能吗
我最近将我所有的连接字符串和机密从Azure Function应用程序设置中移出并移到了KeyVault中。这包括我引用的各种存储帐户的连接字符串。我现在正在处理Azure Blob存储绑定,但似乎()引用连接字符串的所有方法都会解析为应用程序级别的设置
我不想在两个不同的地方有这个秘密。是否有方法指定存储帐户连接字符串ala KeyVault?如果您询问是否可以执行以下操作:
[FunctionName("ResizeIm
我认为重播的行为确保了Azure持久功能的可靠执行,如以下链接所述
但是,我不知道为什么这意味着可靠,以及重播和不重播的区别
回复的行为非常复杂。我想不使用回复比使用重播简单
为什么持久功能使用replay?为什么replay的行为确保Azure持久功能中的可靠执行?特别需要可靠执行,因为持久功能通常最适合于涉及多个功能(orchestrator和activity)的复杂长时间运行操作
在消费计划上运行时,函数应用程序可能会在虚拟机之间移动,具体取决于函数运行的时间。在这种情况下,您的函数应该能
我有下面的函数将一个项目添加到队列中。是否有返回其他状态代码然后500和200的方法?我有一个例子,我检查调用方是否有权访问端点&如果没有,我想返回403
[FunctionName("AddToQueue")]
[return: Queue("queue")]
public async Task<PushRequestMessage> AddToQueue(
[HttpTrigger(AuthorizationLevel.Function, "pos
如果有人能告诉我如何在没有开发者在Azure函数上扮演贡献者角色的情况下,将秘密写入产品代码,这将对我有很大帮助
首字母缩写词:
“SAMI”=系统分配的托管标识
“Ent Sec”=企业安全团队
流量(改编自):
Ent Sec团队将机密上传至开发人员密钥库,并向开发人员提供开发人员机密参考
Ent Sec团队将SAMI添加到KeyVault访问策略中(开发人员不在访问策略中)
开发者向Azure功能应用程序设置添加开发秘密引用(通过Azure门户中的local.settings.jso
我想知道EventHubTrigger输入绑定是否有一个C#方法签名,它包含某种上下文对象,允许完成、放弃或拒绝EventHub事件。
据我所知,这种对象存在于这个绑定的NodeJS版本中
感谢事件中心实际上是一个分布式事件日志。它支持的低级操作是“追加”和“从偏移量X开始读取事件”
无法在事件中心完成或放弃事件。您是否将其与服务总线队列/订阅相混淆?为什么可以使用NodeJ?“context.done()”或者它有其他语义吗?@Helikaoncontext.done()仅仅表示函数执行的结束
我正在尝试创建一个Azure函数,用于写入Azure Data Lake存储。
我使用托管服务标识来管理身份验证内容
我已在功能应用程序上启用MSI。我还启用了功能应用程序来访问所需的数据湖存储。
我使用下面的代码获取令牌并写入ADL。
我错过什么了吗
var azureServiceTokenProvider = new AzureServiceTokenProvider();
string accessToken = await azureServiceTokenProvider.GetAc
我正在处理一个Azure函数,并试图在该函数中执行CSOM代码
我能够轻松下载并安装Microsoft.SharePoint.Client软件包,或者,同样,我能够成功下载并安装Microsoft.SharePointOnline.CSOM软件包
但是,无论我做什么,函数都拒绝查找Microsoft.SharePoint.Client.Runtime DLL(即使该DLL存在于packages文件夹的内容中)
另外,当我尝试直接从Nuget下载Microsoft.SharePoint.Clien
将设计一个系统,其中多个传感器将数据传输至事件中心。每个传感器每秒传输的数据数(最大15-20(约5 KB))
一个用例是,所有这些原始数据都必须以最小/无延迟的方式传输到cosmosDB,我可以用下面的架构实现这一点
原始数据->事件中心->Azure流分析->宇宙数据库
注:上述用例用于确定传感器的连接状态。所以它必须尽可能快
另一个用例是传感器的指示属性,该属性取决于传感器的最后一个值(最大前200个值)。
现在问题就在这里。我尝试使用以下架构
原始数据->事件中心->Azure流
我有一个OrchestrationTrigger函数,它通过http请求调用另一个服务
[FunctionName("MyFunc")]
public async Task RunOrchestrator(
[OrchestrationTrigger] IDurableOrchestrationContext context,
ILogger logger)
{
var req = new DurableHttpReque
我有一个Blazor应用程序正在调用一个受B2C保护的Azure函数。如果直接从浏览器调用该函数,我将被重定向到B2C登录,一旦验证,该函数将按预期返回Json对象。现在,如果我在Blazor应用程序中通过函数“允许匿名访问”进行调用,它就会工作。现在,当我将函数access设置为“使用Active Directory登录”时,我得到以下信息:
我已将本地主机添加到函数Cors中:
不确定在Blazor中初始化连接时是否应该添加任何内容?
附加说明:该应用程序通过B2C认证
谢谢,
Mike
我正在使用Azure函数,需要使用带有log4j2的slf4j绑定执行日志记录。我希望我的日志存储在application insights(Azure monitor)中。为此,我有一个用于配置的log4j2.xml文件,我在其中添加了ApplicationInsights Appender,并为application insights资源设置插装键
当前的行为是,当我使用ExecutionContext.getLogger.info(“…”)时,我看到日志存储在app insights中,但
我正在向Azure服务总线主题发布消息。其中一个自定义属性将命名为recipientId,并包含一个字符串
我在处理过程中遇到了一个争用点,因为我需要为特定的接收者更新数据库行中的序列号。更新必须与其他数据库更新一起是原子更新,因为不允许在序列中丢失数字
但是,我不希望多个函数实例试图同时处理同一recipientId的数据,并且在同一行上遇到DB死锁
有没有一种方法可以为主题订阅者分配某种关联性,这样我就可以保证相同recipientId的消息将始终发送到相同的函数实例
在psuedo代码中,
我有一个基于Azure blob存储触发器运行的Azure函数。我想知道是否有可能以某种方式标记一个以前触发了Azure函数的文件,以便该函数重新处理。例如,软删除然后恢复文件是否会重新触发我的功能?有没有更规范的方法可以做到这一点?基于:
当新的或更新的Blob出现时,Blob存储触发器将启动一个函数
被检测到
如果要重新触发blob触发器并重新处理blob,我认为最优雅的方法是向blob添加元数据,此操作将被视为更新操作并触发blob触发器
我在本地进行了测试,当我添加/更新blob元数据时
具有以下启动配置的Web API:
services.AddMassTransit(
x =>
{
x.AddBus(provider => this.CreateBus(provider));
string queueName = settings.InputQueueName;
var serviceBusUri = new Uri($"{settings.ServiceBusUri}/{queueName}");
Comm
我正在从AWS S3迁移到Azure Blob。我可以通过photos.example.com/image1.jpg这样的URL访问S3上的照片。我可以将photos.example.com指向azure blob,但我需要附加容器名称才能访问照片。
在AWS的摘要中,我可以通过URL访问这些照片,如:
photos.example.com/image1.jpg
但是在Azure上,由于所有内容都在一个容器下,为了访问同一张照片,我需要将容器添加到URL中
photos.example.com/
当我在功能应用程序刀片上时,不断出现以下错误。在网上找不到允许我解决问题的任何内容。你知道发生了什么,为什么吗
错误:
我们无法访问您的功能应用程序(内部服务器错误)。
请稍后再试
编辑#1
发现host.json文件有一个空数组->{}。不知道这是否重要。在应用程序设置中,我使用下拉框更改Python版本
一旦更改,错误就开始发生
我删除了功能应用程序,并清除了文件存储帐户中的所有文件,然后创建了一个新的功能应用程序。我尝试使用不同版本的python来查看它是否与版本相关,但是相同的错误不断发
当我编辑应用程序内服务编辑器(in-App Service Editor)中的csx文件并将其加载到我的run.csx中时,Azure函数不会收到更改通知。调用该函数时,它会报告已编辑文件的编译错误。在编译过程中使用我的编辑之前,我必须重新启动应用程序服务。肯定有比重启更好的方法!如果是,是什么
注意:重新启动会强制重新编译已编辑的文件
如果这是关于这个问题的重复报道,请原谅。我以前以为我已经将其发布到StackOverflow,但在我的历史记录中没有看到它。对于函数目录之外的共享源文件(默认情
如果我有Azure功能:
查看我在azure门户的API定义表中创建的Swagger文档的url是什么?azure门户的API定义页面中应该有可用的链接。URL将类似于:
该链接位于Api定义页面的左面板上。您可能必须单击“展开/折叠”按钮才能进行切换
编辑:误解了这个问题——目前无法公开查看“文档”页面。我已经提交了跟踪文件。如果你指的是“API定义URL”,我知道。这只是显示了原始JSON。我想知道是否有一个公共URL可以显示我在API定义页面右侧看到的UI。对不起,我误解了。更新我的答案
我已经编写了许多Azure函数(Http、ServiceBus、EventHub和CosmosDB触发器)。对于应用程序日志记录,我实现了自己的Logger类,它创建TelemetryClient对象来接收application Insight中的日志
我可以在Application Insight中查看我的所有跟踪、异常和异常日志,但如果没有OperationName和OperationId
现在我正在手动调用TelemetryClientStartOperation和StopOperatio
我需要通过azure功能应用程序将blob中出现的文件放入azure虚拟机。我可以创建带有blob触发器的azure函数,但如何从c#code连接到azure VM并将文件放在虚拟机的文件夹中。在我看来,直接连接到azure VM的可能性不多。Azure只能管理其平台中的资源。也许您可以通过Azure SDK在VM内执行命令,但我最好使用另一种方法将文件放置在虚拟机上的文件夹中
这是我认为更好的方法,它有两种不同的形式。你可以这样做,当文件改变时,它也会显示在虚拟机中。另一个是,您可以使用Azu
正在尝试使用以下方式连接到cosmos数据库:
CosmosClient client =
new CosmosClientBuilder()
.endpoint("endpoint")
.key("key")
.consistencyLevel(ConsistencyLevel.EVENTUAL)
.buildClient();
连接时,获取错误:java.la
我正在使用vscode将python函数部署到azure,
但是,部署失败,无法在requirements.txt中安装libs。看来在建造FBI之前应该先安装numpy
以下是我的requirements.txt:
pandas==1.1.3
numpy==1.19.2
pystan==2.19.1.1
fbprophet==0.7.1
任何建议都将不胜感激。请使用最新版本的numpy。只需删除“requirements.txt”中的numpy版本号即可。当您将该功
基于这两个站点,我为.NET 5.0创建了Azure功能:
所有内容都会编译,但当我发布时,它会检测到以下内容:
Getting site publishing info...
Creating archive for current directory...
Uploading 16.64 MB
Upload completed successfully.
Deployment completed successfully.
Syncing triggers...
Functions in
变量IsReplaceAvailable的值始终与isComplete的值相同。看起来函数monitorContext.CallActivityAsync(“getispReplaceAvable”,input.Id)甚至没有执行
while (monitorContext.CurrentUtcDateTime < endTime)
{
// Check the weather
1 2 3 4 5 6 ...
下一页 最后一页 共 15 页