2016-02-28 47 views
0

我正在使用CF爲CodeDeploy應用程序創建部署組,但我不斷收到說明部署組已存在的錯誤(但它屬於不同的CodeDeploy應用程序)。如果我手動創建它,那很好。這裏是模板:CloudFormation - CodeDeploy部署組已存在

"DeploymentGroup": { 
    "Description": "Create a deployment group", 
    "DependsOn": [ 
    "EC2Instance" 
    ], 
    "Type" : "AWS::CodeDeploy::DeploymentGroup", 
    "Properties" : { 
    "ApplicationName" : "Foo", 
    "DeploymentConfigName": "CodeDeployDefault.AllAtOnce", 
    "DeploymentGroupName": "foo-group", 
    "Ec2TagFilters" : [ 
     { 
     "Key" : "Name", 
     "Value" : "Foo", 
     "Type" : "KEY_AND_VALUE" 
     } 
    ], 
    "ServiceRoleArn" : "...." 
    } 
}, 
+0

對於與部署組關聯的每個應用程序,部署組的名稱必須是唯一的。只需確認您的問題中描述的配置符合該要求即可。 – jbird

+0

在應用程序中是唯一的,但在所有應用程序中不唯一。令人不安的是,如果我手動創建它,那很好。 – BPm

回答

0

部署組名如果它創建爲CF堆棧的一部分,則需要是唯一的,因爲它的名稱類型爲:

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html

我通過將應用程序名稱預先部署到部署組名稱來解決此問題。

DeploymentGroup: 
    Type: "AWS::CodeDeploy::DeploymentGroup" 
    Properties: 
    ApplicationName: !Ref DeployApplication 
    DeploymentGroupName: !Sub "${DeployApplication}_${DeploymentGroupName}" 
    ServiceRoleArn: !GetAtt CodeDeployServiceRole.Arn 
相關問題