Search code examples
serverlessserverless-framework

Not able to use env in severless yml?


env flag during sls deploy command but was getting

Error:
Cannot resolve serverless.yml: Variables resolution errored with:
  - Cannot resolve variable at "provider.stackName": Value not found at "env" source,
  - Cannot resolve variable at "functions.abc.name": Value not found at "env" source,
  - Cannot resolve variable at "functions.abc.environment.accid": Value not found at "env" source,
  - Cannot resolve variable at "functions.xyz.environment.principalId": Value not found at "env" source,
  - Cannot resolve variable at "functions.xyz.environment.TenantId": Value not found at "env" source

Here is my severless yml

service: azure
frameworkVersion: "3"

provider:
    name: aws
    runtime: nodejs18.x
    stackName: "${env:Environment}"

custom:
    accccccId:
        non-prod: xxxx
        prod: xxxxxx
    TenantId:
        non-prod: ${ssm:something}
    #  prod:

functions:
    abc:
        name: ${env:Environment}
        handler: index.handler
        environment:
            accountId: ${self:custom.acccId.${env:Environment}}
            principalId: "${env:Environment}"
            TenantId: ${self:custom.AzureAdTenantId.${env:Environment}}

my deploy command was

sls deploy --env Environment=dev --stage=dev

Also tried with adding useDotenv: true in severless yml


Solution

  • Do

    Environment=dev sls deploy --stage=dev