Azure Blob Container - PullRequest
       40

Azure Blob Container

0 голосов
/ 20 октября 2018

Я новичок в сценариях Azure PowerShell.

Как проверить, существует ли контейнер BLOB-объектов под учетной записью хранения, и создать его, если он не существует.

Я попробовал приведенный ниже код:

$StorageAccountName = "autodeploystorageacc1818"
$ContainerName = "acceleratorblobcontainer"
$ResourceGroupName =  "autodeploy"
$skuName = "Standard_LRS"
Try
{  
   Get-AzureRmContext -ErrorAction Continue  
}  
Catch [System.Management.Automation.PSInvalidOperationException]  
{  
   Login-AzureRmAccount  
}
Set-AzureRmCurrentStorageAccount -StorageAccountName $StorageAccountName  -ResourceGroupName $ResourceGroupName 
$StorageAccountName  = Get-AzureStorageBlob -Container $ContainerName -Context $StorageAccountName
New-AzureStorageContainer -Name $ContainerName -Permission Off`

Но как это можно записать в качестве условного заявления, любая помощь или идеи будут оценены.

Ответы [ 2 ]

0 голосов
/ 21 октября 2018

Вид анти-паттерна, но вы можете заключить вызов для создания контейнера в блок try / catch, а затем перехватить исключение, чтобы определить, существует ли контейнер.

$AccountName = "account name"
$AccountKey = "account key"
$StorageContainerName = "container name"
Try
{
     $ctx = New-AzureStorageContext -StorageAccountName $AccountName  -StorageAccountKey $AccountKey
     $container = New-AzureStorageContainer -Name $StorageContainerName -Context $ctx -ErrorAction Stop
}
Catch
{
    Write-Warning "Container $StorageContainerName already exists."
}

Код для создания контейнераможет произойти сбой по разным причинам, поэтому вам нужно перехватить конкретное исключение (в данном случае ResourceAlreadyExistException) и обработать его специально.

0 голосов
/ 21 октября 2018

Вы можете проверить, что контейнер уже существует (или) не используя команду Get-AzureStorageContainer

## Get Parameters
Param(
    [string] $ResourceGroupName,
    [string] $StorageAccountName,
    [string] $StorageContainerName
)

## Static Parameters
#Login-AzureRmAccount
#Set-AzureRmContext -SubscriptionID 11111111-1111-1111-1111-111111111111
#$ResourceGroupName = "GroupName"
#$StorageAccountName = "AccountName"
#$StorageContainerName = "ContainerName"

$Keys = Get-AzureRmStorageAccountKey -ResourceGroupName $ResourceGroupName -Name $StorageAccountName;

$StorageContext = New-AzureStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $Keys[0].Value;

if (!(Get-AzureStorageContainer -Context $StorageContext | Where-Object { $_.Name -eq $StorageContainerName })){
New-AzureStorageContainer -Context $StorageContext -Name $StorageContainerName -Permission Container;  
}
 else {
Write-Warning "Container $StorageContainerName already exists."
}

См. здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...