Create/Update 使用 Azure Devops 任务或 PowerShell 的 Azure WebApp 路径映射
Create/Update PATH MAPPINGS of Azure WebApp using Azure Devops task or PowerShell
我想通过 Azure DevOps 管道为容器上的 Azure WebApp 使用 Azure 文件共享(路径映射)更新配置 Azure 存储装载。为此,我目前正在使用 'Azure PowerShell task'(下面的代码)。但是,PowerShell 脚本正在配置 'Advance' 选项,并公开了存储帐户访问密钥。有没有办法配置 'Basic' 一个。
PowerShell 'New-AzWebAppAzureStoragePath' 创建 'advance' 配置。
还有一个 Devops 任务 'Azure webapp for containers' 允许我设置 'app settings' 和 'configuration settings',但没有 'path mappings' 的选项。
在 PowerShell 或 Azure devops 任务中是否有任何替代方案,以使用 'BASIC' 配置创建 'path mapping' 到 Azure 文件共享。
脚本:
try{
# Check if AzureStoragePath (PATH MAPPINGS) already exists for the web app
$webapp = get-AzWebApp -ResourceGroupName $webAppResourceGroupName -Name $webAppName
if($webapp.AzureStoragePath -ne $null){
# 'Path Mapping' to Azure storage File does not exist. Proceed with creating one.
# Get Storage Account Primary Key
$storageAccountKey = (Get-AzStorageAccountKey -ResourceGroupName $storageResourceGroupName -AccountName $storageAccountName).value[0]
$storageAccountContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey
# Returns 'True' or 'False' depending whether File share exists or not
$storageShareObject = get-azstorageshare -Name $storageFileShareName -context $storageAccountContext -erroraction silentlycontinue
$storageShareExists = (($storageShareObject) -ne $null)
if($storageShareExists -ne 'True'){
$storageShareObjectFQDN = $storageShareObject.name + ".files.core.windows.net"
# Create a WebApp Storage Path object
$webAppStoragePathObject = New-AzWebAppAzureStoragePath -Name 'someConfig' -AccountName $storageShareObjectFQDN -Type AzureFiles -ShareName $storageFileShareName -AccessKey $storageAccountKey -MountPath "/edgemicro/config"
# Configure the 'Path mappings' for the web app
Set-AzWebApp -ResourceGroupName $webAppResourceGroupName -Name $webAppName -AzureStoragePath $webAppStoragePathObject
}
}
}catch{
# '$_' contains all the details about exception
$_
}
我可以用 Azure powershell 重现同样的问题。
但是,您可以使用 azure cli 而不是 azure powershell 作为解决方法。请参阅下面的命令。查看 here 了解更多信息。
az webapp config storage-account add --resource-group $storageResourceGroupName --name $webAppName --custom-id "someConfig" --storage-type "AzureFiles" --share-name $storageFileShareName --account-name $storageAccountName --access-key $storageAccountKey --mount-path "/parent"
使用上面的 azure cli 命令,您可以创建基本配置。请参阅下面的屏幕截图:
我想通过 Azure DevOps 管道为容器上的 Azure WebApp 使用 Azure 文件共享(路径映射)更新配置 Azure 存储装载。为此,我目前正在使用 'Azure PowerShell task'(下面的代码)。但是,PowerShell 脚本正在配置 'Advance' 选项,并公开了存储帐户访问密钥。有没有办法配置 'Basic' 一个。
PowerShell 'New-AzWebAppAzureStoragePath' 创建 'advance' 配置。
还有一个 Devops 任务 'Azure webapp for containers' 允许我设置 'app settings' 和 'configuration settings',但没有 'path mappings' 的选项。
在 PowerShell 或 Azure devops 任务中是否有任何替代方案,以使用 'BASIC' 配置创建 'path mapping' 到 Azure 文件共享。
脚本:
try{
# Check if AzureStoragePath (PATH MAPPINGS) already exists for the web app
$webapp = get-AzWebApp -ResourceGroupName $webAppResourceGroupName -Name $webAppName
if($webapp.AzureStoragePath -ne $null){
# 'Path Mapping' to Azure storage File does not exist. Proceed with creating one.
# Get Storage Account Primary Key
$storageAccountKey = (Get-AzStorageAccountKey -ResourceGroupName $storageResourceGroupName -AccountName $storageAccountName).value[0]
$storageAccountContext = New-AzStorageContext -StorageAccountName $storageAccountName -StorageAccountKey $storageAccountKey
# Returns 'True' or 'False' depending whether File share exists or not
$storageShareObject = get-azstorageshare -Name $storageFileShareName -context $storageAccountContext -erroraction silentlycontinue
$storageShareExists = (($storageShareObject) -ne $null)
if($storageShareExists -ne 'True'){
$storageShareObjectFQDN = $storageShareObject.name + ".files.core.windows.net"
# Create a WebApp Storage Path object
$webAppStoragePathObject = New-AzWebAppAzureStoragePath -Name 'someConfig' -AccountName $storageShareObjectFQDN -Type AzureFiles -ShareName $storageFileShareName -AccessKey $storageAccountKey -MountPath "/edgemicro/config"
# Configure the 'Path mappings' for the web app
Set-AzWebApp -ResourceGroupName $webAppResourceGroupName -Name $webAppName -AzureStoragePath $webAppStoragePathObject
}
}
}catch{
# '$_' contains all the details about exception
$_
}
我可以用 Azure powershell 重现同样的问题。
但是,您可以使用 azure cli 而不是 azure powershell 作为解决方法。请参阅下面的命令。查看 here 了解更多信息。
az webapp config storage-account add --resource-group $storageResourceGroupName --name $webAppName --custom-id "someConfig" --storage-type "AzureFiles" --share-name $storageFileShareName --account-name $storageAccountName --access-key $storageAccountKey --mount-path "/parent"
使用上面的 azure cli 命令,您可以创建基本配置。请参阅下面的屏幕截图: