【发布时间】:2021-03-26 12:30:02
【问题描述】:
我在开发过程中使用带有serverless-s3-local 插件的无服务器框架来测试我的代码。但是,尽管处于脱机模式,但仍会写入真正的 S3 存储桶。如何在离线模式下更改我的配置以使用本地假 s3 存储桶?
相关的 serverless.yml 部分:
plugins:
- serverless-stack-output
- serverless-plugin-include-dependencies
- serverless-layers
- serverless-deployment-bucket
- serverless-s3-local
- serverless-offline
custom:
#...
s3:
bucketName: test-s3-buck
host: localhost
serverless-offline:
ignoreJWTSignature: true
httpPort: 4000
noAuth: true
directory: /tmp
resources:
Resources:
#...
Bucket:
Type: AWS::S3::Bucket
Properties:
BucketName: ${self:custom.s3.bucketName}
端点调用 S3:
import boto3
def post(event, context):
s3_path = "/test.txt"
body = "test"
encoded_string = body.encode("utf-8")
s3 = boto3.resource("s3")
bucket_name = "test-s3-buck"
s3.Bucket(bucket_name).put_object(Key=s3_path, Body=encoded_string)
response = {
"statusCode": 200,
"body": "Created."
}
return response
离线启动无服务器:
serverless offline start
【问题讨论】:
标签: amazon-s3 serverless-framework serverless-framework-offline