aws / aws-sam-cli

CLI tool to build, test, debug, and deploy Serverless applications using AWS SAM
https://aws.amazon.com/serverless/sam/
Apache License 2.0
6.51k stars 1.17k forks source link

error deploying the template, SAM CLI requirements installed #3530

Closed mdsnabb closed 2 years ago

mdsnabb commented 2 years ago

Hello, Encoutering a "Unknown parameter in input: "DisableRollback", must be one of: ChangeSetName, StackName, ClientRequestToken" Based on previous reported issues, I pip installed all CLI requirements but still encounters the error. Thanks for your help

Full log of error: Changeset created successfully. arn:aws:cloudformation:eu-west-3:222214349693:changeSet/samcli-deploy1639556994/e077c090-daf5-4c5f-9191-ff07511eb31d

Traceback (most recent call last): File "runpy.py", line 194, in _run_module_as_main File "runpy.py", line 87, in _run_code File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli__main__.py", line 12, in cli(prog_name="sam") File "C:\Users\marcd\AppData\Roaming\Python\Python38\site-packages\click\core.py", line 829, in call return self.main(args, kwargs) File "C:\Users\marcd\AppData\Roaming\Python\Python38\site-packages\click\core.py", line 782, in main rv = self.invoke(ctx) File "C:\Users\marcd\AppData\Roaming\Python\Python38\site-packages\click\core.py", line 1259, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "C:\Users\marcd\AppData\Roaming\Python\Python38\site-packages\click\core.py", line 1066, in invoke return ctx.invoke(self.callback, ctx.params) File "C:\Users\marcd\AppData\Roaming\Python\Python38\site-packages\click\core.py", line 610, in invoke return callback(args, kwargs) File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\cli_validation\image_repository_validation.py", line 85, in wrapped return func(*args, *kwargs) File "C:\Users\marcd\AppData\Roaming\Python\Python38\site-packages\click\decorators.py", line 73, in new_func return ctx.invoke(f, obj, args, kwargs) File "C:\Users\marcd\AppData\Roaming\Python\Python38\site-packages\click\core.py", line 610, in invoke return callback(*args, kwargs) File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\telemetry\metric.py", line 157, in wrapped raise exception # pylint: disable=raising-bad-type File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\telemetry\metric.py", line 122, in wrapped return_value = func(*args, *kwargs) File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\utils\version_checker.py", line 41, in wrapped actual_result = func(args, kwargs) File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\cli\main.py", line 87, in wrapper return func(*args, **kwargs) File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\deploy\command.py", line 163, in cli do_cli( File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\deploy\command.py", line 317, in do_cli deploy_context.run() File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\deploy\deploy_context.py", line 161, in run return self.deploy( File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\commands\deploy\deploy_context.py", line 265, in deploy self.deployer.execute_changeset(result["Id"], stack_name, disable_rollback) File "C:\Program Files\Amazon\AWSSAMCLI\runtime\lib\site-packages\samcli\lib\deploy\deployer.py", line 333, in execute_changeset return self._client.execute_change_set( File "C:\Users\marcd\AppData\Roaming\Python\Python38\site-packages\botocore\client.py", line 357, in _api_call return self._make_api_call(operation_name, kwargs) File "C:\Users\marcd\AppData\Roaming\Python\Python38\site-packages\botocore\client.py", line 648, in _make_api_call request_dict = self._convert_to_request_dict( File "C:\Users\marcd\AppData\Roaming\Python\Python38\site-packages\botocore\client.py", line 696, in _convert_to_request_dict request_dict = self._serializer.serialize_to_request( File "C:\Users\marcd\AppData\Roaming\Python\Python38\site-packages\botocore\validate.py", line 293, in serialize_to_request raise ParamValidationError(report=report.generate_report()) botocore.exceptions.ParamValidationError: Parameter validation failed: Unknown parameter in input: "DisableRollback", must be one of: ChangeSetName, StackName, ClientRequestToken

awood45 commented 2 years ago

Can you show me the commands that you ran that led to this error? It may also be useful to know the version of boto3/botocore you have on your machine, as well as your SAM CLI version.

mdsnabb commented 2 years ago

Thanks for your answer, Boto3 : Version: 1.18.32 SAM CLI: Version: 1.36.0 Botocore: Version: 1.21.65 For the commands: sam deploy --guided 1) Stack Name [lambdatest]: (i leave it as default) 2) AWS Region [eu-west-3]: (i leave it as default) 3) Confirm changes before deploy [Y/n]: (i leave it as default) 4) Allow SAM CLI IAM role creation [Y/n]: (i leave it as default) 5) Disable rollback [Y/n]: n ---> I tried both Yes and No 6) HelloWorldFunction may not have authorization defined, Is this okay? [y/N]: Y 7) Save arguments to configuration file [Y/n]: (i leave it as default) 8) SAM configuration file [samconfig.toml]: (i leave it as default) 9) SAM configuration environment [default]: (i leave it as default)

Previewing CloudFormation changeset before deployment

Deploy this changeset? [y/N]:y

then goes the error

awood45 commented 2 years ago

I'm struggling to recreate this error. I'll dig around to see if there's any obvious issues in the code that might cause this to happen in some environments but not others. If you have any thoughts on anything about your environment that might be non-standard, that could be useful information.

johancar commented 2 years ago

I experienced the same issue today. Resolved it by installing python 3.8.8 and then installing the sam dependencies: ( https://www.python.org/ftp/python/3.8.8/python-3.8.8-amd64.exe ) ( https://github.com/aws/aws-sam-cli/blob/develop/requirements/base.txt )

However, I had python 3.7.3 and 3.9.6 installed. So I uninstalled it and also deleted the python folders for both versions prior to installing 3.8.8.

Not sure if the combination of python versions caused the issue, but sam deploy worked successfully immediately after the above steps.

qingchm commented 2 years ago

Hey there looking at the logs the issue is your boto client doesn't recognize the DisableRollback parameter. @mdsnabb by the boto3 version you provided, https://boto3.amazonaws.com/v1/documentation/api/1.18.32/reference/services/cloudformation.html#CloudFormation.Client.execute_change_set this parameter should already by supported, so I'm curious what is causing the issue as well. I could not reproduce the issue but I would attempt an update/re-installation of the boto libraries first. Hope this helps!

jfuss commented 2 years ago

Closing as resolved. If you are still getting this issue, move to one of our installers or upgrade boto on your local python interrupter