当前位置: 首页 > 知识库问答 >
问题:

Azure函数中结合绑定器在Blob连接中的使用

微生毅然
2023-03-14

我找到了这个代码示例,用于向Blob存储添加连接并向文件写入一些文本,但连接信息取决于包含连接字符串的环境变量名。我不知道如何提供一个包含连接字符串的密钥库秘密引用,而不是必须使用环境变量名和连接字符串。

using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host.Bindings.Runtime;

public static async Task Run(string input, Binder binder)
{
    var attributes = new Attribute[]
    {    
        new BlobAttribute("samples-output/path"),
        new StorageAccountAttribute("MyStorageAccount")
    };

    using (var writer = await binder.BindAsync<TextWriter>(attributes))
    {
        writer.Write("Hello World!");
    }
}
string StorageConnectionString = GetSecrets(Environment.GetEnvironmentVariable("StorageAccountSecretUrl")).Result.Value;

调用的函数如下所示:

        private static async Task<SecretBundle> GetSecrets(string Url)
        {
            AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
            KeyVaultClient keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
            return await keyVaultClient.GetSecretAsync(Url).ConfigureAwait(false);
        }

这样做的目的是只对连接字符串的更改使用我的密钥存储库机密,并将连接字符串排除在配置文件之外。

共有1个答案

赏弘
2023-03-14

看看这个名为“为App Service和Azure Functions使用Key Vault references”的MS文档(https://docs.microsoft.com/en-us/Azure/app-service/app-service-key-vault-references)。

这种技术基本上允许您在不改变功能代码的情况下使用密钥库。在函数中保留对应用程序设置变量的引用(供绑定使用),但该应用程序设置反过来是指向密钥库秘密的指针。系统负责在运行时“翻译”指向秘密的指针。该过程确实涉及到为应用程序服务/函数创建一个托管标识,以获得访问存储库的权限。

 类似资料:
  • 我在学习http://martinabbott.azurewebsites.net/2016/06/11/fun-with-azure-functions-and-the-emotion-api/ 我在集成选项卡中有名为“图片”的Blob触发器存储容器。myblob路径是“图片/{名称}”没有定义输入。输出是DocumentDB。我已经验证访问密钥是正确的。 我想知道错误的原因是什么?与 Azur

  • 我已经审阅了Microsoft提供的关于触发器的文档。[https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob-trigger?tabs=python][1] 事实上,在Azure函数中使用参数允许我们检索blob和一些属性(),我们还可以使用函数读取字节,但是我们如何将字节转换为

  • 我想使用Python中的Azure函数将JSON数据作为. json文件上传到Azure存储Blob。 因为我使用的是Azure函数,而不是实际的服务器,所以我不想(也可能无法)在本地内存中创建一个临时文件,并使用Azure blob存储客户端库v2将该文件上载到Azure blob存储。1对于Python(这里有参考链接)。因此,我想为Azure函数使用输出blob存储绑定(这里有参考链接)。

  • 我有一个带有servicebus触发器和blob输入绑定的python函数。blob的名称与队列消息的内容匹配。我的function.json文件如下所示: 它就像一种魅力。 Id创建一个具有相同绑定的C#函数,但它似乎不起作用。我使用了相同的文件。

  • 我在 Azure blob 存储中有一个 csv 文件,我想打开该文件并根据用户输入获取某些数据。我有两个问题: 1)空AzureWebJobStorage值在local.settings.json 我尝试使用AzureWebJobsStorage输入绑定,但值似乎为空。我不知道如何在local.settings.json中编辑什么值。因此,得到这个错误: 已执行Functions.HttpExa

  • 我有一个EventHubTrighted函数app。下面是方法签名的代码示例: @functionname(“foo”)@storageaccount(“foostorageRead”)public HttpResponseMessage run(@httptrigger(name=“req”,methods={httpmethod.post},authLevel=authorizationlev