Ссылка на ARN (созданный в стеке CDK) в коде выполнения Lambda - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть стек CDK, который создает как лямбда, так и тему SNS. Политики настроены так, чтобы разрешить лямбда-публикацию в теме SNS.

Я с трудом пытаюсь указать ARN для темы в моем лямбда-коде времени выполнения, поскольку он технически еще не создан, просто в стеке.

Как я могу ссылаться на ARN для темы в лямбда-коде, чтобы лямбда-публикация в теме? Лямбда написана на питоне. Я использую метод fromAsset (https://docs.aws.amazon.com/cdk/api/latest/docs/aws-lambda-readme.html), чтобы указать мой лямбда-код времени выполнения в моем стеке.

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

1 Ответ

0 голосов
/ 10 ноября 2019

Вы можете передать свой тематический 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"
)
...