Как правило, вы можете экспортировать переменные CF, которые могут вам понадобиться в других стеках, используя Output
, например:
resources:
Resources:
NotesTable:
Type: AWS::DynamoDB::Table
Properties:
TableName: notes
# ...
Outputs:
Value:
Ref: NotesTable
Export:
Name: NotesTableName
И в другом файле прочтите их как: 'Fn::ImportValue': NotesTableName
Я использую примеры из замечательного источника: https://serverless-stack.com/chapters/cross-stack-references-in-serverless.html
Ваш пример - AppSyn c ...
Вы можете определить свои источники данных, такие как DynamoDb, в выделенный стек, а в источниках AppSyn c необходимо ссылаться на них только по имени, например:
- type: AMAZON_DYNAMODB
name: ItemSource
description: Item table
config:
tableName: ItemTable // Whatever name you used in your DynamoDb stack
Для лямбда-выражений вы должны использовать Output / import. В резольверах:
- type: AWS_LAMBDA
name: SomeLambdaSource
config:
functionName: someSource
lambdaFunctionArn:
Fn::ImportValue: SomeLambdaSource
В вашем стеке лямбда:
functions:
someSource:
name: SomeSource
handler: src/handlers/someSource.handler
resources:
Outputs:
SomeSource:
Value:
Fn::GetAtt:
- SomeSource
- Arn
Export:
Name: SomeSource