aws / aws-sdk

Landing page for the AWS SDKs on GitHub
https://aws.amazon.com/tools/
Other
72 stars 14 forks source link

The parameter DBInstanceIdentifier is not a valid identifier because it is longer than 63 characters. #673

Closed chidifrank closed 7 months ago

chidifrank commented 1 year ago

Describe the bug

Hi,

We are not able to modify our db-cluster because the cluster identifier that was generated (because it is an optional field and we did not specify it) says it is longer than 63 characters while it is 57 characters.

Expected Behavior

input: aws rds modify-db-cluster --db-cluster-identifier <our_57_character_cluster_identifier> --engine-mode provisioned --allow-engine-mode-change --db-cluster-instance-class db.r5.xlarge

output: --> json output with corresponding values

Current Behavior

input: aws rds modify-db-cluster --db-cluster-identifier <our_57_character_cluster_identifier> --engine-mode provisioned --allow-engine-mode-change --db-cluster-instance-class db.r5.xlarge

output: --> An error occurred (InvalidParameterValue) when calling the ModifyDBCluster operation: The parameter DBInstanceIdentifier is not a valid identifier because it is longer than 63 characters.

Reproduction Steps

aws rds modify-db-cluster --db-cluster-identifier <a_57_character_cluster_identifier> --engine-mode provisioned --allow-engine-mode-change --db-cluster-instance-class db.r5.xlarge

Possible Solution

Additional Information/Context

No response

CLI version used

2.13.8

Environment details (OS name and version, etc.)

Amazon Linux, Version 2

RyanFitzSimmonsAK commented 1 year ago

Hi @chidifrank, thanks for reaching out. My initial thought is that modifying the cluster might be adding characters to that parameter, and that you're crossing 63 characters in the process. Could you provide debug logs of this behavior? You can get debug logs by adding --debug to your command, and redacting any sensitive information. Thanks!

amberkushwaha commented 1 year ago

we are not able to modify the constructed module in the given parameter and dai-betry units.also the file in the input unit is depressed by the coding conduction.

github-actions[bot] commented 1 year ago

Greetings! It looks like this issue hasn’t been active in longer than five days. We encourage you to check if this is still an issue in the latest release. In the absence of more information, we will be closing this issue soon. If you find that this is still a problem, please feel free to provide a comment or upvote with a reaction on the initial post to prevent automatic closure. If the issue is already closed, please feel free to open a new one.

moltar commented 8 months ago

Having the same issue.

Cluster ID length: 56 chars

Here's the relevant debug log, which I think should be enough for evidence and debugging.

2024-01-08 16:09:19,246 - MainThread - botocore.endpoint - DEBUG - Making request for OperationModel(name=ModifyDBCluster) with params: {'url_path': '/', 'query_string': '', 'method': 'POST', 'headers': {'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8', 'User-Agent': 'aws-cli/2.15.4 Python/3.11.6 Darwin/23.2.0 source/arm64 prompt/off command/rds.modify-db-cluster'}, 'body': {'Action': 'ModifyDBCluster', 'Version': '2014-10-31', 'DBClusterIdentifier': 'xy-xyz-core-xyz-foo', 'DBClusterInstanceClass': 'db.t3.small', 'EngineMode': 'provisioned', 'AllowEngineModeChange': 'true'}, 'url': 'https://rds.eu-west-1.amazonaws.com/', 'context': {'client_region': 'eu-west-1', 'client_config': <botocore.config.Config object at 0x1091c2590>, 'has_streaming_input': False, 'auth_type': None}}
2024-01-08 16:09:20,100 - MainThread - botocore.parsers - DEBUG - Response body:
b'<ErrorResponse xmlns="http://rds.amazonaws.com/doc/2014-10-31/"><Error><Type>Sender</Type><Code>InvalidParameterValue</Code><Message>The parameter DBInstanceIdentifier is not a valid identifier because it is longer than 63 characters.</Message></Error><RequestId>fe8f1b04-8601-4085-b8c2-fbc6502ef6d6</RequestId></ErrorResponse>'
moltar commented 8 months ago

This, btw, is straight from the docs on v1 to v2 migration, which is being now forced upon everyone, yet this is clearly not working.

https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless.modifying.html#aurora-serverless.modifying.convert

moltar commented 8 months ago

At the same time, I think it's not a CLI issue, but the AWS API is responding with that error. The raw inputs seem to be correct.

bassrock commented 8 months ago

Also having the same issue

moltar commented 8 months ago

I think I have solved the bug mystery.

The Aurora v1 cluster does not have instances. However, the instances are still there, most likely, just hidden away (abstracted) from the user.

An instance ID is probably a derivative of the cluster ID.

Perhaps something like this:

${CLUSTER_ID}-instance

During the engine mode change operation, AWS probably appends an additional suffix:

${CLUSTER_ID}-instance-provisioned

And if your cluster ID was already long, with added suffix(es), the instance ID goes over the limit.

I confirmed this by creating a snapshot of the v1 cluster with a much shorter name, and then the command worked.

moltar commented 8 months ago

@kdaily I think the issue is certainly with the API, not with the CLI, so perhaps this issue is misplaced.

kdaily commented 8 months ago

Thanks @moltar! Reopened to make sure it doesn't get missed due to being previously closed. We'll look into it.

RyanFitzSimmonsAK commented 8 months ago

Hi @moltar, thanks for your investigative work here. In the future, you should absolutely feel free to reopen issues like this where you are reproducing an issue that wasn't solved before being closed.

I've reached out to the RDS team about this behavior. In the meantime, as this is a service team issue, I'm going to transfer it to our cross-SDK repository (https://github.com/aws/aws-sdk/) for tracking. If anyone else is having this issue, feel free to add the details in this issue.

Ticket # for internal use : P112643884

gopal-tanwar commented 8 months ago

Hi @RyanFitzSimmonsAK We also getting same error.

**An error occurred (InvalidParameterValue) when calling the CreateBlueGreenDeployment operation: The parameter Filter: db-cluster-id is not a valid identifier because it is longer than 63 characters.**

Could you please help us for same? Thanks.

RyanFitzSimmonsAK commented 7 months ago

The service team has pushed a fix for this issue. Please update to the most recent version of the SDK you're using, and let me know if this behavior still occurs.

github-actions[bot] commented 7 months ago

This issue has not received a response in a while. If you want to keep this issue open, please leave a comment below and auto-close will be canceled.