如何通过 Bash 脚本编辑现有的 Azure 存储帐户 CORS 规则
How to edit existing Azure storage account CORS Rule through Bash Script
过去 3 个月我一直担任 Devops 工程师。所以,我正在学习为自动化创建脚本。但我被困在这里。
我想尝试通过 bash 脚本编辑 CORS 规则。我已经成功地编写了一个用于添加规则的脚本,但是每次我 运行 该脚本时,它都会创建一个新规则。我想编辑现有规则。
这是我用来添加 CORS 规则的脚本行。
Add_Rule=$(az storage cors add --account-name testingscriptcors --origins 'http://google321.comh, http://www.google123.com' --methods GET PUT --allowed-headers '*' --exposed-headers '*' --max-age 200 --services b)
我的想法是,如果我在此脚本中提供 (--rule 1),它就会成功。但这是行不通的。
您可以使用 Set-AzStorageCORSRule
添加和编辑现有规则。您可以按照我在这里提到的方式进行处理。
用于设置或添加 CORS 规则的 Cmdlet
$ctx=New-AzStorageContext -StorageAccountName "clouXXXXXXXman" -StorageAccountKey "ExXXXXXXXXXzUgkXi80HHrXXXXXXXXXXXXXXXXXXXXX"
$CorsRules = (@{
AllowedHeaders=@("x-ms-blob-content-type","x-ms-blob-content-disposition");
AllowedOrigins=@("*");
MaxAgeInSeconds=30;
AllowedMethods=@("Get","Connect")},
@{
AllowedOrigins=@("http://www.fabrikam.com","http://www.contoso.com");
ExposedHeaders=@("x-ms-meta-data*","x-ms-meta-customheader");
AllowedHeaders=@("x-ms-meta-target*","x-ms-meta-customheader");
MaxAgeInSeconds=30;
AllowedMethods=@("Put")})
Set-AzStorageCORSRule -ServiceType Blob -CorsRules $CorsRules -Context $ctx
一旦设置你可以使用下面的命令检查规则列表
az storage cors list --account-name cloudXXXXXXn --account-key ExlYLcXXXXXXXXXXXXXXXXXX
更改 blob 服务的 CORS 规则属性
$ctx1=New-AzStorageContext -StorageAccountName "cloXXXXXuman" -StorageAccountKey "ExlYLc5XXXXXXXXXXXXXXXXXXXXXXXXXXX"
$CorsRules = Get-AzStorageCORSRule -ServiceType Blob -Context $ctx1
$CorsRules[0].AllowedHeaders = @("x-ms-blob-content-type", "x-ms-blob-content-disposition")
$CorsRules[0].AllowedMethods = @("Get", "Connect", "Merge")
Set-AzStorageCORSRule -ServiceType Blob -CorsRules $CorsRules -Context $ctx1
您可以参考此 MS Document 了解更多信息。
过去 3 个月我一直担任 Devops 工程师。所以,我正在学习为自动化创建脚本。但我被困在这里。 我想尝试通过 bash 脚本编辑 CORS 规则。我已经成功地编写了一个用于添加规则的脚本,但是每次我 运行 该脚本时,它都会创建一个新规则。我想编辑现有规则。
这是我用来添加 CORS 规则的脚本行。
Add_Rule=$(az storage cors add --account-name testingscriptcors --origins 'http://google321.comh, http://www.google123.com' --methods GET PUT --allowed-headers '*' --exposed-headers '*' --max-age 200 --services b)
我的想法是,如果我在此脚本中提供 (--rule 1),它就会成功。但这是行不通的。
您可以使用 Set-AzStorageCORSRule
添加和编辑现有规则。您可以按照我在这里提到的方式进行处理。
用于设置或添加 CORS 规则的 Cmdlet
$ctx=New-AzStorageContext -StorageAccountName "clouXXXXXXXman" -StorageAccountKey "ExXXXXXXXXXzUgkXi80HHrXXXXXXXXXXXXXXXXXXXXX"
$CorsRules = (@{
AllowedHeaders=@("x-ms-blob-content-type","x-ms-blob-content-disposition");
AllowedOrigins=@("*");
MaxAgeInSeconds=30;
AllowedMethods=@("Get","Connect")},
@{
AllowedOrigins=@("http://www.fabrikam.com","http://www.contoso.com");
ExposedHeaders=@("x-ms-meta-data*","x-ms-meta-customheader");
AllowedHeaders=@("x-ms-meta-target*","x-ms-meta-customheader");
MaxAgeInSeconds=30;
AllowedMethods=@("Put")})
Set-AzStorageCORSRule -ServiceType Blob -CorsRules $CorsRules -Context $ctx
一旦设置你可以使用下面的命令检查规则列表
az storage cors list --account-name cloudXXXXXXn --account-key ExlYLcXXXXXXXXXXXXXXXXXX
更改 blob 服务的 CORS 规则属性
$ctx1=New-AzStorageContext -StorageAccountName "cloXXXXXuman" -StorageAccountKey "ExlYLc5XXXXXXXXXXXXXXXXXXXXXXXXXXX"
$CorsRules = Get-AzStorageCORSRule -ServiceType Blob -Context $ctx1
$CorsRules[0].AllowedHeaders = @("x-ms-blob-content-type", "x-ms-blob-content-disposition")
$CorsRules[0].AllowedMethods = @("Get", "Connect", "Merge")
Set-AzStorageCORSRule -ServiceType Blob -CorsRules $CorsRules -Context $ctx1
您可以参考此 MS Document 了解更多信息。