无法使用 Microsoft 示例在 Azure APIM 中生成 SAS
Not able to generate SAS in Azure APIM using Microsoft sample
是否有人按照以下示例成功地为 Azure APIM 中的 Blob 存储生成了 SAS?
https://docs.microsoft.com/en-us/azure/api-management/policies/generate-shared-access-signature
已替换门户中的存储访问密钥(使用密钥 1 和密钥 2),但得到相同的结果。也尝试生成新密钥,但也没有用。
"Expression evaluation failed. The given key was not present in the
dictionary.\r\n at
System.Collections.Generic.Dictionary`2.get_Item(TKey key)",
"The given key was not present in the dictionary."
让像我这样的 azure-apim 初学者更加困惑的是
<set-variable name="resourcePath" value="TableName()" />
,TableName() 是做什么的?
此示例为 Azure 存储帐户中的 table 生成 SAS 令牌。您可以将其修改为您要访问的资源,如下所示:
<set-variable name="resourcePath" value="containername/blobname" />
别忘了更改 rewrite-uri
块。
感谢所有试图提供帮助的人: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 的人有所帮助 :)
是否有人按照以下示例成功地为 Azure APIM 中的 Blob 存储生成了 SAS?
https://docs.microsoft.com/en-us/azure/api-management/policies/generate-shared-access-signature
已替换门户中的存储访问密钥(使用密钥 1 和密钥 2),但得到相同的结果。也尝试生成新密钥,但也没有用。
"Expression evaluation failed. The given key was not present in the dictionary.\r\n at System.Collections.Generic.Dictionary`2.get_Item(TKey key)", "The given key was not present in the dictionary."
让像我这样的 azure-apim 初学者更加困惑的是
<set-variable name="resourcePath" value="TableName()" />
,TableName() 是做什么的?
此示例为 Azure 存储帐户中的 table 生成 SAS 令牌。您可以将其修改为您要访问的资源,如下所示:
<set-variable name="resourcePath" value="containername/blobname" />
别忘了更改 rewrite-uri
块。
感谢所有试图提供帮助的人: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 的人有所帮助 :)