Amazon web services 将容器图像值从jenkins动态传递给AWS cloudformation模板

Amazon web services 将容器图像值从jenkins动态传递给AWS cloudformation模板,amazon-web-services,jenkins,amazon-cloudformation,amazon-ecs,Amazon Web Services,Jenkins,Amazon Cloudformation,Amazon Ecs,我有一个jenkins管道,在那里我执行一个云形成模板,我已经存储在Gitlab中。但我的cloudformation模板包含一个图像参数,我需要从jenkins文件动态传递该参数。有人能帮我做同样的事吗。我用粗体突出显示了它 容器定义“:[ { “图片”:“亚马逊/亚马逊ecs样本” ],要执行此操作,您需要将图像值作为传递到CloudFormation堆栈的参数 在CloudFormation堆栈中创建一个名为“Image”的参数,如下所示 "Parameters": {

我有一个jenkins管道,在那里我执行一个云形成模板,我已经存储在Gitlab中。但我的cloudformation模板包含一个图像参数,我需要从jenkins文件动态传递该参数。有人能帮我做同样的事吗。我用粗体突出显示了它

容器定义“:[ { “图片”:“亚马逊/亚马逊ecs样本”
],

要执行此操作,您需要将图像值作为传递到CloudFormation堆栈的参数

在CloudFormation堆栈中创建一个名为“Image”的参数,如下所示

"Parameters": {
  "Image": {
    "Type": String,
    "Description": "The image name to use within the container definition"
  }
}
然后在您的代码中,您可以使用下面类似的

ContainerDefinitions" : [ { "Image": { "Ref": "Image" }, ]
当您使用CLI创建堆栈时,您将按照以下方式创建

aws cloudformation create-stack --stack-name myteststack --template-body file://sampletemplate.json --parameters ParameterKey=Image,ParameterValue=amazon/amazon-ecs-sample
如果您在Jenkins管道中使用一个参数,您可以替换图像名称,如下所示

aws cloudformation create-stack --stack-name myteststack --template-body file://sampletemplate.json --parameters ParameterKey=Image,ParameterValue=${env.Image}