Dynamodb 自动缩放地形导入

Posted

技术标签:

【中文标题】Dynamodb 自动缩放地形导入【英文标题】:Dynamodb Autoscaling terraform import 【发布时间】:2022-01-14 20:16:24 【问题描述】:

我已经从 terraform 创建了 dynamodb 自动缩放,我想将它导入到 terraform。但它说该对象不存在。我对其他 terraform 使用了类似的命令并且它有效。但是为此,它说不存在自动缩放。读写目标没有问题。可以导入。

命令:

terraform import aws_appautoscaling_policy.dynamodb_table_read_policy dynamodb/table/Table_v3/dynamodb:table:ReadCapacityUnits/DynamoDBReadCapacityUtilization:table/Table_v3

地形代码:

resource "aws_appautoscaling_target" "dynamodb_table_read_target" 
  max_capacity       = var.read_max_capacity
  min_capacity       = var.read_min_capacity
  resource_id        = "table/$var.table_name"
  scalable_dimension = "dynamodb:table:ReadCapacityUnits"
  service_namespace  = "dynamodb"


resource "aws_appautoscaling_policy" "dynamodb_table_read_policy" 
  name               = "DynamoDBReadCapacityUtilization:$aws_appautoscaling_target.dynamodb_table_read_target.resource_id"
  policy_type        = "TargetTrackingScaling"
  resource_id        = aws_appautoscaling_target.dynamodb_table_read_target.resource_id
  scalable_dimension = aws_appautoscaling_target.dynamodb_table_read_target.scalable_dimension
  service_namespace  = aws_appautoscaling_target.dynamodb_table_read_target.service_namespace

  target_tracking_scaling_policy_configuration 
    predefined_metric_specification 
      predefined_metric_type = "DynamoDBReadCapacityUtilization"
    

    target_value = var.read_target_util
  

错误:

aws_appautoscaling_policy.dynamodb_table_read_policy:导入自 ID “dynamodb/table/Table_v3/dynamodb:table:ReadCapacityUnits/DynamoDBReadCapacityUtilization:table/Table_v3”... aws_appautoscaling_policy.dynamodb_table_read_policy:准备好导入! 为导入准备 aws_appautoscaling_policy aws_appautoscaling_policy.dynamodb_table_read_policy:刷新 状态... [id=DynamoDBReadCapacityUtilization:table/Table_v3] ╷ │ 错误:无法导入不存在的远程对象│ │ 尝试时 将现有对象导入到 “aws_appautoscaling_policy.dynamodb_table_read_policy”,提供者 检测到不存在具有给定 id 的对象。仅已存在 可以导入对象;检查 id 是否正确并且是 与提供者的配置区域或端点相关联,或使用 "terraform apply" 为该资源创建一个新的远程对象。

【问题讨论】:

你对应的TF码是多少? 更新了 tf 代码@Marcin 还有什么是完整的、准确的错误信息? 对不起。在这里更新 【参考方案1】:

您的PolicyName(即DynamoDBReadCapacityUtilization:table/Table_v3)看起来很奇怪。遗憾的是,由于您没有提供任何关于您是如何在 TF 之外创建扩展策略的信息,我建议您运行:

aws application-autoscaling describe-scaling-policies  --service-namespace dynamodb

并验证PolicyName

【讨论】:

感谢您的帮助,奇怪的是它没有自动缩放,只有目标和索引自动缩放策略。但在控制台中,它确实显示启用了自动缩放策略 从控制台创建的策略名称与我提供的不同。 AWS 命令​​是知道确切名称的唯一方法。这个命令对我有很大帮助。谢谢

以上是关于Dynamodb 自动缩放地形导入的主要内容,如果未能解决你的问题,请参考以下文章

通过 CloudFormation 为现有表添加自动缩放到 AWS DynamoDB

DynamoDB 使用 Cloudformation 自动扩展

Terraform + Dynamodb - 了解 aws_appautoscaling_target 和 aws_appautoscaling_policy

将拼花地板转换为json以进行dynamodb导入

从S3中导入数据到Dynamodb

如何在使用 EMR/Hive 将数据从 S3 导入 DynamoDB 时处理包含在引号 (CSV) 中的字段