无需绑定即可访问 Blob 存储?
Access Blob storage without binding?
我正在使用队列触发器来传递有关我想要 运行 使用 Azure Functions 的作业的一些数据(我正在使用 python)。部分数据是我想从 blob 存储中提取的文件的名称。因此,在输入绑定中声明文件 path/name 似乎不是正确的方向,因为该函数在获得队列触发器之前不会有文件名。
我尝试过的一种方法是使用 azure-storage sdk,但我不确定如何从 Azure Function 中处理身份验证。
还有其他方法可以解决这个问题吗?
通常,您将连接字符串/帐户密钥存储在功能应用的应用设置中,然后通过访问环境变量来读取它们。我没有在 Azure 中使用过 python,但我相信它看起来像
connection = open(os.environ['ConnectionString']).read()
我发现 one example 的 python 函数可以满足您的要求:队列触发器 + blob 操作。
可以(也)使用应用程序设置来存储秘密。
在 Azure 中,转到您的 Azure Functions 应用服务,然后单击 "Application Settings"。然后,向下滚动到 "App Settings" 列表。该列表由键值对组成。添加您的密钥,例如 MY_CON_STR
和实际的连接字符串作为值。
此时不要忘记点击保存
现在,在您的应用程序(本例中为您的函数)中,您可以使用其键加载存储的值。例如,在python中,你可以使用:
os.environ['MY_CON_STR']
请注意,由于设置未保存在本地,您必须从 Azure 中执行它。不幸的是,Azure Functions 应用程序不包含 web.config
文件。
在 Function.json 中,blob 输入绑定可以引用队列负载中的属性。队列负载需要是一个 JSON 对象
由于这是 function.json,它适用于所有语言。
查看官方文档 https://docs.microsoft.com/en-us/azure/azure-functions/functions-triggers-bindings
例如,在你function.json、
{
"name": "imageSmall",
"type": "blob",
"path": "container/{filename}",
}
如果您的队列消息负载是:
{
"filename" : "myfilename"
}
然后 blob 路径表达式中的 {filename} 标记将被替换。
我正在使用队列触发器来传递有关我想要 运行 使用 Azure Functions 的作业的一些数据(我正在使用 python)。部分数据是我想从 blob 存储中提取的文件的名称。因此,在输入绑定中声明文件 path/name 似乎不是正确的方向,因为该函数在获得队列触发器之前不会有文件名。
我尝试过的一种方法是使用 azure-storage sdk,但我不确定如何从 Azure Function 中处理身份验证。
还有其他方法可以解决这个问题吗?
通常,您将连接字符串/帐户密钥存储在功能应用的应用设置中,然后通过访问环境变量来读取它们。我没有在 Azure 中使用过 python,但我相信它看起来像
connection = open(os.environ['ConnectionString']).read()
我发现 one example 的 python 函数可以满足您的要求:队列触发器 + blob 操作。
可以(也)使用应用程序设置来存储秘密。
在 Azure 中,转到您的 Azure Functions 应用服务,然后单击 "Application Settings"。然后,向下滚动到 "App Settings" 列表。该列表由键值对组成。添加您的密钥,例如 MY_CON_STR
和实际的连接字符串作为值。
此时不要忘记点击保存
现在,在您的应用程序(本例中为您的函数)中,您可以使用其键加载存储的值。例如,在python中,你可以使用:
os.environ['MY_CON_STR']
请注意,由于设置未保存在本地,您必须从 Azure 中执行它。不幸的是,Azure Functions 应用程序不包含 web.config
文件。
在 Function.json 中,blob 输入绑定可以引用队列负载中的属性。队列负载需要是一个 JSON 对象 由于这是 function.json,它适用于所有语言。
查看官方文档 https://docs.microsoft.com/en-us/azure/azure-functions/functions-triggers-bindings
例如,在你function.json、
{
"name": "imageSmall",
"type": "blob",
"path": "container/{filename}",
}
如果您的队列消息负载是:
{
"filename" : "myfilename"
}
然后 blob 路径表达式中的 {filename} 标记将被替换。