如何解决AWS Serverless 中的环境变量验证错误
当我尝试在 AWS 上部署我的服务时。它向我展示了环境变量中的验证错误。但是我的所有变量的格式都正确,因为以前它工作正常。
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).
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
我运行这个命令 sls deploy -s local 并且它的完整输出如下。
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 communicated with a thrown error.
More Info: https://www.serverless.com/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.com/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.com/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,HandlerErrorCode: InvalidRequest).
Get Support --------------------------------------------
Docs: docs.serverless.com
Bugs: github.com/serverless/serverless/issues
Issues: forum.serverless.com
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
我的无服务器安装版本详细信息
Framework Core: 2.41.2
Plugin: 5.0.0
SDK: 4.2.2
Components: 3.9.2
解决方法
基本上在我的环境变量中,存在名为 _X_AMZN_TRACE_ID
的错误格式。它与此模式 [a-zA-Z]([a-zA-Z0-9_])+
不匹配。之后,我更改了变量名称,现在可以正常工作了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。