معرفی شرکت ها


aws-ci-cd-fargate-7.3.0


Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر
Card image cap
تبلیغات ما

مشتریان به طور فزاینده ای آنلاین هستند. تبلیغات می تواند به آنها کمک کند تا کسب و کار شما را پیدا کنند.

مشاهده بیشتر

توضیحات

AWS CDK package that helps deploying a fargate service with ci/cd.
ویژگی مقدار
سیستم عامل -
نام فایل aws-ci-cd-fargate-7.3.0
نام aws-ci-cd-fargate
نسخه کتابخانه 7.3.0
نگهدارنده []
ایمیل نگهدارنده []
نویسنده Deividas Tamkus, Laimonas Sutkus
ایمیل نویسنده dtamkus@gmail.com (deividas@idenfy.com), laimonas.sutkus@gmail.com (laimonas@idenfy.com)
آدرس صفحه اصلی https://github.com/idenfy/AwsFargateCdk.git
آدرس اینترنتی https://pypi.org/project/aws-ci-cd-fargate/
مجوز GNU GENERAL PUBLIC LICENSE Version 3
## AWS Ci Cd Fargate A library that creates a full out-of-the-box solution for ECS Fargate with CI/CD pipeline. #### Remarks The project is written by [Deividas Tamkus](https://github.com/deitam), supervised by [Laimonas Sutkus](https://github.com/laimonassutkus) and is owned by [iDenfy](https://github.com/idenfy). This is an open source library intended to be used by anyone. [iDenfy](https://github.com/idenfy) aims to share its knowledge and educate market for better and more secure IT infrastructure. #### Related technology This project utilizes the following technology: - *AWS* (Amazon Web Services). - *AWS CDK* (Amazon Web Services Cloud Development Kit). - *AWS CloudFormation*. - *AWS Loadbalancer*. - *AWS ECS* (Amazon Web Services Elastic Container Service). - *AWS Fargate* (Serverless solution for ECS). - *AWS CodePipeline*. #### Assumptions This library project assumes the following: - You have knowledge in AWS (Amazon Web Services). - You have knowledge in AWS CloudFormation and AWS loadbalancing. - You are managing your infrastructure with AWS CDK. - You are writing AWS CDK templates with a python language. #### Install The project is built and uploaded to PyPi. Install it by using pip. ```bash pip install aws-fargate-cdk ``` Or directly install it through source. ```bash ./build.sh -ic ``` #### Description This package creates a Fargate service with autoscaling, balancing and two pipelines for a complete out-of-the-box hosting infrastructure. The pipelines are as follows: 1. **ECR to ECS**. This pipeline takes an image pushed to ECR and deploys it to Fargate using Blue/Green deployment. The pipeline needs to be triggered manually duo to AWS CloudWatch event bugs related to ECR. 2. **CodeCommit to ECR**. This pipeline takes code pushed to the master branch of a CodeCommit repository, builds an image out of it (_source code needs a Dockerfile_), pushes it to ECR and automatically triggers the first pipeline, which then deploys it to ECS. **TL;DR** Pushing source code with a Dockerfile to CodeCommit repository deploys it to ECS Fargate. #### Examples Create a fargate service with ci/cd: ```python ecs_params = EcsParams(...) load_params = LoadBalancerParams(...) pipeline_params = PipelineParams(...) listener_params = LbListenerParameters(...) EcsFargateWithCiCd( scope=scope, prefix='pre', vpc=vpc, lb_params=load_params, ecs_params=ecs_params, lb_listener_params=listener_params, pipeline_params=pipeline_params ) ``` #### Tutorial - Create a full infrastructure around ECS Fargate by using the following code below in your stack. ```python from aws_cdk import core, aws_ec2, aws_elasticloadbalancingv2 from aws_ci_cd_fargate.parameters.ecs_parameters import EcsParams from aws_ci_cd_fargate.parameters.pipeline_parameters import PipelineParams from aws_ci_cd_fargate.parameters.load_balancer_parameters import LoadBalancerParams from aws_ci_cd_fargate.parameters.lb_listener_parameters import LbListenerParameters from aws_ci_cd_fargate.ecs_fargate_with_ci_cd import EcsFargateWithCiCd class MainStack(core.Stack): def __init__(self, scope: core.App) -> None: super().__init__( scope=scope, id='MyCoolStack' ) # Create your own vpc or use an existing one. vpc = aws_ec2.Vpc(...) # Create a security group for your ECS Fargate instances. sg = aws_ec2.SecurityGroup(...) # Create a loadbalancer. loadbalancer = aws_elasticloadbalancingv2.ApplicationLoadBalancer(...) production_listener = aws_elasticloadbalancingv2.ApplicationListener(self, 'Prod', load_balancer=loadbalancer) deployments_listener = aws_elasticloadbalancingv2.ApplicationListener(self, 'Test', load_balancer=loadbalancer) ecs_params = EcsParams('FargateEcsContainer', 256, 512, 80, {}, [sg], vpc.private_subnets) load_params = LoadBalancerParams() pipeline_params = PipelineParams() listener_params = LbListenerParameters( production_listener=production_listener, deployment_listener=deployments_listener, rule_priority=100, rule_condition=aws_elasticloadbalancingv2.CfnListenerRule.RuleConditionProperty( field='path-pattern', path_pattern_config=aws_elasticloadbalancingv2.CfnListenerRule.PathPatternConfigProperty( values=['/*'] ) ) ) self.ecs_infrastructure = EcsFargateWithCiCd( scope=self, prefix='MyCool', vpc=vpc, lb_params=load_params, ecs_params=ecs_params, lb_listener_params=listener_params, pipeline_params=pipeline_params ) # Access CodeCommit-To-Ecr pipeline. _ = self.ecs_infrastructure.pipeline.commit_to_ecr # Access Ecr-To-Ecs pipeline. _ = self.ecs_infrastructure.pipeline.ecr_to_ecs ``` - Provision you infrastructure with `CloudFormation` by calling `cdk deploy`. - Create a Dockerfile as simple as: ```dockerfile FROM nginx ``` - After you provision your infrastructure, go to `AWS CodeCommit` in your AWS Console. - Find a newly created git repository. - Commit the Dockerfile to the newly created repository to trigger a pipeline. (A tutorial on pushing code to remote repositories: [AWS Tutorial](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-create-commit.html)). (A tutorial on setting up git ssh with aws git repositories: [AWS Tutorial](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-ssh-unixes.html)) # Release history #### 7.3.0 Add md files. #### 7.2.0 AWS CDK dependency update 1.60.0 - 2.0.0. #### 7.1.0 Force dependency update 1.44.0 AWS CDK. #### 7.0.0 Do not allow to specify ecs port. Default to 80. This is AWS limitation. #### 6.0.0 Instead of taking path config as a parameter, take the whole rule config. #### 5.0.1 Use empty ecs repository dependency. #### 5.0.0 Project rename to a better and more explanatory name. #### 4.0.9 Dependency update. #### 4.0.8 Dependency update. Fix ecs service name key. #### 4.0.7 Dependency update. #### 4.0.6 Use newest cdk with newest breaking changes. #### 4.0.5 Add dependency which creates ecs service. CloudFormation itself has too many bugs. #### 4.0.2 Destroy ecr on delete. #### 4.0.0 Build environment variable fix. #### 4.0.0 Add pipeline parameters and fix some major pipeline bugs. #### 3.1.0 Create custom resource to create ecs service. With deployment controller CODE_DEPLOY you can not do CF updates. #### 3.0.2 Minor bug fix. #### 3.0.1 Readme fix. #### 3.0.0 Full project refactor. Accept loadbalancer's listeners for production and test traffic instead of creting a loadbalancer here. This way we can reuse an existing loadbalancer. #### 2.0.0 Remove pipeline parameters as the artifacts bucket should be created automatically within this stack. #### 1.0.0 Initial project.


