本文介绍了如何使用 Terraform 将文件从本地计算机复制到存储帐户的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经使用 Terraform 创建了一个存储帐户并在其中创建了一个文件共享.我想使用 Terraform 将一些文件从本地计算机复制到该存储帐户.那可能吗?如果是,那么如何?

这是我的代码-

provider "azurerm" {# 虽然 `version` 属性是可选的,我们建议固定到给定版本的 Provider版本 = "=2.0.0"subscription_id = "xxx-xxxx-xxxx-xxxx"租户 ID = "xxxxx-xxxxx-xxxx-xxxx"特征 {}}资源azurerm_resource_group"示例"{名称 = "azuretest"location = "西欧"}资源azurerm_storage_account"示例"{name = "asdfghjklteststorage"resource_group_name = azurerm_resource_group.example.name位置 = azurerm_resource_group.example.locationaccount_tier = "标准"account_replication_type = "LRS"}资源azurerm_storage_share"示例"{名称 = "共享名"storage_account_name = azurerm_storage_account.example.name配额 = 50ACL{id = "xxx-xxx-xxx-xxx"访问策略{权限=rwdl"开始 = "2020-05-10T09:38:21.0000000Z"到期 = "2020-07-02T10:38:21.0000000Z"}}}资源null_resource"上传文件"{供应商本地执行"{命令 = <<-EOT$storageAcct = Get-AzStorageAccount -ResourceGroupName "${azurerm_resource_group.example.name}" -Name "${azurerm_storage_account.example.name}"设置-AzStorageFileContent `-Context $storageAcct.Context `-ShareName "${azurerm_storage_share.example.name}" `-Source "C:\Users\xxx\xxx\xxx\Untitled.png" `-路径Untitled.png"EOT解释器 = ["PowerShell", "-Command"]}}
解决方案

你可以使用

有关详细信息,您可以阅读此博客.

I have created a storage account and created a file share in it too using Terraform. I want to copy some files from my local machine to that storage account using Terraform. Is that possible? If yes, then how?

Here is my code-

provider "azurerm" {
  # whilst the `version` attribute is optional, we recommend pinning to a given version of the Provider
  version = "=2.0.0"
  subscription_id = "xxx-xxxx-xxxx-xxxx"
  tenant_id = "xxxxx-xxxxx-xxxx-xxxx"
  features {}
}
resource "azurerm_resource_group" "example" {
  name     = "azuretest"
  location = "West Europe"
}
resource "azurerm_storage_account" "example" {
  name                     = "asdfghjklteststorage"
  resource_group_name      = azurerm_resource_group.example.name
  location                 = azurerm_resource_group.example.location
  account_tier             = "Standard"
  account_replication_type = "LRS"
}


resource "azurerm_storage_share" "example" {
  name                 = "sharename"
  storage_account_name = azurerm_storage_account.example.name
  quota                = 50

  acl {
    id = "xxx-xxx-xxx-xxx"

    access_policy {
      permissions = "rwdl"
      start       = "2020-05-10T09:38:21.0000000Z"
      expiry      = "2020-07-02T10:38:21.0000000Z"
    }
  }
}
resource "null_resource" "uploadfile" {

  provisioner "local-exec" {


  command = <<-EOT
  $storageAcct = Get-AzStorageAccount -ResourceGroupName "${azurerm_resource_group.example.name}" -Name "${azurerm_storage_account.example.name}"
   Set-AzStorageFileContent `
   -Context $storageAcct.Context `
   -ShareName "${azurerm_storage_share.example.name}" `
   -Source "C:\Users\xxx\xxx\xxx\Untitled.png" `
   -Path "Untitled.png"

  EOT

  interpreter = ["PowerShell", "-Command"]
  }
}

解决方案

You could use local-exec provisioner invokes a local executable after a resource is created. See upload a file to Azure file share with PowerShell.

For example,

    resource "azurerm_storage_share" "example" {
      name                 = "sharename"
      storage_account_name = azurerm_storage_account.example.name
      quota                = 50

      acl {
        id = "xxxxxxxxxxxxxxx"

        access_policy {
          permissions = "rwdl"
          start       = "2020-05-10T09:38:21.0000000Z"
          expiry      = "2020-07-02T10:38:21.0000000Z"
        }
      }
    }

    resource "null_resource" "uploadfile" {

      provisioner "local-exec" {


      command = <<-EOT
      $storageAcct = Get-AzStorageAccount -ResourceGroupName "${azurerm_resource_group.example.name}" -Name "${azurerm_storage_account.example.name}"
       Set-AzStorageFileContent `
       -Context $storageAcct.Context `
       -ShareName "${azurerm_storage_share.example.name}" `
       -Source "C:\Users\xxx\terraform\test.txt" `
       -Path "test.txt"

      EOT

      interpreter = ["PowerShell", "-Command"]
      }

}

Result

For more information, you could read this blog.

这篇关于如何使用 Terraform 将文件从本地计算机复制到存储帐户的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-28 21:10
查看更多