0

我无权访问存储帐户。我仅在容器级别获得 SAS 令牌。需要将文件(在容器中创建一个 blob)作为 terraform 中的 blob 上传到存储帐户。

这是我下面的代码。在哪里使用 SAS 令牌以便在容器中创建 blob。

data "azurerm_storage_account" "eg" {
  name                = "abc"
  resource_group_name = "xyz-rg"
}

resource "azurerm_storage_blob" "test" {
  name                   = "${local.currentdate}_${var.filename}"
  storage_account_name   = data.azurerm_storage_account.eg.name
  storage_container_name = "ctr"
  type                   = "Block"
  source                 = "./myfile.txt"
}

如果我的存储帐户在另一个订阅中,他们是否会遵循代码块。我收到ResourceNotFound错误。

resource "azurerm_storage_blob" "test" {
  provider               = azurerm.aabbxx
  name                   = "${local.currentdate}_${var.filename}"
  storage_account_name   = "mystacc"
  storage_container_name = "ctr"
  type                   = "Block"

  provisioner "local-exec" {
    command = "az storage blob upload --account-name mystacc -f ./myFile.csv -c ctr -n MyBlob --sas-token {SAS-token}"
  }
4

1 回答 1

1

简单的回答:如果您无权访问存储帐户资源,您将无法像这样管理/创建 blob。您可以将 local-exec 与 azure CLI 一起使用

像这样的东西

resource "foo" "bar" {
  provisioner "local-exec" {
    command = "az storage blob upload -f /path/to/file -c mycontainer -n MyBlob --sas-token {MY-SAS}"
  }
}

https://docs.microsoft.com/en-us/cli/azure/storage/blob?view=azure-cli-latest#az-storage-blob-upload

于 2022-02-17T15:17:55.080 回答