نیازمندی

مقدار نام
<2.0.0,>=1.60.0 aws-cdk.core
<2.0.0,>=1.60.0 aws-cdk.aws-iam
<2.0.0,>=1.60.0 aws-cdk.custom-resources
<2.0.0,>=1.60.0 aws-cdk.aws-s3
<2.0.0,>=1.60.0 aws-cdk.aws-certificatemanager
<2.0.0,>=1.60.0 aws-cdk.aws-elasticloadbalancingv2
<2.0.0,>=1.60.0 aws-cdk.aws-ec2
<2.0.0,>=1.60.0 aws-cdk.aws-logs
<2.0.0,>=1.60.0 aws-cdk.aws-ecs
<2.0.0,>=1.60.0 aws-cdk.aws-applicationautoscaling
<2.0.0,>=1.60.0 aws-cdk.aws-codedeploy
<2.0.0,>=1.60.0 aws-cdk.aws-codecommit
<2.0.0,>=1.60.0 aws-cdk.aws-codepipeline
<2.0.0,>=1.60.0 aws-cdk.aws-codepipeline-actions
<2.0.0,>=1.60.0 aws-cdk.aws-ecr
<2.0.0,>=1.60.0 aws-cdk.aws-codebuild
<3.0.0,>=2.0.1 aws-empty-bucket
<3.0.0,>=2.0.0 aws-vpc
<2.0.0,>=1.0.7 aws-ecs-service
<2.0.0,>=1.0.1 aws-ecs-cluster
<2.0.0,>=1.0.2 aws-empty-ecr-repository


نحوه نصب


نصب پکیج whl aws-ci-cd-fargate-7.3.0:

    pip install aws-ci-cd-fargate-7.3.0.whl


نصب پکیج tar.gz aws-ci-cd-fargate-7.3.0:

    pip install aws-ci-cd-fargate-7.3.0.tar.gz