python-3.x - 如何为 Python Lambda 使用 AWS Secrets Manager 缓存?
问题描述
我正在参考aws-secretsmanager-caching-python
文档并尝试缓存从秘密管理器中检索到的秘密,但是,由于某种原因,我总是超时而没有任何有用的错误来进一步解决这个问题。如果我从秘密管理器中检索秘密(没有缓存),我能够正确检索秘密。
我在 lambda 函数中的主要函数如下所示:
import botocore
import botocore.session
from aws_secretsmanager_caching import SecretCache, SecretCacheConfig
from cacheSecret import getCachedSecrets
def lambda_handler(event, context):
result = getCachedSecrets()
print(result)
我已经创建了 cacheSecret 如下。
from aws_secretsmanager_caching import SecretCache
from aws_secretsmanager_caching import InjectKeywordedSecretString, InjectSecretString
cache = SecretCache()
@InjectKeywordedSecretString(secret_id='my_secret_name', cache=cache, secretKey1='keyname1', secretKey2='keyname2')
def getCachedSecrets(secretKey1, secretKey2):
print(secretKey1)
print(secretKey2)
return secretKey1
在上面的代码中,my_secret_name
是在秘密管理器中创建的秘密的名称,secretKey1
和secretKey1
是具有字符串值的密钥名称。
错误:{“errorMessage”:“2021-03-31T15:29:08.598Z 01f5ded3-7658-4zb5-ae66-6f300098a6e47 任务在 3.00 秒后超时”}
有人可以建议在上面需要修复什么来完成这项工作。另外,如果我们不使用装饰器,我不确定在哪里定义 secret_name 和密钥名称。
解决方案
推荐阅读
- android - Sceneform:如何禁用表面检测并将物体放在相机前面?
- html - 两个不同 div 之间的 CSS 悬停功能
- reactjs - 如何在 reactjs 中管理供应商库
- r - 在列表列表中转置数据帧
- sql - PL SQL 查询以查找与列表中的所有值匹配的标识符列表
- swift - Dictionary 类型的计算属性的设置器
- android - 长时间延迟收到音量变化通知
- python - Python“从sklearn import svm”导致SyntaxError
- android - 找不到相应的方法处理程序“public void registerUser(android.view.View)”
- java - 在 Java 中使用字符串对文本文件中的数字进行排序