You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS Amplify Lambda后端的SAM模板中用参数替换MongoDB连接字符串?

AWS Amplify Lambda 替换硬编码MongoDB连接字符串为SSM参数配置方案

核心修改内容

将Lambda函数的硬编码MongoDB连接字符串,替换为AWS SSM参数存储的引用,同时为Lambda添加读取SSM参数的权限。

修正后的template.yaml片段

Resources:
  authenticateFunction:
    Type: AWS::Lambda::Function
    Properties:
      Handler: src/handlers/authenticate.handler
      Runtime: nodejs18.x
      Environment:
        Variables:
          # 引用SSM参数,替换为你的参数路径和版本号
          MONGODB_CONNECTION_STRING: !Sub '{{resolve:ssm:/amplify/your-project/env/prod/mongodb-connection-string:1}}'
      Role: !GetAtt LambdaExecutionRole.Arn

  LambdaExecutionRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service: lambda.amazonaws.com
            Action: sts:AssumeRole
      Policies:
        - PolicyName: LambdaSSMAccessPolicy
          PolicyDocument:
            Version: '2012-10-17'
            Statement:
              - Effect: Allow
                Action:
                  - ssm:GetParameter
                Resource: !Sub 'arn:aws:ssm:${AWS::Region}:${AWS::AccountId}:parameter/amplify/your-project/env/prod/mongodb-connection-string'

关键说明

  • SSM参数引用:!Sub '{{resolve:ssm:/path/to/your/parameter:version}}' 中的路径和版本号需替换为你实际创建的SSM参数路径,版本号可选(不填默认取最新版本)。
  • IAM权限:必须为Lambda执行角色添加ssm:GetParameter权限,且资源范围限定到目标SSM参数的ARN,遵循最小权限原则。
  • 提前创建SSM参数:需先在AWS SSM参数存储中创建对应的字符串类型参数(建议选安全字符串加密存储),存储你的MongoDB连接字符串。

内容的提问来源于stack exchange,提问作者Manny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 09:07:18