Azure 函数 blob 绑定

2023-12-13

如果不使用 C# 实现(不是 CSX)中的 [BlobAttribute],我无法将 blob 类型的输入参数绑定到 string/TextReader。

我收到的错误是:

Microsoft.Azure.WebJobs.Host: Error indexing method 'Functions.Harvester'. 
Microsoft.Azure.WebJobs.Host: Cannot bind parameter 'configReader' to type 
TextReader. Make sure the parameter Type is supported by the binding. If 
you're using binding extensions (e.g. ServiceBus, Timers, etc.) make sure 
you've called the registration method for the extension(s) in your startup 
code (e.g. config.UseServiceBus(), config.UseTimers(), etc.).

功能.配置:

"bindings": [
    {
      "type": "timerTrigger",
      "schedule": "0 */5 * * * *",
      "useMonitor": true,
      "runOnStartup": false,
      "direction": "in",
      "name": "myTimer"
    },
    {
      "type": "blob",
      "name": "configReader",
      "path": "secured/app.config.json",
      "connection": "XXX",
      "direction": "in"
    }
  ],

函数签名(不绑定configReader):

[FunctionName("Harvester")]
 public static async Task Run(
   [TimerTrigger("0 */5 * * * *")]TimerInfo myTimer,
   TraceWriter log,
   TextReader configReader)

