You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Terraform在LocalStack中创建DynamoDB表一直卡在创建中

在LocalStack中使用Terraform创建DynamoDB表卡住的问题

问题场景

执行localstack start -d确认容器运行后,进入Terraform配置文件所在目录,依次执行terraform init和terraform apply,确认执行计划并输入yes后,进程一直卡在aws_dynamodb_table.users_table: Still creating...状态。曾看到有帖子提到需要初始化DynamoDB服务,但不确定该操作是否必要,希望排查表无法创建的原因。

使用的Terraform配置文件

provider "aws" {
  region                  = "us-east-1"  # Change to your desired region
  access_key              = "test"       # Access key for LocalStack
  secret_key              = "test"       # Secret key for LocalStack
  skip_credentials_validation = true
  skip_requesting_account_id = true

  endpoints {
    dynamodb = "https://localhost:4566"  # LocalStack DynamoDB endpoint
  }
}


resource "aws_dynamodb_table" "users_table" {
  name           = "UserProfileTable"
  #billing_mode   = "PROVISIONED"  # Or use "PAY_PER_REQUEST" for on-demand capacity
  read_capacity  = 5
  write_capacity = 5
  hash_key = "UserID"
  range_key = "PostID"

  attribute {
    name = "UserID"
    type = "N"
  }

  attribute {
    name = "PostID"
    type = "N"
  }

  tags = {
    Name    = "dynamodb-table-1"
    Environment = "production"
  }
}

相关组件版本

  • Localstack --version: 3.1.0
  • awslocal --version: aws-cli/1.32.31 Python/3.11.0 Darwin/23.2.0 botocore/1.34.31
  • terraform --version: Terraform v1.7.2 on darwin_arm64 + provider registry.terraform.io/hashicorp/aws v5.34.0

排查方向与解决建议

  • 修正DynamoDB端点协议:LocalStack默认使用HTTP而非HTTPS,配置中https://localhost:4566会导致请求超时,将其改为http://localhost:4566后重新执行terraform apply。
  • 验证LocalStack服务可用性:执行awslocal dynamodb list-tables测试能否正常连接DynamoDB服务;若连接失败,查看LocalStack日志(localstack logs)排查服务启动异常,比如端口占用、初始化错误。
  • 检查版本兼容性:AWS Provider v5.34.0与LocalStack 3.1.0可能存在兼容问题,可尝试降低Provider版本至v5.x早期版本,或升级LocalStack至最新稳定版后重试。
  • 调整表配置参数:显式设置billing_mode = "PROVISIONED"(当前为注释状态),或改为PAY_PER_REQUEST,验证LocalStack对不同计费模式的支持情况;同时确认哈希键、范围键的类型定义符合LocalStack的校验规则。
  • 确认容器网络映射:通过docker inspect localstack检查4566端口是否正确绑定到主机;若使用Docker Desktop,尝试用host.docker.internal替代localhost作为端点地址,避免网络映射问题。

内容的提问来源于stack exchange,提问作者Runeaway3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 23:47:36