New-AzureStorageContext:端点与环境

时间:2018-08-28 18:08:49

标签: azure azure-powershell

对于New-AzureStorageContext cmdlet,假设我都知道这两个值,那么Endpoint和Environment参数之间有什么区别?

例如,假设我要在Azure中国云中新建一个名为foo的新存储上下文,因此环境为AzureChinaCloud,端点为foo.core.chinacloudapi.cn,我可以通过尽管从docs看来它们是互斥的,但这两个参数还是cmdlet的参数。

传递一个或另一个之间在功能上有什么不同?如果我通过环境,创建的存储上下文是否没有端点?如果它具有端点,是否未将其设置为foo.core.chinacloudapi.cn?如果我通过端点,上下文是否不会设置为AzureChinaCloud?甚至可能没有一个?

此外,返回的AzureStorageContext具有许多与端点有关的属性:BlobEndPointEndPointSuffixFileEndPointQueueEndPoint和{{1} }。通过环境或端点时应设置以下哪个属性?

1 个答案:

答案 0 :(得分:0)

  

Endpoint和Environment参数之间有什么区别?

Endpoint:包含存储帐户名和Azure环境,如果AzureCloud,将是storagename.core.windows.net,如果AzureChinaCloud,将是{{1} },就像您提到的那样,它属于storagename.core.chinacloudapi.cn

Optional Parameters:仅指定环境,不包含存储帐户名称。

  

如果我通过环境,创建的存储上下文是否没有端点?如果它具有端点,是否未将其设置为foo.core.chinacloudapi.cn?如果我通过端点,上下文是否不会设置为AzureChinaCloud?

我认为您不需要同时使用它们,如果您通过帐户名和环境,则上下文将具有终结点;另外,如果您通过终结点,则将具有环境。

  

甚至可能没有一个?

当然,您可以使用其他参数来创建上下文,例如您可以只使用EnvironmentStorageAccountName创建上下文,就可以在您提到的文档中找到它。

  

在传递环境或端点时应设置哪些属性?

这四个属性都由端点决定,如果您通过端点,我认为您不需要设置它们。例如如果端点是StorageAccountKey,则storagename.core.windows.net将是BlobEndPoint

更新

  

Endpoint和Environment参数之间有什么区别?

不同的环境决定了不同的端点,您可以通过以下命令进行检查:Get-AzureRmEnvironment。如果storagename.blob.core.windows.net将为AzureCloud,如果core.windows.net将为AzureChinaCloud

AzureCloud:

enter image description here

AzureChinaCloud:

enter image description here

  

如果我通过环境,创建的存储上下文是否没有端点?如果它具有端点,是否未将其设置为foo.core.chinacloudapi.cn?如果我通过端点,上下文是否不会设置为AzureChinaCloud?

您可以只使用其中之一,请参阅屏幕快照注意:实际上core.chinacloudapi.cn的意思是Endpoint,您可以在测试结果中找到它。所以我们应该通过例如EndPointSuffix,而不是-Endpoint "core.windows.net"。如果我们通过-Endpoint "storagename.core.windows.net",它将是错误的,结果中的-Endpoint "storagename.core.windows.net"将是EndPointSuffix

enter image description here

enter image description here

错误的结果:

enter image description here

  

在传递环境或端点时应设置哪些属性?

在上面的屏幕截图中,我没有通过这四个端点中的任何一个,但是您会发现结果将包含所有这些端点。另外,您不需要传递storagename.core.windows.net,它等于EndPointSuffix

相关问题