AWS Lambda:在哪里存储临时机密数据?

2024-06-26 00:19:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用AWS Lambda和SQS触发器。我的Lambda函数从SQS获取数据并将其发送到外部源。此外部源需要身份验证。因此,在发送数据之前,我的函数将获得两个AWS SSM参数—key data expiration和API key。随着密钥数据过期,我的Lambda理解-我们是否应该更新API密钥

现在我开始出现以下错误:

[ERROR] ClientError: An error occurred (ThrottlingException) when calling the GetParameter operation (reached max retries: 4): Rate exceeded

我永远不知道我将在SQS中获得多少数据,所以,看起来有时候我获取数据的频率太高了

我的问题是——我如何解决这个问题?我可以开始使用哪种AWS服务或方式来代替AWS SSM?是否可以在AWS Lamdas之间缓存数据


Tags: 数据lambdakey函数身份验证awsapidata
1条回答
网友
1楼 · 发布于 2024-06-26 00:19:22

是的,您可以在Lambda函数中缓存数据

创建AWS Lambda函数时,将在容器中设置该函数。第一次创建容器时,将运行处理程序函数以外的Lambda函数中运行的任何代码。例如,此代码可以从SSM检索参数,并将其存储在Python程序中的全局变量中

然后,当调用Lambda函数时,将调用Handler函数,它可以访问全局变量

(或者,处理程序函数可以检查数据是否被提取到全局变量中,而不是在容器设置时检索数据,如果没有,则可以从SSM中提取参数。类似的活动,但在这种情况下,它在处理程序中运行,而不是在处理程序的外部运行。)

要阅读有关此主题的更多信息,请参阅:AWS Lambda execution environment - AWS Lambda

另一个选项是为参数存储启用更高的吞吐量限制。见:AWS Systems Manager Now Supports Use of Parameter Store at Higher API Throughput

或者,你可以考虑使用<强> AWS秘密管理器< /强>。见:AWS Secrets Manager now supports larger size for secrets and resource polices and higher request rate for GetSecretValue API

相关问题 更多 >