无法获取现有工作区:container.Client#ListBlobs: Code="ContainerNotFound"

问题描述 投票:0回答:1

在使用 terraform 脚本执行 Git-Ops 期间,总是出现以下错误。

Initializing the backend...
Initializing modules...
- application in modules/app-service
- application-insights in modules/application-insights
- cosmosdb-mongodb in modules/cosmosdb-mongodb
- key-vault in modules/key-vault
- redis in modules/redis
- storage-blob in modules/storage-blob
╷
│    Error: Failed to get existing workspaces: containers.Client#ListBlobs: Failure 
     responding to request: StatusCode=404 -- Original Error: autorest/azure: 
     Service returned an error. Status=404 Code="ContainerNotFound" Message="The 
     specified container does not exist.\nRequestId:3d028e99-601e-0063-7325- 
     0b834d000000\nTime:2023-10-30T11:39:20.9706758Z"

我尝试运行所有推荐的修复,例如

"terraform init" with either the "-reconfigure" or "-migrate-state" flags

Cli 响应: Terraform 在空目录中初始化!

Terraform 配置

terraform {
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "3.72.0"
    }
    azurecaf = {
      source  = "aztfmod/azurecaf"
      version = "1.2.26"
    }
  }

  backend "azurerm" {    
    resource_group_name  = "rg-cloud-sample-us"
    storage_account_name = "st001sampleus"
    container_name       = "sample-container-us-1"
    key                  = "terraform.tfstate"
    access_key           = "Je8/L4LapIu7htf+4vrKbTG6+AStiCC0Jw=="
    
}

provider "azurerm" {
  subscription_id      = "********"
  features {}
}

我给出了所有推荐的前提,如贡献者、所有者、存储 Blob 数据贡献者/所有者,但没有任何效果按预期工作。

需要一个解决方案来解决这个问题!任何帮助将不胜感激。

terraform azure-blob-storage azure-cli gitops
1个回答
0
投票
Error: Failed to get existing workspaces: containers.Client#ListBlobs: Failure 
     responding to request: StatusCode=404 -- Original Error

您遇到的错误消息表明指定的存储帐户中不存在指定的容器。权限没有问题,因为作为

contributor
应该足以将文件上传到
Azure Blob storage

我具有

subscription
级别的贡献者角色,并将
Terraform
后端文件上传到
Azure Blob

    provider "azurerm" {
      features {}
    }
    terraform {
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "3.72.0"
        }
      }
    
      backend "azurerm" {    
        resource_group_name  = "venkat"
        storage_account_name = "venkatdemo"
        container_name       = "venkat"
        key                  = "terraform.tfstate"
        access_key           = "sfetNjI1uvkWFCjZ+zAkR5OV1nxqvngjgoLneI4EdBGT7rCZIqFk+NxtPLUePv3taifhRThuNB1+AStjU+zYw=="
        
    }
    }

地形初始化 一旦我运行

terraform init
.tfstate
文件就已上传到
storage account
,如下所示。

enter image description here

参考:堆栈链接与我回答的同一问题相关

© www.soinside.com 2019 - 2024. All rights reserved.