我有一个在无服务器框架版本 3.7.5 上运行的 Web 应用程序。每次部署 lambda 函数时,我都会收到此警告:
“警告:根目录遇到无效配置:无法识别的属性‘deploymentBucket’”。
我已附上下面的“serverless.yml”文件以供外部审查。我的“deploymentBucket”属性配置无效吗?我需要更改或编辑任何属性吗?
注意:部署工作正常,因为它只是一个警告,我可以继续测试我的 api 端点...我只是觉得这个警告有点麻烦,想一劳永逸地删除它。预先感谢!
这是我的 serverless.yml 文件
# Welcome to Serverless!
#
# This file is the main config file for your service.
# It's very minimal at this point and uses default values.
# You can always add more config options for more control.
# We've included some commented out config examples here.
# Just uncomment any of them to get that config option.
#
# For full config options, check the docs:
# docs.serverless.com
#
# Happy Coding!
service: poppy-seed
# app and org for use with dashboard.serverless.com
#app: your-app-name
#org: your-org-name
# You can pin your service to only deploy with a specific Serverless version
# Check out our docs for more details
frameworkVersion: '3.7.5'
provider:
name: aws
runtime: java11
timeout: 30
lambdaHashingVersion: 20201221
# you can overwrite defaults here
# stage: dev
# region: us-east-1
variable1: value1
# you can add packaging information here
package:
artifact: build/libs/poppy-seed-dev-all.jar
functions:
poppy-seed:
handler: com.serverless.lambda.Handler
# The following are a few example events you can configure
# NOTE: Please make sure to change your handler code to work with those events
# Check the event documentation for details
events:
- http:
path: "{proxy+}"
method: ANY
cors: true
deploymentBucket:
blockPublicAccess: true # Prevents public access via ACLs or bucket policies. Default is false
skipPolicySetup: false # Prevents creation of default bucket policy when framework creates the deployment bucket. Default is false
name: # Deployment bucket name. Default is generated by the framework
maxPreviousDeploymentArtifacts: 5 # On every deployment the framework prunes the bucket to remove artifacts older than this limit. The default is 5
versioning: false # enable bucket versioning. Default is false
deploymentPrefix: serverless # The S3 prefix under which deployed artifacts should be stored. Default is serverless
disableDefaultOutputExportNames: false # optional, if set to 'true', disables default behavior of generating export names for CloudFormation outputs
lambdaHashingVersion: 20201221 # optional, version of hashing algorithm that should be used by the framework
plugins:
- serverless-sam
# Resources:
# NewResource:
# Type: AWS::S3::Bucket
# Properties:
# BucketName: my-new-bucket
# Outputs:
# NewOutput:
# Description: "Description for the output"
# Value: "Some output value"
该警告意味着
deploymentBucket
属性未被识别,因此它没有执行您认为应该执行的操作。
根据 serverless 文档,
deploymentBucket
应该是 provider
下的属性,而不是根属性。
我可以通过将
deploymentBucket
属性移动到 provider
下而不是将其注册为根属性来消除此警告。修改后的serverless.yml文件附在下面:
service: poppy-seed
provider:
name: aws
runtime: java11
timeout: 30
lambdaHashingVersion: 20201221
deploymentBucket:
blockPublicAccess: true
skipPolicySetup: false
name: poppy-seed
maxPreviousDeploymentArtifacts: 5
versioning: false # enable bucket versioning. Default is false
package:
artifact: build/libs/poppy-seed-dev-all.jar
functions:
poppy-seed:
handler: com.serverless.lambda.Handler
events:
- http:
path: "{proxy+}"
method: ANY
cors: true
plugins:
- serverless-sam
另请阅读无服务器文档以获得更清晰的信息。再次感谢@NoelLlevares 的提示。
还尝试更新到最新版本的无服务器,在我的情况下,某些密钥在旧版本中无法识别