在 Terraform 中使用 SAS 访问存储帐户
Access storage account using SAS in terraform
我没有访问存储帐户的权限。我只获得了容器级别的 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}"
}
简单回答:如果您无权访问存储帐户资源,您将无法 manage/create 这样的 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
我没有访问存储帐户的权限。我只获得了容器级别的 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}"
}
简单回答:如果您无权访问存储帐户资源,您将无法 manage/create 这样的 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