【发布时间】:2021-12-21 00:32:06
【问题描述】:
我有一个通过无服务器框架部署的 AWS Lambda 应用程序。它需要一个数据库,即我在 serverless.yaml 的 resources 部分中包含的 CloudFormation。
在对 VPC、子网和安全组了解最少的情况下,我的目标如下:
- 使用
serverless deploys 创建/更新 MySQL RDS 实例。 - Lambda 应用程序中的函数应该能够访问数据库。
- 数据库应该可以通过密码公开访问,这样我就可以从我的计算机连接 MySQL 工具,例如 Sequel Ace。
到目前为止我所做的尝试:
我已尝试使用以下无服务器配置进行此操作。它创建了数据库,但不满足 #2 和 #3。
我还尝试将 serverless.yaml 中的 provider.vpc.securityGroupIds 和 provider.vpc.subnetIds 设置为 RDS 实例使用的相同,但无济于事。
serverless.yaml
(相关部分)
service: myapp
provider:
name: aws
runtime: provided.al2
lambdaHashingVersion: 20201221
functions:
console:
handler: bin/console
timeout: 120 # in seconds
layers:
- ${bref:layer.php-80} # PHP
- ${bref:layer.console} # The "console" layer
resources:
Resources:
# RDS instance
ProductDatabase:
Type: AWS::RDS::DBInstance
Properties:
AllocatedStorage: 5
DBInstanceClass: db.t3.micro
DBName: myapp
Engine: mysql
EngineVersion: 8.0.25
MasterUsername: myappuser
MasterUserPassword: redacted
PubliclyAccessible: true
【问题讨论】:
标签: aws-lambda amazon-rds serverless-framework amazon-vpc aws-serverless