amazon-web-services - 如何通过 id 获取最新的共享 AWS RDS 快照?

标签 amazon-web-services terraform amazon-rds aws-cli terraform-provider-aws

我在 AWS RDS 上有 2 个数据库,一个用于 stage一个用于 production跨 2 个帐户。我正在尝试复制 production 中的数据至 stage每x天。我的计划是在 production 中制作最新自动备份快照的副本。并分享到 stagestage中创建数据库之前的帐户使用来自 production 的共享快照.一切都很顺利,直到我遇到了我认为是错误的问题,但很可能是我犯了错误。

当我尝试获取 ID 为 abcd 的最新共享快照时在 Terraform 中与 data "aws_db_snapshot" ,我没有结果。

data "aws_db_snapshot" "latest_prod_snapshot" {
  db_instance_identifier = "abcd"
  snapshot_type          = "shared"
  include_shared         = "true"
  most_recent            = "true"
}

然后我决定试用 AWS CLI。当我运行这个...
aws rds describe-db-snapshots --snapshot-type shared --include-shared
……我明白了……
{
    "DBSnapshots": [
        {
            "MasterUsername": "root", 
            "LicenseModel": "general-public-license", 
            "InstanceCreateTime": "2018-01-13T00:00:00.000Z", 
            "Engine": "mysql", 
            "VpcId": "vpc-0000000000000000", 
            "SourceRegion": "us-east-1", 
            "AllocatedStorage": 20, 
            "Status": "available", 
            "PercentProgress": 100, 
            "SourceDBSnapshotIdentifier": "arn:aws:rds:us-east-1:000000000000:snapshot:rds:abcd-2020-01-13-00-00", 
            "DBSnapshotIdentifier": "arn:aws:rds:us-east-1:000000000000:snapshot:rds:abcd-2020-01-13-00-00", 
            "DBSnapshotArn": "arn:aws:rds:us-east-1:000000000000:snapshot:rds:abcd-2020-01-13-00-00", 
            "EngineVersion": "5.6.41", 
            "ProcessorFeatures": [], 
            "OptionGroupName": "default:mysql-5-6", 
            "SnapshotCreateTime": "2020-01-13T00:00:00.000Z", 
            "AvailabilityZone": "us-east-1b", 
            "StorageType": "gp2", 
            "Encrypted": false, 
            "IAMDatabaseAuthenticationEnabled": false, 
            "DbiResourceId": "db-AAAAAAAAAAAAAAAAAAAAAAAAA", 
            "SnapshotType": "shared", 
            "Port": 3306, 
            "DBInstanceIdentifier": "abcd"
        }
    ]
}

......这是我所期望的。查看响应,我希望数据库实例 ID 为 abcd但是当我运行这个...
aws rds describe-db-snapshots --snapshot-type shared --include-shared --db-instance-identifier abcd
... 或这个...
aws rds describe-db-snapshots --snapshot-type shared --include-shared --filters Name=db-instance-id,Values=abcd
……我明白了……
{
    "DBSnapshots": []
}

......这不是我所期望的。这是一个错误还是我做错了什么?我查看了他们的文档,但我可能错过了一些东西。

最佳答案

在我们等待 AWS 解决此问题的同时。以下是您可以做的一些解决方法:

  • stage帐户复制共享快照并使用副本而不是共享。
  • 在 Terraform 中,回滚到较旧的提供程序版本。
  • 2.27为我工作
    provider "aws" {
      version                 = "2.27.0"
    }
    

    关于amazon-web-services - 如何通过 id 获取最新的共享 AWS RDS 快照?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60085106/

    相关文章:

    json - 下载托管在Elastic beantalk上的文件

    Azure 门户显示错误的服务主体对象 ID

    amazon-web-services - 如何在cloudformation中访问EC2实例的IP

    ruby-on-rails - Elasticsearch::Transport::Transport::Errors::Forbidden: [403] 发送超过 1200 个字符的文本字段时出错

    aws-lambda - terraform 中的文件功能未检测到路径中的文件

    javascript - Node-Mysql抛出连接超时

    mysql - LOAD DATA LOCAL INFILE 在 RDS 中不起作用

    python - Pyspark - 基于数据框中的 2 列的不同记录

    html - 单击按钮时图像缩放

    terraform - 如何从 Terraform 中的 map 中删除与键值匹配的值