问题描述
我想从CloudFormation模板中提取特定字段。具体来说,我正在使用CDK创建一个堆栈,其中有一个StepFunction资源,其模板内的定义如下所示:
"MyStateMachineE7CD0EAE": {
"Type": "AWS::StepFunctions::StateMachine","Properties": {
"RoleArn": {
"Fn::GetAtt": [
"MyStateMachineRoleEC8990B2","Arn"
]
},"DeFinitionString": {
"Fn::Join": [
"",[
"{\"StartAt\": ...part of state machine deFinition here...,\"Resource\":\"arn:",{
"Ref": "AWS::Partition"
},":states:::lambda:invoke\",\"Parameters\":{\"FunctionName\":\"",{
"Fn::GetAtt": [
"SingletonLambda2a860ff582bf4d828a504282814af94c7CEF2D65","Arn"
]
},"...remainder of state machine deFinition here...}"
]
]
},"LoggingConfiguration": {
"Destinations": [
{
"CloudWatchLogsLogGroup": {
"LogGroupArn": {
"Fn::GetAtt": [
"MyStatemachineLogGroup2DEF8C9E","Arn"
]
}
}
}
],"IncludeExecutionData": true,"Level": "ALL"
},"StateMachineType": "STANDARD"
},"DependsOn": [
"MyStateMachineRoleDefaultPolicy4C064A65","MyStateMachineRoleEC8990B2"
],"Metadata": {
"aws:cdk:path": "some/path/here"
}
}
当存在字符串数组时,DeFinitionString
由对Fn:Join
的调用组成,其中一些字符串是对其他CloudFormation资源的引用。取决于StateMachine定义的复杂程度,可以有很多这样的引用。
我希望能够使用StepFunctions Local来测试通过StepFunctions状态机的数据流,特别是要检查InputPath和ResultSelector数据输入和输出,作为对某些集成测试的一部分状态机整体。 StepFunction本地CLI工具需要输入一个字符串,该字符串是DeFinitionString
字段的求值。
是否可以通过CloudFormation客户端API从CloudFormation模板中提取字段?除非绝对必要,否则我不想直接尝试解析JSON。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)