Как я могу ссылаться на выходное значение стека без построения зависимости? - PullRequest
0 голосов
/ 06 августа 2020

У меня есть два стека CloudFormation, один для dynamodb, другой для lambda. Лямбда работает как dynamodb stream target, поэтому ему необходимо знать ARN потока таблицы DynamoDB. Поэтому я экспортировал arn из стека dynamodb и сослался на него в стеке lambda.

Работает хорошо. Однако он не позволяет мне уменьшить стек dynamodb, потому что в стеке lambda есть ссылка. Есть ли способ разрешить удаление стека dynamodb даже при наличии ссылки? Меня не волнует, работает lambda или нет. В некоторых случаях мне нужно перевернуть таблицу db и создать новую.

Ниже представлена ​​моя severless конфигурация для добавления потока Dynamodb arn на лямбда:

myHandler:
  handler: src/lambdas.myHandler
  name: myHandler
  events:
    - stream:
        type: dynamodb
        arn: 
          Fn::ImportValue: '${self:provider.dynamodbStackName}-tableStreamArn'

1 Ответ

0 голосов
/ 06 августа 2020

К сожалению, не с вашей нынешней архитектурой. Вы не можете удалить застрявший файл, экспорт которого используется другими стеками (из docs ):

После того, как другой стек импортирует выходное значение, вы не можете удалить стек, который экспортирует выходное значение или изменяет экспортированное выходное значение. Все импортированные должны быть удалены , прежде чем вы сможете удалить стек экспорта или изменить выходное значение.

Если вы не хотите тесно связывать свои стеки с помощью экспорта-импорта , вы можете удалить импорт / экспорт и передать ARN таблицы DynamoDB в качестве параметра в свой лямбда-стек. Таким образом, вы не связываете стеки, и вы сможете свободно удалять или обновлять стек DynamoDB. * в качестве параметра. Может быть проще, так как кажется, что функция более стойкая, чем таблица DynanoDB.

...