如何在AWS CDK中将CfnJson与Lambda环境变量一起使用?

2024-09-30 10:31:00 发布

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

我试图使用.add_environment在函数定义之后向lambda函数添加环境变量

我遇到了一个解析错误。错误消息建议使用CfnJson,因此我尝试了以下操作:


appflow_name = (
    f"{project_name.lower().replace('-','_')}_"
    f"{module_name.lower().replace('-','_')}_{env_or_account}_"
    f"{sf_object_name.lower().replace('-','_')}_appflow"
)

glue_table_name = f"salesforce_object_{sf_object_name.lower()}"


...


appflow_name_resolved= core.CfnJson(
    self,
    "AppflowNameResolved",
    value=appflow_name
)

athena_convert_to_csv_lambda_function.add_environment(
    key=appflow_name_resolved,
    value=glue_table_name
)

但是现在我得到了jsii.errors.JSIIError: Expected a string, got {"$jsii.byref":"@aws-cdk/core.CfnJson@10060"}

我在网上寻找了尽可能多的CfnJson的例子,但很少有。我发现的几个例子(herehere)都将其用于dict,而不是像我尝试的那样,使用单个字符串值的lambda环境变量

有人能帮助我正确地使用CfnJson和lambda环境变量吗

我还包括了glue_table_name,因为我觉得我需要为这个值做同样的事情,所以我不知道这是否有区别

编辑:如果有帮助,则导致错误的特定值为self.account,因为原始错误说明如下:

...but it resolves to: {"Fn::Join":["",["salesforce_automation_dataflow_",{"Ref":"AWS::AccountId"},"_account_appflow"]]}


Tags: lambda函数nameaddobjectenvironment错误table

热门问题