如何使用参数调用 azure 函数

How to call azure function with params

我正在尝试使用 Azure 函数来调用具有不同时间和不同参数的相同函数 (url)。 我没有找到任何很好的例子来说明如何传递一些数据。我想通过 link 来运行。 我的代码是:

var rp = require('request-promise');
var request = require('request');

module.exports = function (context //need to get the url) {  

和函数

{
  "bindings": [
    {
      "name": "myTimer",
      "type": "timerTrigger",
      "direction": "in",
      "schedule": "0 0 */1 * * *"
    }
  ],
  "disabled": false
}

如果您的设置相对静态(但您仍然不想对其进行硬编码),您可以使用应用程序设置来存储它们,然后阅读例如

let url = process.env['MyUrl'];

如果每个请求都应确定 URL,您可以使用 HTTP 触发器并从查询参数中读取 URL:

let url = req.query.myurl;

我不确定你到底想用参数化定时器触发函数实现什么。

另一种可能性是,如果您的参数存储在某个地方,例如Azure 文档数据库 (Cosmos)。

您仍然可以使用 TimerTrigger 调用该函数,并包含一个 DocumentDB 输入绑定,允许您查询执行该函数所需的特定参数值。

这是一个由 Timer 触发的 C# 示例,具有 DocumentDB 输入绑定。注意:我正在为 Azure 函数使用最新的 VS2017 预览工具。

[FunctionName("TimerTriggerCSharp")]
public static void Run(
   [TimerTrigger("0 */1 * * * *")]TimerInfo myTimer, TraceWriter log, 
   [DocumentDB("test-db-dev", "TestingCollection", SqlQuery = "select * from c where c.doc = \"Test\"")] IEnumerable<dynamic> incomingDocuments) 
 {..}

具有以下绑定 json:

{
  "bindings": [
    {
      "name": "myTimer",
      "type": "timerTrigger",
      "direction": "in",
      "schedule": "0 */5 * * * *"
    },
    {
      "type": "documentDB",
      "name": "incomingDocuments",
      "databaseName": "test-db-dev",
      "collectionName": "TestingCollection",
      "sqlQuery": "select * from c where c.docType = \"Test\"",
      "connection": "my-testing_DOCUMENTDB",
      "direction": "in"
    }
  ],
  "disabled": false
}