Использование функции Ref for Resource in Step внутри шаблона облачной информации
У меня есть ступенчатая функция внутри облачной информации. Стек облачной информации также создает Lambdas, которые я буду использовать в качестве ресурса в функции step. У меня есть что-то вроде
TestLambda:
Type: "AWS::Lambda::Function"
Properties:
Handler: "test_lambda.lambda_handler"
Role: "arn:aws:iam::1234342334:role/Lambda"
Code:
ZipFile: !Sub |
from __future__ import print_function
import boto3
def lambda_handler(event, context):
print(event)
Runtime: "python2.7"
....
TestStateMachine:
Type: AWS::StepFunctions::StateMachine
Properties:
StateMachineName: "Test"
DefinitionString: |-
{
"StartAt": "State1",
"States": {
"State1" : {
"Type" : "Task",
"Resource" : "${!GetAtt TestLambda.Arn}",
"Next": "State2?"
},
...
...
все внутри одного шаблона облачной информации.
"SCHEMA_VALIDATION_FAILED: Value is not a valid resource ARN"
Я также пытался!GetAtt TestLambda.Arn, это не сработало. Я хочу, чтобы лямбда и степ-функция создавались внутри единого шаблона облачной информации. Пожалуйста, дайте мне знать, если есть лучший, более чистый способ сделать это.
Спасибо
1 ответ
Решение
Вы должны использовать функцию Fn::Sub для этого:
TestStateMachine:
Type: AWS::StepFunctions::StateMachine
Properties:
StateMachineName: "Test"
DefinitionString:
Fn::Sub:
|-
{
"StartAt": "State1",
"States": {
"State1" : {
"Type" : "Task",
"Resource" : "${TestLambda.Arn}",
"Next": "State2?"
},