hashicorp / terraform-provider-aws

The AWS Provider enables Terraform to manage AWS resources.
https://registry.terraform.io/providers/hashicorp/aws
Mozilla Public License 2.0
9.87k stars 9.21k forks source link

r/aws_dms_endpoint: diff in `extra_connection_attributes` present when configured with `s3_settings` #19501

Open anGie44 opened 3 years ago

anGie44 commented 3 years ago

Community Note

Terraform CLI and Terraform AWS Provider Version

Affected Resource(s)

Terraform Configuration Files

Please include all Terraform configurations required to reproduce the bug. Bug reports without a functional reproduction may be closed without investigation.

resource "aws_dms_endpoint" "dms_endpoint" {
  endpoint_id                 = random_pet.p.id
  endpoint_type               = "target"
  engine_name                 = "s3"
  ssl_mode                    = "none"
  extra_connection_attributes = "addColumnName=true;cdcMaxBatchInterval=600;DataFormat=parquet;datePartitionEnabled=false;maxFileSize=1048576;parquetTimestampInMillisecond=true;timestampColumnName=DMS_LOAD_TIME;"
  s3_settings {
    bucket_folder = "testfolder"
    csv_delimiter = ","
    bucket_name = "mybucket"
    service_access_role_arn = aws_iam_role.iam_role.arn
    compression_type = "GZIP"
    csv_row_delimiter = " "
  }
  tags = {
    Name   = random_pet.p.id
    Update = "to-update"
    Remove = "to-remove"
  }
  depends_on = [aws_iam_role_policy.dms_s3_access]
}

Expected Behavior

Actual Behavior

aws_dms_endpoint.dms_endpoint: Refreshing state... [id=sharing-poodle]

Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  ~ update in-place

Terraform will perform the following actions:

  # aws_dms_endpoint.dms_endpoint will be updated in-place
  ~ resource "aws_dms_endpoint" "dms_endpoint" {
      ~ extra_connection_attributes = "addColumnName=true;bucketFolder=testfolder;bucketName=mybucket;cdcMaxBatchInterval=600;compressionType=GZIP;csvDelimiter=,;csvRowDelimiter= ;DataFormat=parquet;datePartitionEnabled=false;maxFileSize=1048576;parquetTimestampInMillisecond=true;timestampColumnName=DMS_LOAD_TIME;" -> "addColumnName=true;cdcMaxBatchInterval=600;DataFormat=parquet;datePartitionEnabled=false;maxFileSize=1048576;parquetTimestampInMillisecond=true;timestampColumnName=DMS_LOAD_TIME;"
        id                          = "sharing-poodle"
        tags                        = {
            "Name"   = "sharing-poodle"
            "Remove" = "to-remove"
            "Update" = "to-update"
        }
        # (6 unchanged attributes hidden)

        # (1 unchanged block hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

Steps to Reproduce

  1. terraform apply
  2. terraform plan

References

ewbankkit commented 3 years ago

Maybe related: