0
0

Error: You must sign in or use a license key with Serverless Framework V.4 and later versions. Please use "serverless login".の解決方法

Last updated at Posted at 2024-10-01

Serverless Frameworkをv3系からv4系にアップグレードしたところ、デプロイワークフローで以下のエラーが出たので、解消時の手順を記載します。

$ nest build && sls deploy


✖ Error: You must sign in or use a license key with Serverless Framework V.4 and later versions. Please use "serverless login".
    at Authentication.getAuthenticatedData (file:///home/runner/.serverless/releases/4.4.3/package/dist/sf-core.js:647:10535)
    at async Authentication.resolverAuthenticate (file:///home/runner/.serverless/releases/4.4.3/package/dist/sf-core.js:649:20575)
...

エラーの原因

Serverless Framework V.4 以降、デプロイ時にCLIの認証が必要になったみたいです。このため、CI/CD環境(GitHub Actionsなど)では、自動的に認証するためにアクセスキーを設定するのが推奨されるとのことでした。

解決方法

1. Serverlessダッシュボードでアクセスキーを発行

Serverless Frameworkのダッシュボードにログインし、アクセスキーを発行します。
アクセスキーは以下のリンクから作成できます。
https://app.serverless.com/{org}/settings/accessKeys

スクリーンショット 2024-10-01 15.50.07.png

参考ドキュメント

2. GitHub Secretsにアクセスキーを登録

発行したアクセスキーをGitHub Secretsに登録します。
https://github.com/{org}/{repo}/settings/secrets/actions

スクリーンショット 2024-10-01 15.53.33.png

3. ワークフローのデプロイステップでアクセスキーを読み込む

CI/CD環境でアクセスキーを使用するため、GitHub Actionsのワークフローにアクセスキーを設定します。以下のように、デプロイステップでSERVERLESS_ACCESS_KEYを読み込むように設定します。

      - name: Setup environment
        run: |
          echo "SERVERLESS_ACCESS_KEY=${{ secrets.SERVERLESS_ACCESS_KEY }}" >> $GITHUB_ENV

      - name: Build and Deploy NestJS to Lambda
        run: yarn deploy:${{ env.ENV }}
        working-directory: ./backend
        env:
          SERVERLESS_ACCESS_KEY: ${{ env.SERVERLESS_ACCESS_KEY }}

SERVERLESS_ACCESS_KEYが適切に設定されることで、Serverless Frameworkは自動的にダッシュボードに認証し、serverless loginを手動で実行する必要がなくなります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0