はじめに
AWS SAM CLI を使用してsam deploy
コマンドを実行した際に「Unable to upload artifact HelloWorldFunction referenced by CodeUri parameter of HelloWorldFunction resource.」というエラーメッセージが表示され、デプロイが行えない問題の解決策を紹介します。
この方法は根本的な解決にはなりませんが、すぐにデプロイを進めたい場合に役立ちます。
動作環境と対象者
- AWS SAM CLI を Homebrew を通じてインストールしている方
- 使用バージョン:
- SAM CLI: version 1.108.0
- AWS CLI: 2.15.16, Python/3.11.7, Darwin/23.3.0, source/arm64
sam --version
SAM CLI, version 1.108.0
aws --version
aws-cli/2.15.16 Python/3.11.7 Darwin/23.3.0 source/arm64 prompt/off
エラーの再現
-
sam build
は成功しますが、sam deploy
でエラーが発生します。sam build ...(snip)... Build Succeeded sam deploy ...(snip)... Error: Unable to upload artifact HelloWorldFunction referenced by CodeUri parameter of HelloWorldFunction resource. An HTTP Client raised an unhandled exception: sequence item 0: expected str instance, bytes found
解決方法
- Homebrew を使用してインストールした AWS SAM CLI を一度アンインストールし、公式のパッケージインストーラから再インストールします
-
AWS SAM CLI のアンインストール手順
-
Homebrew を使用して AWS SAM CLI をアンインストール:
brew uninstall aws-sam-cli which sam #sam not found
-
AWS 管理のリポジトリを untap し、キャッシュをクリア:
brew untap aws/tap brew cleanup aws/tap
-
Homebrew およびフォーミュラを更新:
brew update
-
-
AWS SAM CLI のインストールパッケージを使用したダウンロード
- アンインストール後、AWS 公式サイトの指示に従い、インストールパッケージを使用して AWS SAM CLI をダウンロードしてください
補足
- 下記のように Homebrew インストーラーのメンテナンスを公式では行わなくなったので、このタイミングでインストールパッケージを使用したダウンロードに切り替えても良いかもですね。
2023 年 9 月以降、AWS では AWS で管理される AWS SAM CLI (aws/tap/aws-sam-cli) 用 Homebrew インストーラーのメンテナンスを行いません。
- 2024 年 2 月 2 日時点で、AWS SAM CLI の GitHub Issue にこの問題に似たような報告があります。(参照リンク)