无法使用Microsoft示例在Azure APIM中生成SAS

mzaanser  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(96)

有没有人按照下面的示例成功地为Azure APIM中的Blob存储生成SAS?
https://learn.microsoft.com/en-us/azure/api-management/policies/generate-shared-access-signature
已经替换了门户中的存储访问密钥(使用了key 1和key 2),但得到了相同的结果。还尝试生成新密钥,但也不起作用。
“表达式计算失败。字典中不存在给定的键。\r\n在System.Collections.Generic.Dictionary2.get_Item(TKey key)",“字典中不存在给定的键。” 像我这样的azure-apim初学者更困惑的是`,TableName()是做什么的?

ijxebb2r

ijxebb2r1#

感谢所有试图帮助我们的人:Anton和Doris。
失败的操作是以下块:

<set-variable name="StringToSign" value="@{
            return string.Format(
            "GET\n\n\n\n\n{0}\n\n\n\n\n\n\n{1}\n{2}\n{3}",
            (string)context.Variables["Content-Type"],
            (string)context.Variables["x-ms-date"],
            (string)context.Variables["x-ms-version"],
            (string)context.Variables["CanonicalizedResource"]);
        }" />

字符串
但是,在示例的开头,当设置上下文变量时,x-ms-version丢失了。我添加了操作<set-variable name="x-ms-version" value="2020-02-10" />,现在生成了SAS。
也许它会帮助其他想使用Azure的人:)

wwtsj6pe

wwtsj6pe2#

此示例为Azure存储帐户中的表生成SAS令牌。您可以将其修改为要访问的资源,如下所示:

<set-variable name="resourcePath" value="containername/blobname" />

字符串
别忘了也修改rewrite-uri块。

相关问题