![](/img/trans.png)
[英]Not able to install codedeploy-agent.msi using Cloudformation
[英]Using Cloudformation for Codedeploy
我正在嘗試使用對流層來制作cloudformation模板。 模板生成的堆棧旨在作為codedeploy的簡單示例
我以前有對流層來生成ec2,s3,iam和route53生成模板。 之前,我已使用GUI AWS Console進行了代碼部署
我遇到錯誤,我不明白為什么
這是我的對流層程序
from troposphere import Template
from troposphere.codedeploy import Application, DeploymentConfig, DeploymentGroup, MinimumHealthyHosts, S3Location
#1
#CreateApplication with an applicationName
app=Application( 'test123')
#2
#CreateDeploymentConfig
config=DeploymentConfig('config123',
MinimumHealthyHosts=MinimumHealthyHosts( Type='HOST_COUNT', Value=1 )
)
#3
#CreateDeploymentGroup using applicationName as input
#and deploymentConfigName
depgroup=DeploymentGroup("depgroup123",
ApplicationName='test123',
DeploymentConfigName='config123',
ServiceRoleArn='arn:aws:iam::930517348825:role/isCompatibleWithAWSCodeDeploy')
)
t = Template()
t.add_description(
"""
Test of making a code deploy setup from a template
""")
t.add_resource(app)
t.add_resource(config)
t.add_resource(depgroup)
print(t.to_json())
這是它制作的Cloudformation模板
{
"Description": "\nTest of making a code deploy setup from a template\n",
"Resources": {
"config123": {
"Properties": {
"MinimumHealthyHosts": {
"Type": "HOST_COUNT",
"Value": 1
}
},
"Type": "AWS::CodeDeploy::DeploymentConfig"
},
"depgroup123": {
"Properties": {
"ApplicationName": "test123",
"DeploymentConfigName": "config123",
"ServiceRoleArn": "arn:aws:iam::930517348825:role/isCompatibleWithAWSCodeDeploy"
},
"Type": "AWS::CodeDeploy::DeploymentGroup"
},
"test123": {
"Type": "AWS::CodeDeploy::Application"
}
}
}
當我將模板加載到cloudformation GUI中時,會在回滾之前發生
09:08:50 UTC+0000 CREATE_FAILED AWS::CodeDeploy::DeploymentConfig config123 Resource creation cancelled
09:08:48 UTC+0000 CREATE_IN_PROGRESS AWS::CodeDeploy::DeploymentConfig config123
09:08:48 UTC+0000 CREATE_FAILED AWS::CodeDeploy::DeploymentGroup depgroup123 No application found for name: test123
09:08:47 UTC+0000 CREATE_COMPLETE AWS::CodeDeploy::Application test123
我不明白的是,堆棧已經創建了AWS :: CodeDeploy :: Application“ test123”,但是接下來的消息是“找不到名稱為test123的應用程序”
role / isCompatibleWithAWSCodeDeploy已經存在。
我還需要添加其他內容嗎?
只需使用Ref s:
"ApplicationName": {"Ref": "test123"},
"DeploymentConfigName": {"Ref": "config123"},
從cf模板中可以看到,創建的應用程序沒有名稱。 為了使它具有名稱,您的cf模板的相應部分應如下所示:
"test123": {
"Type": "AWS::CodeDeploy::Application",
"Properties" : {
"ApplicationName" : "test123"
}
}
同樣適用於配置。 該配置應具有DeploymentConfigName
屬性。 但是即使添加了ApplicationName之后,啟動仍可能失敗。 因為您的模板不能保證在應用程序和Deploymentconfig之后創建depgroup。
為了保證正確的創建順序,您應該使用Ref s:
{
"Description": "\nTest of making a code deploy setup from a template\n",
"Resources": {
"config123": {
"Properties": {
"MinimumHealthyHosts": {
"Type": "HOST_COUNT",
"Value": 1
}
},
"Type": "AWS::CodeDeploy::DeploymentConfig"
},
"depgroup123": {
"Properties": {
"ApplicationName": {"Ref": "test123"},
"DeploymentConfigName": {"Ref": "config123"},
"ServiceRoleArn": "arn:aws:iam::930517348825:role/isCompatibleWithAWSCodeDeploy"
},
"Type": "AWS::CodeDeploy::DeploymentGroup"
},
"test123": {
"Type": "AWS::CodeDeploy::Application"
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.