首页 > 解决方案 > 加载参数时提高性能

问题描述

我正在使用 AWS Parameter Store 来保存要由我的 Lambda 函数(环境变量)使用的参数,实际上是 4 个参数。但是我在加载它们时观察到一些性能问题,仅加载一个参数需要 0.2 到 0.6 秒,这对于我的网络应用程序来说是很多时间。

我通过运行这个命令来测量时间

时间 aws ssm 获取参数 --name "sample_parameter"

我希望加载参数值的时间更少,因为我需要获取 4 个参数。所以这是我的问题......将参数加载为json文本是一个好习惯吗?所以我可以将所有这 4 个参数放在一个 json 对象中。调用 get 参数函数时,有什么事情可以提高性能吗?

谢谢

标签: amazon-web-servicesaws-parameter-store

解决方案


您可以使用 get-parameters 一次获取所有参数。在我的测试中,在一次调用中获取所有 4 个参数的平均时间与获取 1 的时间相同。

$ time aws ssm get-parameter --name w1
{
    "Parameter": {
        "Name": "w1",
        "Type": "String",
        "Value": "say anything",
        "Version": 1,
        "LastModifiedDate": 1566914540.044,
        "ARN": "arn:aws:ssm:us-east-1:1234567890123:parameter/w1"
    }
}

real    0m0.811s
user    0m0.509s
sys     0m0.095s

$ time aws ssm get-parameters --names w1 w2 w3 w4
{
    "Parameters": [
        {
            "Name": "w1",
            "Type": "String",
            "Value": "say anything",
            "Version": 1,
            "LastModifiedDate": 1566914540.044,
            "ARN": "arn:aws:ssm:us-east-1:1234567890123:parameter/w1"
        },
        {
            "Name": "w2",
            "Type": "String",
            "Value": "say nothing",
            "Version": 1,
            "LastModifiedDate": 1566914550.377,
            "ARN": "arn:aws:ssm:us-east-1:1234567890123:parameter/w2"
        },
        {
            "Name": "w3",
            "Type": "String",
            "Value": "say what",
            "Version": 1,
            "LastModifiedDate": 1566914561.301,
            "ARN": "arn:aws:ssm:us-east-1:1234567890123:parameter/w3"
        },
        {
            "Name": "w4",
            "Type": "String",
            "Value": "say hello",
            "Version": 1,
            "LastModifiedDate": 1566914574.716,
            "ARN": "arn:aws:ssm:us-east-1:1234567890123:parameter/w4"
        }
    ],
    "InvalidParameters": []
}

real    0m0.887s
user    0m0.561s
sys     0m0.097s

推荐阅读