使用CodeDeploy进行蓝绿色容器部署

mbeacom.cdk-blue-green-container-deployment的Python项目详细描述


mbeacom Logo

@mbeacom/cdk蓝绿集装箱部署

Build Statuscdkdxtypescriptpython

Blue green container deployment with CodeDeploy

安装

类型脚本/JavaScript:

npm i @mbeacom/cdk-blue-green-container-deployment

Python:

^{pr2}$

如何使用

# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826fromaws_cdk.coreimportConstruct,Stack,StackPropsfromaws_cdk.aws_codecommitimportRepositoryfromaws_cdk.aws_codepipelineimportPipeline,Artifactfromaws_cdk.aws_ec2importVpc,Portfromaws_cdk.aws_ecsimportClusterfromaws_cdk.aws_elasticloadbalancingv2importApplicationLoadBalancer,ApplicationTargetGroup,TargetTypefromaws_cdk.aws_codepipeline_actionsimportCodeBuildAction,CodeCommitSourceAction,CodeDeployEcsDeployActionfrommbeacom.cdk_container_registryimportImageRepositoryfrommbeacom.cdk_blue_green_container_deploymentimportEcsService,DummyTaskDefinition,EcsDeploymentGroup,PushImageProjectclassBlueGreenContainerDeploymentStack(Stack):def__init__(self,scope,id,*,description=None,env=None,stackName=None,tags=None,synthesizer=None,terminationProtection=None,analyticsReporting=None):super().__init__(scope,id,description=description,env=env,stackName=stackName,tags=tags,synthesizer=synthesizer,terminationProtection=terminationProtection,analyticsReporting=analyticsReporting)vpc=Vpc(self,"Vpc",max_azs=2)cluster=Cluster(self,"Cluster",vpc=vpc,cluster_name="blue-green-cluster")load_balancer=ApplicationLoadBalancer(self,"LoadBalancer",vpc=vpc,internet_facing=True)prod_listener=load_balancer.add_listener("ProfListener",port=80)test_listener=load_balancer.add_listener("TestListener",port=8080)prod_target_group=ApplicationTargetGroup(self,"ProdTargetGroup",port=80,target_type=TargetType.IP,vpc=vpc)prod_listener.add_target_groups("AddProdTg",target_groups=[prod_target_group])test_target_group=ApplicationTargetGroup(self,"TestTargetGroup",port=8080,target_type=TargetType.IP,vpc=vpc)test_listener.add_target_groups("AddTestTg",target_groups=[test_target_group])# Will be replaced by CodeDeploy in CodePipelinetask_definition=DummyTaskDefinition(self,"DummyTaskDefinition",image="nginx",family="blue-green")ecs_service=EcsService(self,"EcsService",cluster=cluster,service_name="blue-green-service",desired_count=2,task_definition=task_definition,prod_target_group=prod_target_group)ecs_service.connections.allow_from(load_balancer,Port.tcp(80))ecs_service.connections.allow_from(load_balancer,Port.tcp(8080))deployment_group=EcsDeploymentGroup(self,"DeploymentGroup",application_name="blue-green-application",deployment_group_name="blue-green-deployment-group",ecs_services=[ecs_service],target_group_names=[prod_target_group.target_group_name,test_target_group.target_group_name],prod_traffic_listener=prod_listener,test_traffic_listener=test_listener,termination_wait_time_in_minutes=100)# @see https://github.com/mbeacom/cdk-constructs/tree/master/examples/blue-green-container-deployment-example/blue-green-repositoryrepository=Repository(self,"CodeRepository",repository_name="blue-green-repository")image_repository=ImageRepository(self,"ImageRepository",{"force_delete":True})source_artifact=Artifact()source_action=CodeCommitSourceAction(action_name="CodeCommit",repository=repository,output=source_artifact)image_artifact=Artifact("ImageArtifact")manifest_artifact=Artifact("ManifestArtifact")push_image_project=PushImageProject(self,"PushImageProject",image_repository=image_repository,task_definition=task_definition)build_action=CodeBuildAction(action_name="PushImage",project=push_image_project,input=source_artifact,outputs=[image_artifact,manifest_artifact])deploy_action=CodeDeployEcsDeployAction(action_name="CodeDeploy",task_definition_template_input=manifest_artifact,app_spec_template_input=manifest_artifact,container_image_inputs=[CodeDeployEcsContainerImageInput(input=image_artifact,task_definition_placeholder="IMAGE1_NAME")],deployment_group=deployment_group)Pipeline(self,"Pipeline",pipeline_name="blue-green-pipeline",stages=[StageProps(stage_name="Source",actions=[source_action]),StageProps(stage_name="Build",actions=[build_action]),StageProps(stage_name="Deploy",actions=[deploy_action])])

API参考

API.md。在

示例

请参阅更完整的examples。在

许可证

MIT

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java无法将自定义数据类型转换为字符串?   JavaLog4j和appender,这个Log4j定义正确吗?   用于换行的java Android Eclipse拆分   与某个方法关联的java启用/禁用JButton   java小部件列表视图加载视图   java国家/地区名称中的正则表达式   从Java调用Kotlin时,如何获取错误的行号?   java将视图传递给AsyncTask以访问findViewById   java SQL性能:多个绑定还是绑定到一个SQL变量以供重用?   BluetoothAdapter上的安卓 Java NullPointerException。isEnabled()   在clojure中取消引用java方法   JAVA网SocketException:IP_添加_成员身份失败(硬件筛选器不足?)   java从类对象的方法接收nullpointer异常   java使用for循环创建多个对象   java无法使用NTLM身份验证apache camel cxf   java Eclipse不喜欢@Override注释   java Spark SQL模拟红移(Oracle)“系统日期”或“当前日期”