类似的问题,但不在python:如何最好地从AWS CDK检索AWS SSM参数?中
嗨,我在ssm中保存一个arn,我的变量名如下所示
test-value-for-my-job-executor-new-function-lambda-arn当我试图像这样使用ssm来获得这个
from aws_cdk import aws_ssm as ssm
my_arn = ssm.StringParameter.value_from_lookup(self, "test-value-for-my-job-executor-new-function-lambda-arn")
self.scan_pre_process = _lambda.Function.from_function_arn(self, "my-job-executor", my_arn)我知道这个错误
dummy-value-for-test-value-for-my-job-executor-new-function-lambda-arn:jsii.errors.JSIIError: ARNs必须以"arn:“开头,并且至少有6个组件:
甚至我也试图增加这个问题的名称。
发布于 2022-06-29 18:56:04
value_from_lookup是语境法。它在synth时一次查找SSM参数的云端值,并在cdk.context.json中缓存它的值。上下文方法返回虚拟变量,直到它们解析为止。你的案子就是这样。CDK试图在查找之前使用my_arn。
有几个解决办法:
_lambda.Function.from_function_arn行。合成应用程序。取消对这一行的评论。这只是强制在使用值之前进行缓存。_lambda.Function.from_function_arn中。如果函数名和版本/别名是稳定的,那么硬编码没有真正的缺点。提示:使用arn方法。使用cdk.Lazy还有一个优雅的第三种选择。然而,我相信懒惰仍然在Python中被打破。。不管怎么说,下面是在打字稿中的样子:
const my_arn = cdk.Lazy.string({
produce: () =>
ssm.StringParameter.valueFromLookup(
this,
'test-value-for-my-job-executor-new-function-lambda-arn'
),
});https://stackoverflow.com/questions/72804974
复制相似问题