我想从 lambda 写入 RDS。由于他们都在不同的帐户中,我在他们之间创建了一个对等连接,并创建了一个秘密端点来访问它。我有一个非旋转的秘密管理器端点,我有一个像
这样的 lambda 处理程序LambdaHandler:
Type: AWS::Serverless::Function
Properties:
Handler: 'com.handle.lambda.handler.LambdaHandler::handleInputFeed'
Runtime: java8
CodeUri:
# Why are we using this instead of BATS::SAM::CodeS3Bucket
Bucket: {'Fn::If' : ['UseBatsKey', 'BATS::SAM::CodeS3Bucket', {"Fn::ImportValue" : {Ref: 'DeploymentBucketImportName'}}]}
Key: BATS::SAM::CodeS3Key
Description: Example lambda that takes an x and y value and returns the result of adding them.
Timeout: 20
Role:
Fn::GetAtt: [LambdaRole, Arn]
VpcConfig:
Fn::If:
- RunLambdaInVPC
- SecurityGroupIds: [{Ref: LambdaSecurityGroup}]
SubnetIds:
- {'Fn::ImportValue': PrivateSubnet01}
- {'Fn::ImportValue': PrivateSubnet02}
- {Ref: 'AWS::NoValue'}
如何在这个处理程序中使用秘密端点,我如何通过它来引用表?由于我是新手,任何示例代码或文档都会有所帮助。找不到。
答案 0 :(得分:2)
如果 Lambda 函数在 VPC 内运行且端点可访问,则您无需执行任何事情1。根据端点(Interface 或网关)的类型,AWS 使用了一些 DNS 技巧(AWS 为您设置的私有托管区域)来使这看起来无缝。
本质上,代码不需要知道它正在与 VPC 端点通信,这是在后台处理的。过去有几个例外让我很不爽——见脚注。如果不起作用,请确保终端节点的安全组允许来自端口 443 上的 Lambda 函数的连接。
1:IAM 和其他全球服务除外,在此您应该在实例化客户端时指定一个区域端点。