如何在 RM 模板中为存储帐户解析 SAS URL
How to resolve SAS URL for Storage Account in RM Template
我正在尝试创建 RM 模板来创建网站并将其配置为登录到 blob 存储。
我看到了这个 ,它展示了如何配置它。
json
看起来有点像:
{
"id": "/subscriptions/.../config/logs",
"name": "logs",
"type": "Microsoft.Web/sites/config",
"location": "North Central US",
"properties": {
"applicationLogs": {
"fileSystem": {
"level": "Off"
},
"azureBlobStorage": {
"level": "Information",
"sasUrl": "...",
"retentionInDays": 14
}
},
...
}
但是,我无法弄清楚 sasUrl 应该如何 calculated/resolved 到这个文件中?
要为容器创建 SASurl,您可以使用 New-AzureStorageContainerSASToken
像这样的脚本应该工作
$context = New-AzureStorageContext -StorageAccountName $name `
-StorageAccountKey ((Get-AzureRmStorageAccountKey `
-ResourceGroupName $rg -Name $name).Key1)
New-AzureStorageContainerSASToken -Name sql
-Permission rwdl -Context $context
您可能需要将 -FullUri 添加到最后一个的末尾。
Moim,我认为您不能在模板中创建 sasToken。正如 MichaelB 提到的,您可以在部署之前创建它,然后将其作为参数传递或简单地将其硬编码在模板中(不理想,因为这是一个秘密)。要添加到 Michael 的代码中的几件事:1) 您需要完整的 URL 和一个容器,以及 2) 您需要在令牌上设置一个到期时间,这样它就不会过期并阻止登录它。例如:
$SasToken = New-AzureStorageContainerSASToken -Container 'logs'
-Context $context -Permission rwdl -ExpiryTime (Get-Date).AddYears(1) -FullUri
另一种方法是创建一个 sasToken,将其存储在 Azure KeyVault 中,然后在模板中引用该 KeyVault 密码。这个博客有几篇文章介绍了如何设置:http://www.codeisahighway.com/how-to-refer-an-azure-key-vault-secret-in-an-azure-resource-manager-deployment-template/
我正在尝试创建 RM 模板来创建网站并将其配置为登录到 blob 存储。
我看到了这个
json
看起来有点像:
{
"id": "/subscriptions/.../config/logs",
"name": "logs",
"type": "Microsoft.Web/sites/config",
"location": "North Central US",
"properties": {
"applicationLogs": {
"fileSystem": {
"level": "Off"
},
"azureBlobStorage": {
"level": "Information",
"sasUrl": "...",
"retentionInDays": 14
}
},
...
}
但是,我无法弄清楚 sasUrl 应该如何 calculated/resolved 到这个文件中?
要为容器创建 SASurl,您可以使用 New-AzureStorageContainerSASToken
像这样的脚本应该工作
$context = New-AzureStorageContext -StorageAccountName $name `
-StorageAccountKey ((Get-AzureRmStorageAccountKey `
-ResourceGroupName $rg -Name $name).Key1)
New-AzureStorageContainerSASToken -Name sql
-Permission rwdl -Context $context
您可能需要将 -FullUri 添加到最后一个的末尾。
Moim,我认为您不能在模板中创建 sasToken。正如 MichaelB 提到的,您可以在部署之前创建它,然后将其作为参数传递或简单地将其硬编码在模板中(不理想,因为这是一个秘密)。要添加到 Michael 的代码中的几件事:1) 您需要完整的 URL 和一个容器,以及 2) 您需要在令牌上设置一个到期时间,这样它就不会过期并阻止登录它。例如:
$SasToken = New-AzureStorageContainerSASToken -Container 'logs'
-Context $context -Permission rwdl -ExpiryTime (Get-Date).AddYears(1) -FullUri
另一种方法是创建一个 sasToken,将其存储在 Azure KeyVault 中,然后在模板中引用该 KeyVault 密码。这个博客有几篇文章介绍了如何设置:http://www.codeisahighway.com/how-to-refer-an-azure-key-vault-secret-in-an-azure-resource-manager-deployment-template/