这虽然可行(绑定configReader:

[FunctionName("Harvester")]
 public static async Task Run(
   [TimerTrigger("0 */5 * * * *")]TimerInfo myTimer,
   TraceWriter log,
   [Blob("secured/app.config.json", FileAccess.Read)]TextReader configReader)

关于如何在不指定 blob 路径的情况下使其工作的任何想法BlobAttribute。理想情况下,我会将 Blob 配置保留在代码之外,这样我的函数将变得更加可移植。


事实证明,问题在于最新的运行时支持新属性(configurationSource) in function.json

这告诉运行时使用config(这是function.json) 或函数配置的 C# 属性。

本质上允许您像这样定义您的函数

现在您可以将函数定义为

[FunctionName("Harvester")]
public static async Task Run(
    [TimerTrigger]TimerInfo myTimer,
    TraceWriter log,
    TextReader configReader)
{
}

连同一个function.json看起来像这样

{
  "generatedBy": "Microsoft.NET.Sdk.Functions-1.0.0.0",
  "configurationSource": "config",
  "bindings": [
    {
      "type": "timerTrigger",
      "schedule": "0 */5 * * * *",
      "useMonitor": true,
      "runOnStartup": false,
      "direction": "in",
      "name": "myTimer"
    },
    {
      "type": "blob",
      "name": "configReader",
      "path": "secured/app.config.json",
      "connection": "XXX",
      "direction": "in"
    }
  ],
  "disabled": false,
  "scriptFile": "...",
  "entryPoint": "..."
}

或者像这样

[FunctionName("Harvester")]
public static async Task Run(
    [TimerTrigger("0 */5 * * * *")]TimerInfo myTimer,
    TraceWriter log,
    [Blob("secured/app.config.json", FileAccess.Read)]TextReader configReader)
{
}

像这样更简单的配置

{
  "generatedBy": "Microsoft.NET.Sdk.Functions-1.0.0.0",
  "configurationSource": "attributes",
  "bindings": [
    {
      "type": "timerTrigger",
      "name": "myTimer"
    },
  ],
  "scriptFile": "...",
  "entryPoint": "..."
}

记下 的值configurationSource在这两个例子中。

Visual Studio 2017 的工具默认执行后者。如果您想更改 function.json 以包含所有配置并更改configurationSource您需要将该文件包含在您的项目中并将其标记为始终复制。这个 GIF 展示了如何做到这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Azure 函数 blob 绑定 的相关文章

  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • BASIC 中的 C 语言中的 PeekInt、PokeInt、Peek、Poke 等效项

    我想知道该命令的等效项是什么Peek and Poke 基本和其他变体 用 C 语言 类似PeekInt PokeInt 整数 涉及内存条的东西 我知道在 C 语言中有很多方法可以做到这一点 我正在尝试将基本程序移植到 C 语言 这只是使用
  • 通过引用传递 [C++]、[Qt]

    我写了这样的东西 class Storage public Storage QString key const int value const void add item QString int private QMap
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 现代编译器是否优化乘以 1 和 -1

    如果我写 template
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • 在 PyQt 的子窗口中从父窗口访问数据

    我有两个窗口 App py 和 ChildApp py 以及两个具有相同名称的 ui 文件 App py import sys from PyQt4 import QtCore QtGui uic from ChildApp import
  • 有关 iPhone 表情符号和网页的问题

    好的 表情符号基本上在电脑上显示了上面的内容 这是另一种编程语言吗 那么如何将这些小框放入 php 文件中呢 当我把它放入 php 文件时 它变成了问号之类的 另外 如何将它们存储在 MySQL 中而不使其变成问号和其他奇怪的东西 如何将这
  • ScrollView 干扰 LinearLayout 内部的 ListView

    我有 LinearLayout 其中包含按钮和 ListViews 在获得许多按钮后 我决定将 LinearLayout 放入 ScrollView 中 但放入 ScrollView 后 我的 ListView 只显示一个项目 以下是Scr
  • Java 中针对 Cognito 的 AWS Lambda 响应

    如何用 Java 编写 AWS Lambda 响应 以使 Cognito 满意 像这样的东西被传递给 lambda 函数 version number triggerSource string region AWSRegion userPo
  • AWS Python Lambda 与 Oracle - OID 生成失败

    我正在尝试使用 AWS Lambda Python 代码连接到 Oracle 数据库 我的代码如下 import sys os import cx Oracle import traceback def main handler event
  • Spark Spark-submit --jars 参数需要逗号列表,如何声明 jars 目录?

    In 从 1 6 0 及更早版本开始 在 Spark 文档中提交应用程序 目前尚不清楚如何指定 jars 参数 因为它显然不是用冒号分隔的类路径 也不是目录扩展 文档说 捆绑 jar 的路径 包括您的应用程序和所有依赖项 URL 必须在集群
  • Pyqt5名称错误

    我试图找出为什么这会给我一个名称错误 班级名称App QDialog 是有错误的那个 我完全按照 YouTube 视频进行操作 虽然他的代码可以工作 但我的代码却不能 请帮我解决这个问题 谢谢 import sys from PyQt5 Q
  • 使用 ACTION_VIEW 意图调用 YouTube 应用程序大多数时候都会失败

    我编写了一个小应用程序来解析来自 YouTube 的一些 RSS 提要并启动用户选择的视频 为了播放视频 我使用了一个意图 Intent i new Intent Intent ACTION VIEW Uri parse videoAddr
  • Numpy 中的 Zeros 函数的性能

    我刚刚注意到zeros的函数numpy有一个奇怪的行为 timeit np zeros 1000 1000 1 06 ms 29 8 s per loop mean std dev of 7 runs 1000 loops each tim
  • CSS 属性作为 SASS mixin 值[重复]

    这个问题在这里已经有答案了 我尝试构建一些通用的边距 填充混合 这是我的代码 class shift sft o 10px mixin shift stp val class sml val sft o class mid val sft
  • jQuery:检查图像是否存在

    我正在通过 jQuery ajax 加载图像路径 在显示图像之前我想检查它是否确实存在 我可以使用图像加载 就绪事件或类似的事件来确定文件路径是否有效 将 myimage 设置为显示 无 我希望做类似的事情 myimage attr src
  • 从另一个网页提取信息

    我有这个 test php 其中有以下信息 callername1 Fernando Verdasco1 callername2 Fernando Verdasco2 callername3 Fernando Verdasco3 calle
  • 如何捕获Key_tab事件

    我正在尝试捕获 key tab 事件 但没有运气 我意识到它只有在没有其他小部件的情况下才有效 因此光标无处可去 只有这样我才能让事件返回 这是一个简化的代码示例 class MyCombo QComboBox def init self
  • Java 区分大小写吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我在某处读到Java 是区分大小写的 我一直无法证实这一点 是吗 如果是这样 为什么 我在某处读到Java 是区分大小写的 我一直无法证实这一点 Java 源代码区分大小写 如果您是
  • Go 可变参数函数参数传递

    我试图理解 函数中第一个和第二个传递参数有什么区别 在这两种情况下 方法都是有效的并且可以编译 1 generateReport capacities func generateReport capacities float64 for i
  • CustomAdapter 中 ViewHolder 内的 butterknife @OnClick

    我目前正在学习 Butterknife 我需要在客户适配器生成的不同视图上绑定特定的 OnClicks 我该怎么做呢 我在这里的一个问题中看到了一个答案 说他在 ViewHolder 内使用 onclick 我不确定如何准确地实现这一点 有
  • Python 中范围作为字典键

    因此 我有一个想法 可以使用一系列数字作为字典中单个值的键 我写了下面的代码 但我无法让它工作 有可能吗 stealth roll randint 1 20 select from a dictionary of 4 responses u
  • 将变量与多个值进行比较的简洁方法[重复]

    这个问题在这里已经有答案了 我一直试图了解是否可以使用类似于我在下面演示的 if 语句 据我了解不是吗 for i in range 10 if i 3 or 5 or math sqrt i 3 or 5 numbers append i
  • 哪种哈希算法对于密码来说最安全? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 根据http php net manual en function hash php 有一个php哈希方法 hash 它支持以下所有方法 但我想知道 绝对最安全的密码哈希方法是什
  • Azure 函数 blob 绑定

    如果不使用 C 实现 不是 CSX 中的 BlobAttribute 我无法将 blob 类型的输入参数绑定到 string TextReader 我收到的错误是 Microsoft Azure WebJobs Host Error ind