javascript - Environment variable validation error in AWS Serverless - Stack Overflow

When I tried to deploy my service on AWS. It's showing me the Validation error in environment vari

When I tried to deploy my service on AWS. It's showing me the Validation error in environment variable. But My all variables are in the correct format because previously it was working fine.

An error occurred: AuthenticateUserLambdaFunction - Resource handler returned message: "1 validation error detected: Value at 'environment.variables' failed to satisfy constraint: Map 
keys must satisfy constraint: [Member must satisfy regular expression pattern: [a-zA-Z]([a-zA-Z0-9_])+] (Service: Lambda, Status Code: 400, Request ID: 91e93afc-3abc-49c7-b38b-c0ef7832022e, Extended Request ID: null)" (RequestToken: e0b9e74e-629f-1ce8-f0a9-f718e67fb974, HandlerErrorCode: InvalidRequest).

My Serverless.yml file content is below.

frameworkVersion: "2.35.0"
useDotenv: true
unresolvedVariablesNotificationMode: error
configValidationMode: error

plugins:
  - serverless-offline
  - serverless-plugin-git-variables
  - serverless-dotenv-plugin
  - serverless-domain-manager

custom:
  domains:
    local: local-api.carierx.app
    develop: develop-api.carierx.app
    staging: staging-api.carierx.app
    prod: api.carierx.app
  stageVariables:
    gitBranch: ${opt:stage, git:branch}
  customDomain:
    domainName: ${self:custom.domains.${self:provider.stage}}
    basePath: "administration"
    stage: ${self:provider.stage}
    createRoute53Record: true

