在使用 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 数据贡献者/所有者,但没有任何效果按预期工作。
需要一个解决方案来解决这个问题!任何帮助将不胜感激。
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
,如下所示。
参考:堆栈链接与我回答的同一问题相关