gpt4 book ai didi

azure-functions - 如何将 Azurite blob 容器用作 Azure Function 内部存储和触发器?

转载 作者:行者123 更新时间:2023-12-04 12:32:58 25 4
gpt4 key购买 nike

我已按照说明下载并安装 Azurite for Linux (Ubuntu 18.04)。我想将它与 Azure 存储资源管理器(也已下载并安装)一起使用,以通过 BlobTrigger 直观地管理/测试 Azure 函数。我了解如何启动 Azurite,并且可以使用 Storage Exporer 将 blob 上传到模拟器容器。
想不通:

  • 如何将 Azure Function 连接到 Azurite 容器以用作 Functions 内部存储。
    一种。我用过 "AzureWebJobsStorage": "UseDevelopmentStorage=true"local.settings.json ,但我没有看到如何将函数连接到 Azurite 中的给定容器
  • 如何将函数连接到 Azurite 容器以实现 BlobTrigger 功能。
    一种。我是否需要添加 "BlobTrigger": "<azuriteContainerConnectionString>"设置为 local.settings.json ?
  • 最佳答案

    基本上, local.settings.json 中的值用于保存环境变量。
    连接字符串在 function.json 中声明。如果你使用的是C#或Java(需要编译的语言,不是直接运行的语言),那么它总是有一个声明部分,编译后声明部分会被转换为function.json。
    我在本地启动了 Azurite,并尝试使用默认存储帐户:
    我得到 blob 服务的默认连接字符串:

    DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;
    我用 blobtrigger 创建了一个 C# azure 函数:
    local.settings.json
    {
    "IsEncrypted": false,
    "Values": {
    "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=0730bowmanwindow;AccountKey=xxxxxx==;EndpointSuffix=core.windows.net",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet",
    "str": "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;"
    }
    }
    Function1.cs
    using System;
    using System.IO;
    using Microsoft.Azure.WebJobs;
    using Microsoft.Azure.WebJobs.Host;
    using Microsoft.Extensions.Logging;

    namespace FunctionApp1
    {
    public static class Function1
    {
    [FunctionName("Function1")]
    public static void Run([BlobTrigger("test/{name}", Connection = "str")]Stream myBlob, string name, ILogger log)
    {
    log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
    }
    }
    }
    它似乎工作正常:
    enter image description here
    我设置了 AzureWebJobsStorage到 azure 上的存储,因为使用了 10000 端口。
    这是文档:
    https://docs.microsoft.com/en-us/azure/storage/common/storage-use-azurite?toc=/azure/storage/blobs/toc.json

    关于azure-functions - 如何将 Azurite blob 容器用作 Azure Function 内部存储和触发器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63980218/

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