如何使用Azure数据工厂服务的Web活动将实体插入Azure存储表 [英] How to insert an entity into Azure Storage table using Web Activity of Azure Data Factory service

查看:11
本文介绍了如何使用Azure数据工厂服务的Web活动将实体插入Azure存储表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在存储帐户中有一个表。我想做一个测试,在这个链接(https://docs.microsoft.com/en-us/rest/api/storageservices/insert-entity)的指导下,使用Web活动将一个实体插入到这个表中。 我还尝试在Web活动设置中使用以下格式为我的共享密钥创建标题(https://docs.microsoft.com/en-us/rest/api/storageservices/authorize-with-shared-key):

授权=共享密钥<;_AccountName>;:<;_Signature>;";

但动态表达式中似乎没有为<;_Signature>;生成基于哈希的消息验证码(HMAC)的函数。 有人能给我一些样品或一些提示吗?谢谢。

推荐答案

我们提供了在使用数据流时在表达式生成器中使用sha2编码的设置。

但在数据工厂管道中使用Web活动时,您必须使用变通方法。这就是我尝试过的,调用一个基于PowerShell的无服务器功能应用来对签名进行编码。

PowerShell的基本理念:

$ClearString = "String_to_sign"
    $hasher = [System.Security.Cryptography.HashAlgorithm]::Create('sha256')
    $hash = $hasher.ComputeHash([System.Text.Encoding]::UTF8.GetBytes($ClearString))

    $hashString = [System.BitConverter]::ToString($hash)
    $body = $hashString.Replace('-', '').ToLower()

1.调用函数app:

With Body:带字符串_to_Sign的JSON

{
  "name": 'pipeline().parameters.StringToSign'
}

2.将函数应用程序输出(HMAC)赋给变量:(稍后使用Base64编码)

@activity('Azure Function1').output.Response

3.根据您的方案配置WebActivity:

注意:我使用的是样本数据用于演示,请根据需要使用此方法进行修改。

使用base64函数对HMAC和Prep授权头进行编码。

Authorization: @concat('SharedKey kteststoragee:',base64(variables('sha256'))) 

MS文档后面的Build Authorization Header:Table service (Shared Key authorization使用Concat这样的字符串函数构建最终字符串。

这篇关于如何使用Azure数据工厂服务的Web活动将实体插入Azure存储表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