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

在Serverless中获取SSM参数时出现AWS凭证未找到的问题

解决Serverless部署时params中SSM变量的AWS凭证未找到问题

原因分析

Serverless框架对params字段的变量解析发生在provider配置加载之前,此时框架还未读取到provider的region和凭证配置,再加上环境变量传递可能存在的问题,导致无法获取AWS凭证访问SSM参数。

解决方案

1. 移除冗余export命令,依赖GitLab CI自动注入环境变量

你的.gitlab-ci.yml中手动export AWS凭证的操作完全多余——GitLab Runner会自动将你配置的CI/CD变量注入到环境中。手动export反而可能因变量作用域问题导致凭证未正确传递。修改script部分:

script:
    # deploy to staging env
    - sls deploy --stage staging --verbose

2. 在SSM变量中明确指定AWS区域

由于params解析早于provider配置加载,框架此时还不知道要使用的AWS区域,需要在SSM变量中显式指定:

params:
    default:
        SOME_VARIABLE: ${ssm:us-west-2:SOME_VARIABLE}

3. 将SSM变量移至provider.environment字段

如果业务允许,把变量从params移到provider.environment中,这里的变量解析会在provider配置加载完成后执行,此时凭证和region都已就绪:

provider:
  name: aws
  runtime: python3.9
  region: us-west-2
  environment:
    SOME_VARIABLE: ${ssm:SOME_VARIABLE}

4. 检查GitLab CI变量的配置状态

确认你在GitLab项目中配置的AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY变量:

  • 如果标记为受保护变量,需确保部署的分支/tag是受保护的
  • 如果标记为掩码变量,不影响使用,但需确认变量值正确无误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 16:35:20