Ras*_*kov 2 c# azure azure-blob-storage azure-functions azure-cosmosdb
我实现了 Azure 功能。
我有下一个案例:
将其他内容保存到另一个 dynamo db 集合(输出参数)
[FunctionName("myFunction")]
[return: Blob("images-text-out/{name}.txt")]
public static string Run([BlobTrigger("samples-workitems/{name}", Connection = "StorageConnection")]Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob myBlob,
string name,
string blobTrigger,
[CosmosDB(
databaseName: "my-db-cosmos",
collectionName: "CollectionA",
ConnectionStringSetting = "CosmosDBConnection")] out dynamic processedFirst,
[CosmosDB(
databaseName: "my-db-cosmos",
collectionName: "CollectionB",
ConnectionStringSetting = "CosmosDBConnection")] out dynamic processedSecond,
ILogger log,
ExecutionContext context)
{
// . . .
myBlob.DownloadToStreamAsync(memoryStream).Wait();
// . . .
}
Run Code Online (Sandbox Code Playgroud)这工作正常。问题只是我无法利用异步调用的优势。原因很清楚,因为带有输出参数的方法不能是异步方法。
如何利用异步调用的优势实现具有多个输出的 azure 功能?
谢谢
我们可以在异步方法中使用IAsyncCollector。
仅当成功的函数执行总是导致返回值传递给输出绑定时才使用返回值。否则,使用 ICollector 或 IAsyncCollector
例如,更改out dynamic processedSecond为稍后IAsyncCollector<dynamic> processedFirst使用await processedFirst.AddAsync(someObject);。
请参阅CosmosDB 输出示例。
| 归档时间: |
|
| 查看次数: |
405 次 |
| 最近记录: |