Tag: azure functions

如何使用Azure函数绑定发送预定的服务总线队列消息?

我有一个写在node.js中的Azure函数,它使用输出绑定成功地将消息发送到Azure服务总线队列。 我怎样才能发送一个预定的消息到同一个队列仍然使用绑定语法? 如果可能的话,我宁愿这样做,而不安装node.js sdk。 绑定文档没有提到预定的消息。 然而,有趣的是, 这个评论已经在函数github问题库上做了几次: 至less使用C#&Node.js(以及为什么不在F#中)Service Bus队列输出已经支持这个,例如,如果创build并放置多个消息,例如给IAsyncCollector或创buildBrokeredMessage。 在您的传出信息中,您可以控制预定的排队时间: outgoingMessage.ScheduledEnqueueTimeUtc = DateTimeOffset.UtcNow.AddSeconds(10) 无论如何,这是我目前的代码,工作正常,立即传递消息: function.json { "disabled": false, "bindings": [ { "authLevel": "function", "type": "httpTrigger", "direction": "in", "name": "req" }, { "type": "http", "direction": "out", "name": "res" }, { "name" : "queueOutput", "queueName" : "scheduler", "connection" : "AZURE_SERVICEBUS_CONNECTION_STRING", "type" : "serviceBus", "direction" : "out" } […]

在Azurefunction中使用Azure Blob存储输出绑定保存多个Blob

我使用以下代码通过Azurefunction上的输出绑定将多个邮件添加到Azure存储队列: context.bindings.myQueue = []; for (var msg of messages) { context.bindings.myQueue.push(msg); } 这似乎不可能与Blob输出绑定,我可以使用context.bindings.myBlob = {…}存储blob,但我没有看到一次添加多个blob的方法。 我试图保存到我的Blob存储的数据是相当大的,所以我想分割成块并分别保存。 这是可能的通过输出绑定,或者我将不得不使用azure色的存储模块手动做到这一点?

身份validation问题 – 从Azure函数调用的Azure REST API

我正在使用Azure函数来调用Azure SQL数据仓库的其余API,以便在白天的特定时间暂停和恢复服务器(2个函数)。 在我之前创build的azure函数中,我从来不必调用REST API,因为我只使用可用的输出选项。 而SQL DW只有REST API选项。 我使用nodejs创build了一个函数应用程序,并从那里调用这些REST API。 我通过了azure色的REST API文档,并尝试了在那里解释的过程。 首先,我在azure活动目录中添加函数app作为租户,并获得tenantID(它是端点URL的一部分)和应用程序ID /客户端ID,然后尝试调用loginURL,如https:// docs.microsoft.com/en-us/azure/active-directory/active-directory-protocols-oauth-code#request-an-authorization-code通过传递所需的parameters.Though它被提及为GET,我试着GET和POST,他们没有工作。 module.exports = function(context) { var unirest = require('unirest'); var subscriptionId='subscriptionId'; context.log("starting the function"); unirest.post('https://login.windows.net/tenantID/oauth2/authorize') .headers({'Accept': 'application/json', 'Content-Type': 'application/json'}) .send({ "client_id": "clientID ", "response_type": "code","grant_type":"authorization_code" }) .end(function (response) { context.log(response.body); }); }); 这段代码只是为了获得authentication码,然后再有一个方法来获得令牌,然后调用实际的SQL DW暂停/恢复方法。 当我从VS2015运行相同的(删除模块导出和更改上下文到控制台),我得到如下相同的错误 <html><head><title>Continue</title></head><body><form method="POST" name="hiddenform" action="https://login.microsoftonline.com/9b8d9cda-ddb4-43bb-8725-bc0e9af83b43/oauth2/authorize"><noscript><p>Script is disabled. Click […]

Microsoft Azure函数和节点 – 我是Mac用户。 如何在Azure Portal中上传/安装Node软件包?

我正在开发Microsoft Azure中的一个Node应用程序/ Azurefunction应用程序,并且正在搞清楚在哪里以及如何安装Node软件包。 我在Mac上,主要是在我的本地开发环境中开发应用程序的胆量。 我已经将我的本地JavaScript文件的内容粘贴到Azure用户界面中,除此之外,我不知道如何安装第三方Node模块。 是否有一个简单的方法来基本获得项目的命令行视图,并以某种方式通过NPM安装必要的模块?

如何在azure函数中触发失败http触发器,带有自定义错误响应

