gpt4 book ai didi

amazon-web-services - 使用 Serverless 部署 Lambda 时,您如何重用 S3 存储桶?

转载 作者:行者123 更新时间:2023-12-04 07:18:31 25 4
gpt4 key购买 nike

最近,我们采用无服务器来处理 AWS 环境中 Lambda 函数的部署,但是对于部署的每个唯一函数,都会创建一个新的 S3 存储桶。这是低效的,对于无服务器创建的每个堆栈都有一个存储桶是理想的。有没有办法从 serverless.yml 文件中做到这一点?我尝试了以下资源的 yml 文件配置,但没有成功。

1 - 将存储桶列为要在 yml 中使用的资源

resources:
Resources:
ServerlessBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: serverless-test-bucket

输出:
Serverless: Packaging service...
Serverless: Removing old service versions...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading service .zip file to S3...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
............Serverless: Deployment failed!

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

An error occurred while provisioning your stack: ServerlessBucket
- serverless-test-bucket already exists.

2 - 尝试在 yml 中引用存储桶
resources:
Resources:
ServerlessBucket:
Type: AWS::S3::Bucket
Properties:
Ref: serverless-test-bucket

输出:
Serverless: Packaging service...
Serverless: Removing old service versions...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading service .zip file to S3...
Serverless: Updating Stack...

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

Template format error: Unresolved resource dependencies
[serverless-test-bucket] in the
Resources block of the template

最佳答案

这已在最近版本的 Serverless 中添加,但是该版本破坏了某些操作系统上的部署功能,因此要使用的版本是 1.1.0。

这是在 serverless.yml 文件中通过将 deploymentBucket 添加为 provider 下的字段来完成的。
例子:

provider:
name: aws
runtime: python2.7
stage: dev
region: us-east-1
deploymentBucket: bucketName
iamRoleStatements:
- Effect: "Allow"
Action:
- "*"
Resource: "*"

关于amazon-web-services - 使用 Serverless 部署 Lambda 时,您如何重用 S3 存储桶?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39978877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com