如何从Powershell Azure功能命名在blob存储中创建的文件?

时间:2017-08-04 00:35:28

标签: powershell azure azure-functions

这是我的 function.json path属性的默认值为{rand-guid}

我想要命名文件,我在json和 run.ps1 尝试设置{filename}$env:filename中尝试了$filename,但它不起作用

可以这样做吗?

{
  "bindings": [
    {
      "name": "myTimer",
      "type": "timerTrigger",
      "direction": "in",
      "schedule": "0 * 7 * * *"
    },
    {
      "type": "blob",
      "name": "outputBlob",
      "path": "outcontainer/{filename}",
      "connection": "testfunctionpsta0a5_STORAGE",
      "direction": "out"
    }
  ],
  "disabled": false
}

2 个答案:

答案 0 :(得分:0)

不幸的是输出绑定并不那么简单。我们需要将一个json对象传递给输出绑定以获取值。

查看https://docs.microsoft.com/en-us/azure/azure-functions/functions-triggers-bindings#advanced-binding-at-runtime-imperative-binding上的示例。

// function.json
{
    "name": "$return",
    "type": "blob",
    "direction": "out",
    "path": "output-container/{id}"
}

// C# example: use method return value for output binding
public static string Run(WorkItem input, TraceWriter log)
{
    string json = string.Format("{{ \"id\": \"{0}\" }}", input.Id);
    log.Info($"C# script processed queue message. Item={json}");
    return json;
}

在Powershell中应该直截了当地做类似的事情。

答案 1 :(得分:0)

您可以将文件名作为触发器有效负载的一部分传递吗?如果是,则此SO thread可能会有所帮助。