gpt4 book ai didi

c# - Azure 函数绑定(bind)与手动实例化类

转载 作者:行者123 更新时间:2023-12-05 05:43:51 25 4
gpt4 key购买 nike

对于 Azure 函数:
使用 Blob 绑定(bind)或手动为其创建引用有什么区别吗?

1:绑定(bind)

public Task Run(
[HttpTrigger(AuthorizationLevel.Function, "get")] HttpRequest req,
[Blob("images")] CloudBlobContainer container)
{
// Code
}

2:手动

public Task Run(
[HttpTrigger(AuthorizationLevel.Function, "get")] HttpRequest req)
{
var account = CloudStorageAccount.Parse(connectionstring);
var client = account.CreateCloudBlobClient();
var container = client.GetContainerReference("images");

// Code
}

我只是谈论性能上的差异。
这两个例子中“幕后”发生的事情不是完全相同吗?

最佳答案

我相信这两种实现都会提供相同的性能。

是的!正如 Skin 所说,Microsoft 建议您避免使用 Azure Functions 对集成服务进行硬编码访问。

像函数接收或发送数据(队列消息)时,可以使用函数参数接收数据,使用函数的返回值发送数据。

通过 Pluralsight 类(class),我了解到 Azure 函数中这种绑定(bind)和硬编码的区别和用法是:

在下面的代码中,我将 Blob 输出绑定(bind)到函数级别:

public class GenerateLicenseFile
{
[FunctionName("GenerateLicenseFile")]
public void Run([QueueTrigger("orders", Connection = "AzureWebJobsStorage")]Order order,
[Blob("licenses/{rand-guid}.lic")]TextWriter outputBlob,
ILogger log)
{
outputBlob.WriteLine($"OrderId: {order.OrderId}");
outputBlob.WriteLine($"Email: {order.Email}");
outputBlob.WriteLine($"ProductId: {order.ProductId}");
outputBlob.WriteLine($"PurchaseDate: {DateTime.UtcNow}");

将订单 ID 作为许可证文件名,

public  static  class  GenerateLicenseFile

{

[FunctionName("GenerateLicenseFile")]
public static async Task Run(
[QueueTrigger("orders", Connection = "AzureWebJobsStorage")] Order order,
IBinder binder,
ILogger log)
{
var outputBlob = await binder.BindAsync<TextWriter>(
new BlobAttribute($"licenses/{order.OrderId}.lic")
{
Connection = "AzureWebJobsStorage"
});
outputBlob.WriteLine($"OrderId: {order.OrderId}");
outputBlob.WriteLine($"Email: {order.Email}");
outputBlob.WriteLine($"ProductId: {order.ProductId}");
outputBlob.WriteLine($"PurchaseDate: {DateTime.UtcNow}");

有一些场景提到了何时在 Azure Functions 中使用绑定(bind)作为参数和硬编码,请参阅此 Microsoft Documentation了解更多信息。

关于c# - Azure 函数绑定(bind)与手动实例化类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71738873/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com