如何使用Azure数据工厂服务的Web活动将实体插入Azure存储表 [英] How to insert an entity into Azure Storage table using Web Activity of Azure Data Factory service
本文介绍了如何使用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屋!
查看全文