我正试图创建一个Azure Function(.NET核心)以从存储帐户中检索SaS,并且正在努力理解为什么我无法访问存储。
函数签名:
public static async Task<IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequest req,
[StorageAccount("StorageConnectionString")] StorageAccount storage,
ILogger log)
运行时出现此错误:
错误索引方法“ GetBlobSaS” Microsoft.Azure.WebJobs.Host: 无法将参数“存储”绑定到类型StorageAccount。确保 绑定支持参数类型。如果您使用绑定 扩展程序(例如Azure存储,ServiceBus,计时器等),请确保 您已在您的扩展中调用了注册方法 启动代码(例如builder.AddAzureStorage(),builder.AddServiceBus(), builder.AddTimers()等)。
如果我直接创建存储帐户引用,则可以正常工作:
var storage = StorageAccount.NewFromConnectionString(System.Environment.GetEnvironmentVariable("StorageConnectionString"));
我误解或做错了什么?
答案 0 :(得分:3)
您得到的错误是Function运行时不理解方法签名的错误。 [StorageAccount]属性需要一个CloudStorageAccount。
因此将签名更改为:
[FunctionName("Function1")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req,
[StorageAccount("StorageConnectionString")] CloudStorageAccount storage,
ILogger log)
{