Amazon web services 步骤函数的形式。将定义字符串作为参数传递

Amazon web services 步骤函数的形式。将定义字符串作为参数传递,amazon-web-services,cloud,amazon-cloudformation,devops,aws-step-functions,Amazon Web Services,Cloud,Amazon Cloudformation,Devops,Aws Step Functions,我正在尝试为STEP函数创建一个CloudFormation。 我想将DefinitionString作为参数传递。json字符串相当大。最大上限为4096字节。如何处理参数大于上限的情况。下面给出了示例模板 { "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "An example template for a Step Functions state machine.", "Resources" : {

我正在尝试为STEP函数创建一个CloudFormation。 我想将
DefinitionString
作为参数传递。json字符串相当大。最大上限为4096字节。如何处理参数大于上限的情况。下面给出了示例模板

{
   "AWSTemplateFormatVersion" : "2010-09-09",
   "Description" : "An example template for a Step Functions state machine.",
   "Resources" : {
      "MyStateMachine" : {
         "Type" : "AWS::StepFunctions::StateMachine",
         "Properties" : {
            "StateMachineName" : "HelloWorld-StateMachine",
            "DefinitionString" : "{\"StartAt\": \"HelloWorld\", \"States\": {\"HelloWorld\": {\"Type\": \"Task\", \"Resource\": \"arn:aws:lambda:us-east-1:111122223333:function:HelloFunction\", \"End\": true}}}",
            "RoleArn" : "arn:aws:iam::111122223333:role/service-role/StatesExecutionRole-us-east-1"
         }
      }
   }
}

请问您为什么要将
DefinitionString
作为参数传递?如果你把几乎所有的事情都参数化了,这表明你在做/理解一些错误的事情。AWS CloudFormation的主要好处是您获得了如何控制定义字符串json的版本。我想单独保留json的定义。如果对定义有任何更改,我将重新运行CI设置并使用新的json更新堆栈。另外,将其单独保存会使我更易于阅读。请让我知道你的想法@Maikay那么,将
定义字符串
放入您的CloudFormation模板是什么呢?一旦您想要更改某些内容,请立即执行,将其提交/推送到您的版本控制(例如git),并手动或自动更新堆栈。我仍然不明白为什么要把它作为一个参数…我不需要把它字符串化并放到模板中。阅读它的json格式并进行更改不是更容易吗。否则我就得把这根绳子解开,把它改过来。我还是觉得太乱了。让我知道你的想法thoughts@BalajiV如果唯一的问题是转义JSON,那么您可以使用带有字符串文本的YAML CloudFormation模板。示例:(查看状态机定义)