当前位置: 首页 > 知识库问答 >
问题:

在Lambda运行时代码中引用ARN(在CDK堆栈中创建)

勾炳
2023-03-14

我有一个CDK堆栈,它创建了λ和SNS主题。这些策略设置为允许lambda发布到SNS主题。

我很难在我的lambda运行时代码中指定主题ARN,因为它在技术上还没有创建,只是在堆栈中。

如何在Lambda代码中引用主题ARN,以便Lambda发布到该主题?Lambda是用python编写的。我正在使用fromAsset方法(https://docs.aws.amazon.com/cdk/api/latest/docs/aws-lambda-readme.html)在堆栈中指定lambda运行时代码。

sns = boto3.client('sns')
responce = sns.publish(
  TopicArn="arn would go here --- not sure what to put here w/ no arn",
  Message="my_message"
)

共有2个答案

孟茂
2023-03-14

除了@jogold的回答之外,环境变量可以通过使用创建的SNS的arn在cdk中创建。它看起来会像下面一样,

{"topic_arn":sns_topic.topicArn}

topic_arn是环境变量的名称

养研
2023-03-14

您可以将主题ARN作为环境变量传递到Lambda中

topic = sns.Topic(self, "MyTopic")

lambda.Function(
  self, "MyLambda",
  ...,
  environment={'TOPIC_ARN': topic.topic_arn}
)

然后在运行时代码中使用它:

sns = boto3.client('sns')
responce = sns.publish(
  TopicArn=os.environ.get('TOPIC_ARN'),
  Message="my message"
)
 类似资料:
  • 我的用例是: 我想为现有S3存储桶的PUT事件执行一个lambda函数。 问题是,在CloudForm或CDK中,您不能为现有存储桶添加通知,只能为已创建的存储桶添加通知。 为了解决这个问题,我尝试使用一个自定义资源,将Lambda函数添加到putda通知中。我在CloudFormation中工作得很好,但我现在正尝试使用CDK来做类似的事情。 为了模拟我在Cloud形成中拥有的内容,我需要在现有

  • 问题内容: 在这里,我有点茫然。我一直在看到这些中的数量稳定增长。我怀疑随着Droid所有者2.2升级的增加而增加的共谋杀人事件,尽管这只是一个猜测。我自己从未见过崩溃,而且市场提供的堆栈跟踪没有提及我编写的任何类。因此,我不知道从哪里开始解决问题。 因为我不知道原因,所以我也不知道要提供什么信息来帮助诊断,所以我给大家一个概括:我的应用程序是WootWatcher。它跟踪Woot.com并将新的

  • 我有一个lambda函数,它读取Dynamodb流。我已将Dynamodb流ARN从同一AWS帐户中的另一个堆栈导出。现在,在Lambda中添加eventSource时,它从表构造中请求。 裁判:https://awslabs.github.io/aws-cdk/refs/_aws-cdk_aws-lambda-event-sources.html#dynamodb-溪流 但是我有一条小溪。是否有

  • 我正在尝试调试一个棘手的核心转储(从一个-O2优化的二进制)。 被调用函数寄存器信息 : 问题是,在被调用的函数中,函数似乎没有实现任何功能。因此,我们想知道在被调用函数的反汇编中,是否看到指针被任何地方使用(被调用函数中的寄存器r12)。 我确实在一定程度上了解程序集,但所有这些代码内联让我感到困惑。 希望在取消被调用的函数反汇编方面得到一些帮助。 update: add_data在下面执行以下

  • 我有3个独立的堆栈(都在同一个帐户和区域) he AuthStack通过lambda post-confirmation trigger lambda函数进行身份验证,并向EventsBusStack发送一个新的用户事件对象 EventBusStack通过后确认lambda接收newUser对象 然而,使用CDK,我似乎无法找到一种方法来定位位于第三个堆栈中的lambda函数,即RewardsSt

  • 根据以下链接,java堆栈框架包含本地变量、操作数堆栈和当前类常量池引用。http://blog.jamesdbloom.com/JVMInternals.html 同样来自Oracle“JVM结构”第2.6节。3.“动态链接-每个帧(§2.6)包含对当前方法类型的运行时常量池(§2.5.5)的引用,以支持方法代码的动态链接。” 我还读到堆中的对象也有一个指向类数据的指针/引用。https://w