程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在没有 AWS 机密管理器的情况下在本地使用机密测试 Lambda 函数大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在没有 AWS 机密管理器的情况下在本地使用机密测试 Lambda 函数?

开发过程中遇到在没有 AWS 机密管理器的情况下在本地使用机密测试 Lambda 函数的问题如何解决?下面主要结合日常开发的经验,给出你关于在没有 AWS 机密管理器的情况下在本地使用机密测试 Lambda 函数的解决方法建议,希望对你解决在没有 AWS 机密管理器的情况下在本地使用机密测试 Lambda 函数有所启发或帮助;

我有这样的代码

Unix = 'linux'
Mac = 'darwin'
if sys.platform == Unix
   do this
elif sys.platform == Mac
   do this

我对 sys 平台进行了此检查,因为 aws 是基于 unix 的,因此如果 sys.platform = 'Mac' 然后我在本地运行。

当我尝试对这个应用程序进行 dockerize 时遇到了麻烦,因为 dockerized 版本是基于 linux 的, 所以在这个 if-else 语句中,构建将运行第一个 即使我正在构建 docker,也是 if-else 的一部分 本地容器。

是否可以在 dockerfile 中设置 sys.platform?

编辑:

问题陈述:

尝试 dockerize 一个 aws lambda 函数。为此,我需要 在本地测试 lambda 函数。

我的 Lamba 函数组合如下所示:

app
    lambda_function1
        database.py
        Helper.py
functions
    lambda_function1.py

这个lambda函数的主要目的是读取数据 从生产数据库,然后预测一些值 基于数据。

database.py
    import Helper
    ...
    class DB:
        def __init__(self):
            self.secrets = Helper.get_secrets()
            self.db_name = self.secrets.get('DB','')
            self.db_host = self.secrets.get('Host','')
            self.db_password = self.secrets.get('password','')
        ...
Helper.py
    import sys
    import boto3
    ....
    def get_secrets():
        secrets = {}
        if sys.platform == constants.MAC_PLATFORM:
            secrets = local_secrets()
            return secrets
        session = boto3.session.Session()
        clIEnt = session.clIEnt(service_name='secretsmanager',region_name='us-West-2')
        secrets = get_aws_secrets()

如您所见,如果 sys 平台是 'darwin', 那么秘密将是本地秘密。 如果 sys 平台是 'linux',那么机密将被拉取 来自 aws。

由于某种原因,我无法使用 aws 连接到数据库 由于 TCP/IP 错误,我本地 docker 构建中的秘密。 我认为这是由于我在本地没有 aws 可能有的一些奇怪的配置问题,因此我想首先使用 docker 中的本地数据库,并使用 get_local_secrets 方法 获取秘密。

有什么想法吗?

解决方法

我会使用环境变量建议并通过在运行时设置一些值在本地运行:

import os

if os.environ.get('LOCAL_TEST','false').lower().Strip() == 'true':
    secrets = local_secrets()
else:
    # use aws secrets

然后像这样运行你的容器:

docker run -e LOCAL_TEST=true your_image

大佬总结

以上是大佬教程为你收集整理的在没有 AWS 机密管理器的情况下在本地使用机密测试 Lambda 函数全部内容,希望文章能够帮你解决在没有 AWS 机密管理器的情况下在本地使用机密测试 Lambda 函数所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。