如何摆脱无服务器“警告:根目录遇到无效配置:无法识别的属性'deploymentBucket'”

问题描述 投票:0回答:3

我有一个在无服务器框架版本 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"
aws-lambda config serverless serverless-framework compiler-warnings
3个回答
0
投票

该警告意味着

deploymentBucket
属性未被识别,因此它没有执行您认为应该执行的操作。

根据 serverless 文档

deploymentBucket
应该是
provider
下的属性,而不是根属性。


0
投票

我可以通过将

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 的提示。


0
投票

还尝试更新到最新版本的无服务器,在我的情况下,某些密钥在旧版本中无法识别

© www.soinside.com 2019 - 2024. All rights reserved.