package:
  excludeDevDependencies: true
  exclude:
    - /node_modules/** # no need to add this yourself, this plugin does it for you

provider:
  stage: ${opt:stage, git:branch}
  name: aws
  runtime: nodejs12.x
  region: ${env:AWS_REGION_CRED, 'us-east-1'}
  versionFunctions: false
  tags:
    project: rxd-administration
  lambdaHashingVersion: 20201221

functions:
  - ${file(./tenant/serverless.yml)}
  - ${file(./auth/serverless.yml)}

resources:
  Outputs:
    AuthorizeUserLambdaFuncExport:
      Value:
        # Ref: SharedLambdaLayer
        Ref: AuthorizeUserLambdaFunction
      Export:
        Name: AuthorizeUserLambdaFunction

I run this mand sls deploy -s local and it's plete output is below.

Serverless: Running "serverless" installed locally (in service node_modules)
Serverless: DOTENV: Loading environment variables from .env.local, .env.local:
Serverless:      - STAGE
Serverless:      - SLA_DROPOFF_AFTER_MINS
Serverless:      - AWS_ACCOUNT_CRED
Serverless:      - AWS_ACCESS_KEY_ID_CRED
Serverless:      - AWS_SECRET_ACCESS_KEY_CRED
Serverless:      - AWS_REGION_CRED
Serverless:      - LOGLEVEL
Serverless:      - LYFT_REFRESH_TOKEN
Serverless:      - LYFT_ACCESS_TOKEN
Serverless:      - LYFT_CLIENT_ID
Serverless:      - LYFT_CLIENT_SECRET
Serverless:      - LYFT_WEBHOOK_VERIFICATION_KEY
Serverless:      - SMS_APPLICATION_ID
Serverless:      - SMS_REGISTERED_KEY_WORD
Serverless:      - CLIENT_APP_URL
Serverless:      - SECRET_NAME_FOR_LYFT_REFRESH_TOKEN
Serverless:      - SECRET_NAME_FOR_LYFT_ACCESS_TOKEN
Serverless:      - LYFT_ACCESS_TOKEN_ROTATION
Serverless:      - AWS_XRAY_CONTEXT_MISSING
Serverless:      - _X_AMZN_TRACE_ID
Serverless:      - PHARMACY_LOGO_URL
Serverless: Deprecation warning: CLI options definitions were upgraded with "type" property (which could be one of "string", "boolean", "multiple"). Below listed plugins do not predefine type for introduced options:
             - ServerlessOffline for "apiKey", "corsAllowHeaders", "corsAllowOrigin", "corsDisallowCredentials", "corsExposedHeaders", "disableCookieValidation", "enforceSecureCookies", "hideStackTraces", "host", "httpPort", "httpsProtocol", "lambdaPort", "noPrependStageInUrl", "noAuth", "ignoreJWTSignature", "noTimeout", "prefix", "printOutput", "resourceRoutes", "useChildProcesses", "useWorkerThreads", "websocketPort", "webSocketHardTimeout", "webSocketIdleTimeout", "useDocker", "layersDir", "dockerReadOnly", "functionCleanupIdleTimeSeconds", "allowCache", "dockerHost", "dockerHostServicePath", "dockerNetwork"
            Please report this issue in plugin issue tracker.
            Starting with next major release, this will be municated with a thrown error.
            More Info: 
Serverless: Deprecation warning: Support for "package.include" and "package.exclude" will be removed with next major release. Please use "package.patterns" instead            More Info: 
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Uploading service rxd-administration.zip file to S3 (127.64 KB)...
Serverless: Validating template...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
..............................
Serverless: Operation failed!
Serverless: View the full error output: #/stack/detail?stackId=arn%3Aaws%3Acloudformation%3Aus-east-1%3A212556752574%3Astack%2Frxd-administration-local%2F51d7b540-9dd8-11eb-a5b7-0e706f74ed45

 Serverless Error ----------------------------------------

  An error occurred: AuthenticateUserLambdaFunction - Resource handler returned message: "1 validation error detected: Value at 'environment.variables' failed to satisfy constraint: Map 
keys must satisfy constraint: [Member must satisfy regular expression pattern: [a-zA-Z]([a-zA-Z0-9_])+] (Service: Lambda, Status Code: 400, Request ID: 91e93afc-3abc-49c7-b38b-c0ef7832022e, Extended Request ID: null)" (RequestToken: e0b9e74e-629f-1ce8-f0a9-f718e67fb974, HandlerErrorCode: InvalidRequest).

  Get Support --------------------------------------------
     Docs:          docs.serverless
     Bugs:          github/serverless/serverless/issues
     Issues:        forum.serverless

  Your Environment Information ---------------------------
     Operating System:          win32
     Node Version:              12.19.0
     Framework Version:         2.35.0 (local)
     Plugin Version:            4.6.0
     SDK Version:               4.2.2
     Components Version:        3.9.2

My Serverless Installed version detail

Framework Core: 2.41.2
Plugin: 5.0.0
SDK: 4.2.2
Components: 3.9.2

When I tried to deploy my service on AWS. It's showing me the Validation error in environment variable. But My all variables are in the correct format because previously it was working fine.

An error occurred: AuthenticateUserLambdaFunction - Resource handler returned message: "1 validation error detected: Value at 'environment.variables' failed to satisfy constraint: Map 
keys must satisfy constraint: [Member must satisfy regular expression pattern: [a-zA-Z]([a-zA-Z0-9_])+] (Service: Lambda, Status Code: 400, Request ID: 91e93afc-3abc-49c7-b38b-c0ef7832022e, Extended Request ID: null)" (RequestToken: e0b9e74e-629f-1ce8-f0a9-f718e67fb974, HandlerErrorCode: InvalidRequest).

My Serverless.yml file content is below.

frameworkVersion: "2.35.0"
useDotenv: true
unresolvedVariablesNotificationMode: error
configValidationMode: error

plugins:
  - serverless-offline
  - serverless-plugin-git-variables
  - serverless-dotenv-plugin
  - serverless-domain-manager

custom:
  domains:
    local: local-api.carierx.app
    develop: develop-api.carierx.app
    staging: staging-api.carierx.app
    prod: api.carierx.app
  stageVariables:
    gitBranch: ${opt:stage, git:branch}
  customDomain:
    domainName: ${self:custom.domains.${self:provider.stage}}
    basePath: "administration"
    stage: ${self:provider.stage}
    createRoute53Record: true

package:
  excludeDevDependencies: true
  exclude:
    - /node_modules/** # no need to add this yourself, this plugin does it for you

provider:
  stage: ${opt:stage, git:branch}
  name: aws
  runtime: nodejs12.x
  region: ${env:AWS_REGION_CRED, 'us-east-1'}
  versionFunctions: false
  tags:
    project: rxd-administration
  lambdaHashingVersion: 20201221

functions:
  - ${file(./tenant/serverless.yml)}
  - ${file(./auth/serverless.yml)}

resources:
  Outputs:
    AuthorizeUserLambdaFuncExport:
      Value:
        # Ref: SharedLambdaLayer
        Ref: AuthorizeUserLambdaFunction
      Export:
        Name: AuthorizeUserLambdaFunction

I run this mand sls deploy -s local and it's plete output is below.

Serverless: Running "serverless" installed locally (in service node_modules)
Serverless: DOTENV: Loading environment variables from .env.local, .env.local:
Serverless:      - STAGE
Serverless:      - SLA_DROPOFF_AFTER_MINS
Serverless:      - AWS_ACCOUNT_CRED
Serverless:      - AWS_ACCESS_KEY_ID_CRED
Serverless:      - AWS_SECRET_ACCESS_KEY_CRED
Serverless:      - AWS_REGION_CRED
Serverless:      - LOGLEVEL
Serverless:      - LYFT_REFRESH_TOKEN
Serverless:      - LYFT_ACCESS_TOKEN
Serverless:      - LYFT_CLIENT_ID
Serverless:      - LYFT_CLIENT_SECRET
Serverless:      - LYFT_WEBHOOK_VERIFICATION_KEY
Serverless:      - SMS_APPLICATION_ID
Serverless:      - SMS_REGISTERED_KEY_WORD
Serverless:      - CLIENT_APP_URL
Serverless:      - SECRET_NAME_FOR_LYFT_REFRESH_TOKEN
Serverless:      - SECRET_NAME_FOR_LYFT_ACCESS_TOKEN
Serverless:      - LYFT_ACCESS_TOKEN_ROTATION
Serverless:      - AWS_XRAY_CONTEXT_MISSING
Serverless:      - _X_AMZN_TRACE_ID
Serverless:      - PHARMACY_LOGO_URL
Serverless: Deprecation warning: CLI options definitions were upgraded with "type" property (which could be one of "string", "boolean", "multiple"). Below listed plugins do not predefine type for introduced options:
             - ServerlessOffline for "apiKey", "corsAllowHeaders", "corsAllowOrigin", "corsDisallowCredentials", "corsExposedHeaders", "disableCookieValidation", "enforceSecureCookies", "hideStackTraces", "host", "httpPort", "httpsProtocol", "lambdaPort", "noPrependStageInUrl", "noAuth", "ignoreJWTSignature", "noTimeout", "prefix", "printOutput", "resourceRoutes", "useChildProcesses", "useWorkerThreads", "websocketPort", "webSocketHardTimeout", "webSocketIdleTimeout", "useDocker", "layersDir", "dockerReadOnly", "functionCleanupIdleTimeSeconds", "allowCache", "dockerHost", "dockerHostServicePath", "dockerNetwork"
            Please report this issue in plugin issue tracker.
            Starting with next major release, this will be municated with a thrown error.
            More Info: https://www.serverless./framework/docs/deprecations/#CLI_OPTIONS_SCHEMA
Serverless: Deprecation warning: Support for "package.include" and "package.exclude" will be removed with next major release. Please use "package.patterns" instead            More Info: https://www.serverless./framework/docs/deprecations/#NEW_PACKAGE_PATTERNS
Serverless: Packaging service...
Serverless: Excluding development dependencies...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading artifacts...
Serverless: Uploading service rxd-administration.zip file to S3 (127.64 KB)...
Serverless: Validating template...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
..............................
Serverless: Operation failed!
Serverless: View the full error output: https://us-east-1.console.aws.amazon./cloudformation/home?region=us-east-1#/stack/detail?stackId=arn%3Aaws%3Acloudformation%3Aus-east-1%3A212556752574%3Astack%2Frxd-administration-local%2F51d7b540-9dd8-11eb-a5b7-0e706f74ed45

 Serverless Error ----------------------------------------

  An error occurred: AuthenticateUserLambdaFunction - Resource handler returned message: "1 validation error detected: Value at 'environment.variables' failed to satisfy constraint: Map 
keys must satisfy constraint: [Member must satisfy regular expression pattern: [a-zA-Z]([a-zA-Z0-9_])+] (Service: Lambda, Status Code: 400, Request ID: 91e93afc-3abc-49c7-b38b-c0ef7832022e, Extended Request ID: null)" (RequestToken: e0b9e74e-629f-1ce8-f0a9-f718e67fb974, HandlerErrorCode: InvalidRequest).

  Get Support --------------------------------------------
     Docs:          docs.serverless.
     Bugs:          github./serverless/serverless/issues
     Issues:        forum.serverless.

  Your Environment Information ---------------------------
     Operating System:          win32
     Node Version:              12.19.0
     Framework Version:         2.35.0 (local)
     Plugin Version:            4.6.0
     SDK Version:               4.2.2
     Components Version:        3.9.2

My Serverless Installed version detail

Framework Core: 2.41.2
Plugin: 5.0.0
SDK: 4.2.2
Components: 3.9.2
Share Improve this question asked May 19, 2021 at 5:31 Arslan AliArslan Ali 4482 gold badges7 silver badges16 bronze badges 2
  • 1 The error message is pretty clear. You have env variables with keys that do not match [a-zA-Z]([a-zA-Z0-9_])+ somewhere. You haven't provided all the information, but _X_AMZN_TRACE_ID appears above, which would not appear to ply with that pattern. – Chase Commented May 19, 2021 at 5:47
  • @ArslanAli please either write the answer yourself and accept it or ask Chase to write an answer and accept his answer. This makes it easier for others to know that a solution has been found for your problem. – Jens Commented May 19, 2021 at 6:45
Add a ment  | 

1 Answer 1

Reset to default 4

Basically in my environment variable, there is the wrong format named _X_AMZN_TRACE_ID. It was not matching this pattern [a-zA-Z]([a-zA-Z0-9_])+. After that I had changed the variable name and now it's working fine.

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745041485a4607834.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信