概要
sls create
して作ったサービスをデプロイしようとした時、
コマンドsls deploy
でThe stack service name 〜〜 is not valid.
というエラーが出たので、解決方法を書きます。
エラー
The stack service name "sls_go_project-dev" is not valid. A service name should only contain alphanumeric (case sensitive) and hyphens. It should start with an alphabetic character and shouldn't exceed 128 characters.
エラー文を読むとサービス名の制約が書かれていました。
- サービス名はアルファベットとハイフンだけである。
- アルファベットで始まり、128文字を超えないこと。
serverless.ymlの設定を見直しました。
原因
serverless.ymlのservice:
以降にアンダーバーを入れていたことが原因でした。
sls create
でディレクトリやその内部のファイルを一括で作成するはアラートは出ないのですが、deploy前にサービス名は変更しないといけなかったようです。
sls create
した時は下記のようにエラーは出ませんでした。(sls_go_projectというのが今回指定したプロジェクト名でした。)
$ sls create -u https://github.com/serverless/serverless-golang/ -p sls_go_project
✔ Project successfully created in "sls_go_project"
解決策
serverless.ymlのservice:
名のアンダーバーをハイフンに書き換えるとsls deploy
できました。
$ sls deploy
Deploying sls-go-project to stage dev (ap-northeast-1)
✔ Service deployed to stack sls-go-project-dev (113s)
functions:
hello: sls-go-project-dev-hello (4.3 MB)
1 deprecation found: run 'serverless doctor' for more details