gpt4 book ai didi

amazon-web-services - 我可以为暂存和释放资源以不同的方式参数化 AWS lambda 函数吗?

转载 作者:行者123 更新时间:2023-12-04 08:19:50 24 4
gpt4 key购买 nike

我有一个由 S3 put 事件调用的 Lambda 函数,该函数又需要处理对象并写入 RDS 上的数据库。我想在我的暂存堆栈中进行测试,这意味着我有一个单独的存储桶、RDS 上的不同数据库端点和单独的 IAM 角色。

我知道如何手动(在控制台中)配置 lambda 函数的事件源和 IAM 内容,并且我已经阅读了有关 lambda 别名和版本的信息,但我没有看到任何支持提供操作参数(如目标名称数据库)基于每个别名。因此,当我对函数进行更改时,现在看起来我需要一个单独的函数副本用于暂存和生产,并且我必须手动使它们保持同步。代码中的所有逻辑都是相同的,虽然我在调用函数时获取源存储桶和 key 作为函数的参数,但我目前没有办法传入目标内容。

对于目标数据库信息,我可以在函数体中有一个 switch 语句来检查原始 S3 存储桶并做出决定,但我讨厌让每个函数都必须在内部保留该映射。不过,这不适用于数据库凭证或 IAM 策略。

我想我可以使用 SDK 自动执行所有或大部分操作。有没有人为 Lambda 的持续集成式部署设置了类似的东西,或者有没有我错过的更简单的方法?

最佳答案

我找到了使用 Lambda function aliases 的解决方法.鉴于 context object ,我可以得到invoked_function_arn属性,最后有别名(如果有)。

    arn_string = context.invoked_function_arn       
alias = arn_string.split(':')[-1]

然后,我只需将别名用作 config.py 模块中 dict 的索引,就可以开始了。
config[alias].host
config[alias].database

我并不疯狂的一件事是我每次都必须从别名调用我的函数,现在我不能在不影响此方案的情况下将别名用于任何其他目的。在上下文对象中明确支持用户参数会很好。

关于amazon-web-services - 我可以为暂存和释放资源以不同的方式参数化 AWS lambda 函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33675984/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com