当前位置: 首页 > 知识库问答 >
问题:

在新门户中通过powershell创建Azure存储容器

尹俊雅
2023-03-14

我想通过powershell在现有存储帐户中创建azure存储容器。我尝试了以下命令:

Set-AzureSubscription -CurrentStorageAccountName "storageaccountv1" -SubscriptionId $SubscriptionId
New-AzureStorageContainer -Name $ContainerName -Permission Off

对于那些知道的人来说,Azure有两种类型的存储帐户:v1、v2。v1帐户是通过http://manage.windowsazure.com/以及可以在中创建的v2http://portal.azure.com/.当命令New-AzureStorageContainer在v1中处理存储帐户时,该命令在v2中不处理存储帐户。它给出了以下错误:

New-AzureStorageContainer : ResourceNotFound: The storage account 'storageaccountv2' was not found.
At CreateStorageContainer.ps1:31 char:1
+ New-AzureStorageContainer -Name $ContainerName -Permission Off
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [New-AzureStorageContainer], CloudException
    + FullyQualifiedErrorId : CloudException,Microsoft.WindowsAzure.Commands.Storage.Blob.Cmdlet.NewAzureStorageContainerCommand

有人能告诉如何通过powershell在v2中创建Azure存储容器吗?

共有3个答案

贲言
2023-03-14

这是幂等码

[System.String]$script:ResourceGroupNameVariable = 'resourcegroupnameone'
[System.String]$script:StorageAccountNameVariable = 'storacctnameone'
[System.String]$script:ContainerNameVariable = 'containernameone'

Write-Host "Start Container Create"

#Get/Set the AzureRmStorageAccountKey
#                        the below -Name parameter may be -AccountName according to documentation
[System.Object[]]$currentAzureRmStorageAccountKeys = Get-AzureRmStorageAccountKey -ResourceGroupName $script:ResourceGroupNameVariable -Name $script:StorageAccountNameVariable;
#Write-Host "about to currentAzureRmStorageAccountKeys.GetType"
#Write-Output $currentAzureRmStorageAccountKeys.GetType().FullName 


### Create the AzureStorageContext (you always do this, regardless if the container itself exists or not)
[Microsoft.WindowsAzure.Commands.Storage.AzureStorageContext]$currentAzureStorageContext = New-AzureStorageContext -StorageAccountName $script:StorageAccountNameVariable -StorageAccountKey $currentAzureRmStorageAccountKeys[0].Value;
#Write-Host "about to currentAzureStorageContext.GetType"
#Write-Output $currentAzureStorageContext.GetType().FullName 

# Get/Set the AzureStorageContainer
[Microsoft.WindowsAzure.Commands.Common.Storage.ResourceModel.AzureStorageContainer]$currentAzureStorageContainerCheck=Get-AzureStorageContainer -Context $currentAzureStorageContext -Name $script:ContainerNameVariable;

if(!$currentAzureStorageContainerCheck)
{
    ### The container does not already exist.  Create a Blob Container in the Storage Account
    New-AzureStorageContainer -Context $currentAzureStorageContext -Name $script:ContainerNameVariable;
}
else{
    #Write-Host "about to currentAzureStorageContainerCheck.GetType"
    #Write-Output $currentAzureStorageContainerCheck.GetType().FullName 
    #Write-Host "about to currentAzureStorageContainerCheck"
    #$currentAzureStorageContainerCheck
}

Write-Host "End Container Create"

这与:版本4.3.1(AzureRM)

获取模块列表可用名称"AzureRM"

林念
2023-03-14

Azure PowerShell 1.0预览版(https://azure.microsoft.com/en-us/blog/azps-1-0-pre/)是释放。

使用Azure PowerShell 1.0 Preview,您可以运行以下cmdlet:

 Login-AzureRMAccount -SubscriptionId [SubscriptionID]
 Set-AzureRmCurrentStorageAccount -StorageAccountName [accountName] -ResourceGroupName [ResourceGroupName]

然后,您可以使用资源模式帐户(在新门户中创建)运行“New AzureStorageContainer”,而无需上下文。

顺便说一句,“Set AzureSubscription”仅适用于服务模式帐户,不适用于资源模式帐户。

羊舌青青
2023-03-14

如果选择使用StorageAccountContext,可以尝试以下操作:

$ctx = New-AzureStorageContext -StorageAccountName "account-name" -StorageAccountKey "account-key" 
New-AzureStorageContainer -Name "container-name" -Context $ctx
 类似资料:
  • 我刚刚创建了一个Azure应用服务来托管一个Web应用程序,我想打开应用程序日志记录。我已经在应用程序本身中启用了它。 使用Azure门户,我试图配置应用程序以在诊断日志下进行日志记录,但在我创建了一个新的存储帐户来保存日志blob后,它不允许我在存储帐户中创建具有blob访问权限的容器。我一直从门户网站上收到“错误:Error”。我还尝试创建一个文件容器,但失败了,出现了相同的错误。 为什么我不

  • 我想将云服务部署到Azure,但在部署时必须选择存储帐户(在新门户和Visual Studio 2015中都尝试过)。我的存储帐户是使用新门户“存储帐户”创建的,并分配给了某些资源组,因此在部署时我无法选择它。对如何部署有何建议?

  • 我在使用Azure云服务时遇到了瓶颈问题。该服务过去工作正常,基本上它所做的就是将Azure存储帐户中的信息存储到Azure数据库中。上个月没有数据加载到Azure数据库中,服务有一段时间没有更改,数据库没有锁定问题,但当我尝试检查我的存储帐户时,它在新的Azure门户中不可用,但在旧门户中不可用,从旧门户我没有与新门户相同的选项。指标是可以的,但是我遇到的这个瓶颈问题,数据加载可能与新门户中丢失

  • 我想要通过 databricks 从 Azure 订阅中动态获取所有存储帐户和容器。 因此,我可以遍历容器中的每个文件,并获取我之前完成的文件及其大小。 现在,我想动态地将存储帐户和容器设置为在 databricks 环境中进行处理。

  • 我试图使用Python在azure存储中创建blob容器。我正在使用MSDN提供的文档在我的python程序中集成azure blob存储。 代码如下: 第一次创建blob容器,但第二次就出错了。

  • 我无法访问托管密钥库中的存储帐户密钥。下面是我的代码: 似乎$secret.secretValueText为空/null。如何正确检索存储帐户密钥?这就是出现的错误。