[Serverless Framework] Missing required key 'Bucket' in params が出たときの対処の1つ

はじめに

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 deploysls 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のスタックを削除

新しい情報を入手したら更新します。

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.