Aws-sam-cli: error : 'dict' object has no attribute 'upload_with_dedup

Created on 2 Dec 2020  路  10Comments  路  Source: aws/aws-sam-cli

Description:

Not able to deploy using sam deploy with paramaters

Steps to reproduce:

      python -m pip install --upgrade pip
      pip install aws-sam-cli==1.13.1
      sam deploy \
    --parameter-overrides $parameters \
    --capabilities CAPABILITY_IAM \
    --stack-name ${SERVICE} \
    --s3-bucket $DEPLOYMENT_BUCKET \
    --s3-prefix  ${SERVICE} \
    --no-fail-on-empty-changeset

Observed result:

error stacktrace

include_transform_export_handler
template_dict["Parameters"]["Location"] = uploader.upload_with_dedup(abs_include_location)
AttributeError: 'dict' object has no attribute 'upload_with_dedup'

Expected result:

downgrading to 1.12.0 works, expecting it to run as i dont see any changes to config or deploy command.

Additional environment details (Ex: Windows, Mac, Amazon Linux etc)

  1. OS: ubuntu
  2. sam --version: 1.13.1

Add --debug flag to command you are running

stagbug-repro

Most helpful comment

I'm Facing the same Issue on 1.13.1

All 10 comments

I'm also seeing this when I run sam package.

sam package --output-template-file .\packaged.yaml --s3-bucket <MY_BUCKET> --profile default --debug 2020-12-02 11:31:15,179 | Telemetry endpoint configured to be https://aws-serverless-tools-telemetry.us-west-2.amazonaws.com/metrics 2020-12-02 11:31:15,179 | Telemetry endpoint configured to be https://aws-serverless-tools-telemetry.us-west-2.amazonaws.com/metrics 2020-12-02 11:31:15,180 | Sending Telemetry: {'metrics': [{'templateWarning': {'awsProfileProvided': True, 'debugFlagProvided': True, 'region': '', 'warningName': 'CodeDeployWarning', 'warningCount': 0, 'requestId': 'a411e19e-1e67-4f82-a720-1b166a0946c5', 'installationId': 'd9024855-b3ba-41ab-9623-e6758d79650f', 'sessionId': '3f26609f-c9f4-428f-80ee-5604f3e5150e', 'executionEnvironment': 'CLI', 'pyversion': '3.9.0', 'samcliVersion': '1.13.1'}}]} 2020-12-02 11:31:15,603 | Telemetry response: 200 2020-12-02 11:31:15,604 | Sending Telemetry: {'metrics': [{'templateWarning': {'awsProfileProvided': True, 'debugFlagProvided': True, 'region': '', 'warningName': 'CodeDeployConditionWarning', 'warningCount': 0, 'requestId': '23c3b4fc-c0b4-4951-bb4d-e9dc63941f41', 'installationId': 'd9024855-b3ba-41ab-9623-e6758d79650f', 'sessionId': '3f26609f-c9f4-428f-80ee-5604f3e5150e', 'executionEnvironment': 'CLI', 'pyversion': '3.9.0', 'samcliVersion': '1.13.1'}}]} 2020-12-02 11:31:15,968 | Telemetry response: 200 2020-12-02 11:31:16,144 | Sending Telemetry: {'metrics': [{'commandRun': {'awsProfileProvided': True, 'debugFlagProvided': True, 'region': '', 'commandName': 'sam package', 'duration': 964, 'exitReason': 'AttributeError', 'exitCode': 255, 'requestId': '5c89e610-2e78-431b-b220-4f3a39e437fc', 'installationId': 'd9024855-b3ba-41ab-9623-e6758d79650f', 'sessionId': '3f26609f-c9f4-428f-80ee-5604f3e5150e', 'executionEnvironment': 'CLI', 'pyversion': '3.9.0', 'samcliVersion': '1.13.1'}}]} 2020-12-02 11:31:16,514 | HTTPSConnectionPool(host='aws-serverless-tools-telemetry.us-west-2.amazonaws.com', port=443): Read timed out. (read timeout=0.1) Traceback (most recent call last): File "c:\python39\lib\runpy.py", line 197, in _run_module_as_main return _run_code(code, main_globals, None, File "c:\python39\lib\runpy.py", line 87, in _run_code exec(code, run_globals) File "C:\Python39\Scripts\sam.exe\__main__.py", line 7, in <module> File "c:\python39\lib\site-packages\click\core.py", line 829, in __call__ return self.main(*args, **kwargs) File "c:\python39\lib\site-packages\click\core.py", line 782, in main rv = self.invoke(ctx) File "c:\python39\lib\site-packages\click\core.py", line 1259, in invoke return _process_result(sub_ctx.command.invoke(sub_ctx)) File "c:\python39\lib\site-packages\click\core.py", line 1066, in invoke return ctx.invoke(self.callback, **ctx.params) File "c:\python39\lib\site-packages\click\core.py", line 610, in invoke return callback(*args, **kwargs) File "c:\python39\lib\site-packages\click\decorators.py", line 73, in new_func return ctx.invoke(f, obj, *args, **kwargs) File "c:\python39\lib\site-packages\click\core.py", line 610, in invoke return callback(*args, **kwargs) File "c:\python39\lib\site-packages\samcli\lib\telemetry\metrics.py", line 148, in wrapped raise exception # pylint: disable=raising-bad-type File "c:\python39\lib\site-packages\samcli\lib\telemetry\metrics.py", line 114, in wrapped return_value = func(*args, **kwargs) File "c:\python39\lib\site-packages\samcli\lib\telemetry\metrics.py", line 63, in wrapped return func(*args, **kwargs) File "c:\python39\lib\site-packages\samcli\commands\package\command.py", line 141, in cli do_cli( File "c:\python39\lib\site-packages\samcli\commands\package\command.py", line 198, in do_cli package_context.run() File "c:\python39\lib\site-packages\samcli\commands\package\package_context.py", line 118, in run exported_str = self._export(self.template_file, self.use_json) File "c:\python39\lib\site-packages\samcli\commands\package\package_context.py", line 133, in _export exported_template = template.export() File "c:\python39\lib\site-packages\samcli\lib\package\artifact_exporter.py", line 222, in export self.template_dict = self.export_global_artifacts(self.template_dict) File "c:\python39\lib\site-packages\samcli\lib\package\artifact_exporter.py", line 156, in export_global_artifacts self.export_global_artifacts(val) File "c:\python39\lib\site-packages\samcli\lib\package\artifact_exporter.py", line 156, in export_global_artifacts self.export_global_artifacts(val) File "c:\python39\lib\site-packages\samcli\lib\package\artifact_exporter.py", line 156, in export_global_artifacts self.export_global_artifacts(val) [Previous line repeated 1 more time] File "c:\python39\lib\site-packages\samcli\lib\package\artifact_exporter.py", line 154, in export_global_artifacts template_dict[key] = GLOBAL_EXPORT_DICT[key](val, self.uploader, self.template_dir) File "c:\python39\lib\site-packages\samcli\lib\package\packageable_resources.py", line 461, in include_transform_export_handler template_dict["Parameters"]["Location"] = uploader.upload_with_dedup(abs_include_location) AttributeError: 'dict' object has no attribute 'upload_with_dedup'