我无法find一个方法来调用一个nodejs azure函数的http调用,并且包含一个自定义的错误响应。 调用context.done()允许自定义响应(但不会在Application Insights中指示为失败) 调用context.done(true,XXX)确实会创build一个失败,但会向用户返回一个通用错误(不pipe我放在XXX中): {"id":"b6ca6fb0-686a-4a9c-8c66-356b6db51848","requestId":"7599d94b-d3f2-48fe-80cd-e067bb1c8557","statusCode":500,"errorCode":0,"message":"An error has occurred. For more information, please check the logs for error ID b6ca6fb0-686a-4a9c-8c66-356b6db51848"} 这只是我尝试在Azure funcs上运行快速web api而遇到的最新的头痛。 如果你不能跟踪错误,那么它就不应该被称为“应用程序见解”。 有任何想法吗?

带有Azure函数App和NodeJS的Microsoft Bot框架

我正在尝试使用Microsoft Bot Framework构build一个bot。 我打算使用一个带有Http Trigger的Azure函数作为端点。 NodeJS是我select的语言。 我看到使用restify和nodejs的botframework示例,但是没有使用azure函数。 任何人都可以指出我使用azure函数和nodejs开发botframework的例子,或者给我一个例子。

对node.js中的Azure Log Analytics授权标头进行编码/encryption

我一直试图让日志收集器API工作在一个node.js Azurefunction,但坚持403 /禁止错误,这表明我没有正确地形成授权头。 完整的代码在这里是一个github仓库: https://github.com/sportsmgmt-labs/Azure-Log-Analytics-Node-Function Data Collector API文档位于以下位置: https://docs.microsoft.com/en-us/azure/log-analytics/log-analytics-data-collector-api 授权标题应格式化如下: 授权:SharedKey {WorkspaceID}:{签名} 签名是这样编码/encryption的: Base64编码(HMAC-SHA256(UTF8(StringToSign))) 这是我创build授权标头的代码: var contentLength = Buffer.byteLength(req.body['log-entry'], 'utf8'); var authorization = 'POST\n' + contentLength + '\napplication/json\nx-ms-date:' + processingDate + '\n/api/logs'; // encode string using Base64(HMAC-SHA256(UTF8(StringToSign))) authorization = crypto.createHmac('sha256', sharedKey).update(authorization.toString('utf8')).digest('base64'); authorization = 'Authorization: SharedKey ' + workspaceId + ':' + authorization; 服务器的响应是: {“错误”:“InvalidAuthorization”,“Message”:“授权标头中指定了无效的scheme”} 有人能帮我理解我在做什么错吗? […]

Azure中的SQL Query DocumentDB由整数不起作用的函数

我在Azure函数中使用JavaScript语言。 当使用Cosmos DB作为input时,我无法通过整数作为variables来查询。 例如,我有以下几点: 使用Azure Cosmos DB作为我的input(公司)的function设置。 这是设置分区键为{partitionKey}和我的SQL查询作为SELECT * FROM c where c.random = {randomId} 。 在函数的代码中,我发送了以下作为我的testing数据: { "randomId": 1, "partitionKey": "prospect" } 有了这个,我没有得到任何结果。 我已经证实,我有一个random值为1的对象。 如果我要random添加一个值为"1" ,那么以下内容将起作用: { "randomId": "1", "partitionKey": "prospect" } 我已经用DocumentDB API和MongoDB API尝试了这个,因为这个绑定是内置到Azure函数中的,所以不要紧。 我用不同的数据集看到的趋势是,当您将整数参数绑定到查询或文档ID字段中时,查询不起作用。 任何想法如何解决这一问题? 编辑: 我已经证实这在C#中可用的文档。

如何准备我的Azure函数的代码

我在ES6上有一些项目。 以一个文件为例: export default function (a, b) { return a+b; } 我使用webpack和babel将其转换为一个带有ES2015代码的文件。 得到这样的东西: /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; /******/ // Create a new […]

我可以从Azurefunction的单个运行中排列多个项目吗?

我有一个Node.js timerTrigger Azure函数处理一个集合,并将处理结果排队以供进一步处理(通过Node.js queueTrigger函数)。 代码如下所示: module.exports = function (context, myTimer) { collection.forEach(function (item) { var items = []; // do some work and fill 'items' var toBeQueued = { items: items }; context.bindings.myQueue = toBeQueued; }); context.done(); }; 这段代码将只排队最后一个toBeQueued而不是每个我想排队。 有没有办法排队多个项目? 更新 为了清楚toBeQueued ,我正在讨论forEach每次迭代中排队一个toBeQueued ,而不是排队一个数组。 是的,Azure函数有一个问题,因为我不能排队数组,但我有一个解决方法, 即, { items: items } 。