У нас есть стек, который использует вывод другого стека с перекрестными ссылками с использованием Fn::ImportValue
в теле определения swagger.
Примечание: другие части опущены для сокращения кода
SampleApi:
Type: AWS::Serverless::Api
Properties:
StageName: Stage
Variables:
SampleFunctionName:
Fn::ImportValue:
!Sub ${OtherStackName}-SampleFunctionName
DefinitionBody:
swagger: 2.0
paths:
/sample:
get:
x-amazon-apigateway-integration:
uri:
Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:${stageVariables.SampleFunctionName}/invocations
Где ${OtherStackName}-SampleFunctionName
- это имя функции, которая импортируется из другого стека.
Теперь наша проблема в том, что мы не можем поместить его в uri
конечной точки. Cloudformation жалуется на это во время развертывания sam, говоря, что ${stageVariables.SampleFunctionName}
является недопустимым атрибутом внутри Fn :: Sub.
Я пробовал несколько способов, включая размещение всего uri
в самой переменной stage, но все же он не приходит.
Ваши мысли очень признательны!