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

如何通过Lambda Layer使用AWS参数与密钥扩展按路径批量获取SSM参数

用AWS参数和密钥Lambda Extension单次获取指定路径下所有SSM参数

要实现和aws ssm get-parameters-by-path --path "/service1/prod" --recursive等效的功能,你需要调用Lambda Extension的**/systemsmanager/parameters/get-by-path端点**,而非单个参数的get端点。以下是优化后的C#/.NET 6代码:

步骤1:定义响应模型类

先匹配扩展返回的响应结构,新增对应模型:

public class ParametersByPathResponse
{
    public List<Parameter> Parameters { get; set; } = new();
}

public class Parameter
{
    public string Name { get; set; } = string.Empty;
    public string Value { get; set; } = string.Empty;
}

步骤2:单次请求获取所有参数

替换原循环逻辑,发起一次请求即可:

var stage = "prod";
var awsSessionToken = Environment.GetEnvironmentVariable("AWS_SESSION_TOKEN");
var request = new RestRequest(
        "http://localhost:2773/systemsmanager/parameters/get-by-path",
        Method.Get
    )
    .AddHeader("X-Aws-Parameters-Secrets-Token", awsSessionToken)
    .AddQueryParameter("path", $"/service1/{stage}")
    .AddQueryParameter("recursive", true)
    .AddQueryParameter("withDecryption", true);

Log.Information("{@Request}", request);
var response = await restClient.ExecuteGetAsync<ParametersByPathResponse>(request);

// 将返回的参数批量添加到集合
Parameters.AddRange(response.Data.Parameters);

关键说明

  • 端点差异:get-by-path是专门用于按路径批量获取参数的接口,支持递归遍历子路径,完全对应CLI的get-parameters-by-path命令
  • 请求参数对应:
    • path:指定SSM参数的根查询路径,对应CLI的--path
    • recursive:设为true时递归获取所有子路径下的参数,对应CLI的--recursive
    • withDecryption:设为true自动解密SecureString类型参数,和原代码逻辑保持一致
  • 响应处理:返回的Parameters字段直接包含所有匹配的参数名值对,无需逐个发起请求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 20:57:07