Got the same error with this command and SAM 1.13.1:

sam package --s3-bucket "${BUCKET}" --region "${REGION}" --output-template-file "template-${REGION}.yaml"

Exactly same error. Command:

sam package \
    --template-file template.yaml \
    --output-template-file packaged.yaml \
    --s3-bucket MY_BUCKET \
    --s3-prefix sam-build \
    --image-repository MY_ECR

Edit (add formatted stack trace):

Traceback (most recent call last):
--
128 | File "/root/.pyenv/versions/3.8.3/bin/sam", line 8, in <module>
129 | sys.exit(cli())
130 | File "/root/.pyenv/versions/3.8.3/lib/python3.8/site-packages/click/core.py", line 829, in __call__
131 | return self.main(*args, **kwargs)
132 | File "/root/.pyenv/versions/3.8.3/lib/python3.8/site-packages/click/core.py", line 782, in main
133 | rv = self.invoke(ctx)
134 | File "/root/.pyenv/versions/3.8.3/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
135 | return _process_result(sub_ctx.command.invoke(sub_ctx))
136 | File "/root/.pyenv/versions/3.8.3/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
137 | return ctx.invoke(self.callback, **ctx.params)
138 | File "/root/.pyenv/versions/3.8.3/lib/python3.8/site-packages/click/core.py", line 610, in invoke
139 | return callback(*args, **kwargs)
140 | File "/root/.pyenv/versions/3.8.3/lib/python3.8/site-packages/click/decorators.py", line 73, in new_func
141 | return ctx.invoke(f, obj, *args, **kwargs)
142 | File "/root/.pyenv/versions/3.8.3/lib/python3.8/site-packages/click/core.py", line 610, in invoke
143 | return callback(*args, **kwargs)
144 | File "/root/.pyenv/versions/3.8.3/lib/python3.8/site-packages/samcli/lib/telemetry/metrics.py", line 148, in wrapped
145 | raise exception  # pylint: disable=raising-bad-type
146 | File "/root/.pyenv/versions/3.8.3/lib/python3.8/site-packages/samcli/lib/telemetry/metrics.py", line 114, in wrapped
147 | return_value = func(*args, **kwargs)
148 | File "/root/.pyenv/versions/3.8.3/lib/python3.8/site-packages/samcli/lib/telemetry/metrics.py", line 63, in wrapped
149 | return func(*args, **kwargs)
150 | File "/root/.pyenv/versions/3.8.3/lib/python3.8/site-packages/samcli/commands/package/command.py", line 141, in cli
151 | do_cli(
152 | File "/root/.pyenv/versions/3.8.3/lib/python3.8/site-packages/samcli/commands/package/command.py", line 198, in do_cli
153 | package_context.run()
154 | File "/root/.pyenv/versions/3.8.3/lib/python3.8/site-packages/samcli/commands/package/package_context.py", line 118, in run
155 | exported_str = self._export(self.template_file, self.use_json)
156 | File "/root/.pyenv/versions/3.8.3/lib/python3.8/site-packages/samcli/commands/package/package_context.py", line 133, in _export
157 | exported_template = template.export()
158 | File "/root/.pyenv/versions/3.8.3/lib/python3.8/site-packages/samcli/lib/package/artifact_exporter.py", line 222, in export
159 | self.template_dict = self.export_global_artifacts(self.template_dict)
160 | File "/root/.pyenv/versions/3.8.3/lib/python3.8/site-packages/samcli/lib/package/artifact_exporter.py", line 156, in export_global_artifacts
161 | self.export_global_artifacts(val)
162 | File "/root/.pyenv/versions/3.8.3/lib/python3.8/site-packages/samcli/lib/package/artifact_exporter.py", line 156, in export_global_artifacts
163 | self.export_global_artifacts(val)
164 | File "/root/.pyenv/versions/3.8.3/lib/python3.8/site-packages/samcli/lib/package/artifact_exporter.py", line 156, in export_global_artifacts
165 | self.export_global_artifacts(val)
166 | [Previous line repeated 1 more time]
167 | File "/root/.pyenv/versions/3.8.3/lib/python3.8/site-packages/samcli/lib/package/artifact_exporter.py", line 154, in export_global_artifacts
168 | template_dict[key] = GLOBAL_EXPORT_DICT[key](val, self.uploader, self.template_dir)
169 | File "/root/.pyenv/versions/3.8.3/lib/python3.8/site-packages/samcli/lib/package/packageable_resources.py", line 461, in include_transform_export_handler
170 | template_dict["Parameters"]["Location"] = uploader.upload_with_dedup(abs_include_location)
171 | AttributeError: 'dict' object has no attribute 'upload_with_dedup'

Have you guys tried to downgrade the python version? I haven't found a good guide for downgrading safely, I am on PopOS 20.04 and python version is 3.8 which the system depends on.

Also, I tried out sam-cli 1.3, there is a shared library loading error, and sam-cli 1.2 as well.

Thanks for reporting this!

Is there a template you can share for this to reproduce it?

The same happened to me a couple of hours ago (v1.13.1)... same SAM template was working before, it started failing with the same error.
Stacktrace:

Traceback (most recent call last):
  File "/usr/local/bin/sam", line 8, in <module>
    sys.exit(cli())
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/click/decorators.py", line 73, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/samcli/lib/telemetry/metrics.py", line 148, in wrapped
    raise exception  # pylint: disable=raising-bad-type
  File "/usr/local/lib/python3.8/site-packages/samcli/lib/telemetry/metrics.py", line 114, in wrapped
    return_value = func(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/samcli/commands/deploy/command.py", line 186, in cli
    do_cli(
  File "/usr/local/lib/python3.8/site-packages/samcli/commands/deploy/command.py", line 292, in do_cli
    package_context.run()
  File "/usr/local/lib/python3.8/site-packages/samcli/commands/package/package_context.py", line 118, in run
    exported_str = self._export(self.template_file, self.use_json)
  File "/usr/local/lib/python3.8/site-packages/samcli/commands/package/package_context.py", line 133, in _export
    exported_template = template.export()
  File "/usr/local/lib/python3.8/site-packages/samcli/lib/package/artifact_exporter.py", line 222, in export
    self.template_dict = self.export_global_artifacts(self.template_dict)
  File "/usr/local/lib/python3.8/site-packages/samcli/lib/package/artifact_exporter.py", line 156, in export_global_artifacts
    self.export_global_artifacts(val)
  File "/usr/local/lib/python3.8/site-packages/samcli/lib/package/artifact_exporter.py", line 156, in export_global_artifacts
    self.export_global_artifacts(val)
  File "/usr/local/lib/python3.8/site-packages/samcli/lib/package/artifact_exporter.py", line 156, in export_global_artifacts
    self.export_global_artifacts(val)
  [Previous line repeated 1 more time]
  File "/usr/local/lib/python3.8/site-packages/samcli/lib/package/artifact_exporter.py", line 154, in export_global_artifacts
    template_dict[key] = GLOBAL_EXPORT_DICT[key](val, self.uploader, self.template_dir)
  File "/usr/local/lib/python3.8/site-packages/samcli/lib/package/packageable_resources.py", line 461, in include_transform_export_handler
    template_dict["Parameters"]["Location"] = uploader.upload_with_dedup(abs_include_location)
AttributeError: 'dict' object has no attribute 'upload_with_dedup'

Same error is happening for me starting today.

Any indications on when this may be fixed?

I'm Facing the same Issue on 1.13.1

This issue has been addressed in SAM CLI 1.13.2 release.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

PhungXuanAnh picture PhungXuanAnh  路  3Comments

debuggins picture debuggins  路  4Comments

jpbarto picture jpbarto  路  4Comments

asyba picture asyba  路  3Comments

cvuijst picture cvuijst  路  3Comments