【问题标题】:upload file to storage account using ARM template使用 ARM 模板将文件上传到存储帐户
【发布时间】:2017-07-31 22:33:17
【问题描述】:

我是天蓝色的新手。我在 azure 门户中创建了一个存储帐户。我需要使用 ARM 模板将文件上传到存储帐户。谁能告诉我如何做到这一点?

【问题讨论】:

  • 使用 ARM 模板无法做到这一点。您能否详细介绍一下您的要求?
  • 我必须将项目文件夹之一中所有创建的 json 文件移动到存储帐户。我必须使用 ARM 模板和 EV2 工具来执行此操作。我不确定如何开始。如果您有任何想法,请欣赏。

标签: c# azure azure-blob-storage azure-resource-manager


【解决方案1】:

正如 Bruno Faria 提到的,我们不能使用 ARM 模板来做到这一点。使用 Azure ARM 模板。您可以在单个协调操作中部署、更新或删除解决方案的所有资源。更多ARM模板请参考document

使用资源管理器,您可以创建一个模板(JSON 格式)来定义您的 Azure 解决方案的基础结构和配置。通过使用模板,您可以在整个生命周期内重复部署您的解决方案,并确信您的资源以一致的状态部署

我们可以使用Microsoft Azure Storage Explorer 轻松做到这一点。

如果我们尝试使用程序来做到这一点,我们可以从 Azure 官方document 获得演示代码。

// Retrieve storage account from connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
    CloudConfigurationManager.GetSetting("StorageConnectionString"));

// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

// Retrieve reference to a previously created container.
CloudBlobContainer container = blobClient.GetContainerReference("mycontainer");

// Retrieve reference to a blob named "myblob".
CloudBlockBlob blockBlob = container.GetBlockBlobReference("myblob");

// Create or overwrite the "myblob" blob with contents from a local file.
using (var fileStream = System.IO.File.OpenRead(@"path\myfile"))
{
    blockBlob.UploadFromStream(fileStream);
}

【讨论】:

  • 有没有使用 azure 函数的选项?
  • 是的,我们也可以使用 Azure 功能。我们可以使用 Azure 函数 Http 触发器来做到这一点。但在我看来,我们可以很容易地用Microsoft Azure Storage Explorer 上传文件。
  • @TomSun 正如您所提到的,有一种方法可以使用 arm 模板更新现有存储帐户,例如使用我们自己的密钥来加密存储帐户等。因为我已经搜索了一段时间并且无法得到任何东西
【解决方案2】:

目前不支持使用 ARM 模板将文件上传到 Blob 存储。

这背后的逻辑是 ARM 模板用于管理 Azure 资源(执行创建、删除和更改资源属性等操作),而不是管理您对这些资源的使用。

文件上传到 Blob 存储的方式有:

  1. 通过存储资源管理器工具手动 - Storage Explorer
  2. 通过 Az Powershell 命令以编程方式 - az storage blob upload

也就是说,部署Blob Storage 容器(资源本身)可以按照以下模板进行:(感谢@johndownshere

{
  "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageAccountName": {
      "type": "string"
    }
  },
  "variables": {
    "containerName": "logs"
  },
  "resources": [
    {
      "name": "[parameters('storageAccountName')]",
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2018-02-01",
      "location": "[resourceGroup().location]",
      "kind": "StorageV2",
      "sku": {
        "name": "Standard_LRS",
        "tier": "Standard"
      },
      "properties": {
        "accessTier": "Hot"
      },
      "resources": [
        {
          "name": "[concat('default/', variables('containerName'))]",
          "type": "blobServices/containers",
          "apiVersion": "2018-03-01-preview",
          "dependsOn": [
            "[parameters('storageAccountName')]"
          ]
        }
      ]
    }
  ]
}

【讨论】:

  • 通过 ARM 模板创建 StorageAccount 有很好的文档记录。问题是询问如何使用 ARM 模板将文件上传到存储帐户,而不是关于创建存储帐户。
猜你喜欢
  • 2018-02-09
  • 1970-01-01
  • 1970-01-01
  • 2020-09-04
  • 1970-01-01
  • 2021-06-13
  • 1970-01-01
  • 2017-03-26
  • 2018-07-23
相关资源
最近更新 更多