首页 > 解决方案 > 如何为 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是在秘密管理器中创建的秘密的名称,secretKey1secretKey1是具有字符串值的密钥名称。

错误:{“errorMessage”:“2021-03-31T15:29:08.598Z 01f5ded3-7658-4zb5-ae66-6f300098a6e47 任务在 3.00 秒后超时”}

有人可以建议在上面需要修复什么来完成这项工作。另外,如果我们不使用装饰器,我不确定在哪里定义 secret_name 和密钥名称。

标签: python-3.xamazon-web-servicesaws-lambdaaws-secrets-manager

解决方案


推荐阅读