#はじめに
Serverless Frameworkを使ってデプロイをした時に出たメッセージで少し解決に時間がかかったのでログの残しします。
#環境
- VirtualBox
- Ubuntu
- Serverless Framework 1.26.1
- Python
- AWS
#ログ
sls deploy
を実行したときに出力したログはこちら
user@ubuntu:~/serverlessframework$ sls deploy
Serverless: Installing requirements of requirements.txt in .serverless...
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Injecting required Python packages to package...
Serverless Error ---------------------------------------
Missing required key 'Bucket' in params
Get Support --------------------------------------------
Docs: docs.serverless.com
Bugs: github.com/serverless/serverless/issues
Forums: forum.serverless.com
Chat: gitter.im/serverless/serverless
Your Environment Information -----------------------------
OS: linux
Node Version: 9.5.0
Serverless Version: 1.26.1
#事前情報
serverless.ymlの service
を変えてデプロイをした
#対処
文献を色々漁っていたときに書かれてた内容としては、デプロイ時に作成されるS3バケットの作成に失敗している等であったため、
元々のS3バケットを削除して再実行したが、それでも同じメッセージが表示されていた。
尚、実行しているユーザのIAMポリシーはこちらであったため、権限周りは問題ないと判断。
{
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::*"
]
},
Missing required key 'Bucket' in params
が出力されたときは何度か sls deploy
や sls remove
を実行していたのですが、
その前に、 An error occurred: ServerlessDeploymentBucket - API: s3:CreateBucket Access Denied.
が出力されていたので、調べてみると CloudFormation
というキーワードが出てきたので、スタックを消してから再実行すると正常にデプロイされた。
#その他
Missing required key 'Bucket' in params
のメッセージで調べてたときに、S3バケットの上限(100)に達したときも同じメッセージがでるようなので、その辺りも疑って確認してみましたが、全然余裕がある状態でした。
#最後に
なぜこのようなことになったかまでは調べてないですが、まずは以下のことをやってみるといいかもです。
- Serverless Frameworkに渡すIAMポリシーのS3への権限周り
- S3バケットの上限(100)に達していないか
- CloudFormationのスタックを削除
新しい情報を入手したら更新します。