npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

exito-aws

v1.0.12

Published

Commands for aws exito

Downloads

29

Readme

EXITO AWS CLI

Exito aws cli permite facilmente crear infrastructuras tipo Fargate y crear CodePipelines dentro de AWS

Instalación

npm i exito-aws 
npm i -g exito-aws 

Uso

En la linea de comandos exito-aws

Nota: Si se desea crear el proyecto de netCore en DDD se ejecuta

  • Instalar el template en el equipo con el siguiente comando en consola:

dotnet new -i Exito.DDD.WebApi.NetCore

  • En la consola ir a la ruta donde va a quedar el proyecto y ejecutar el comando:

dotnet new exitoddd --ProjectName

alt text

Las opciones que se listan al ejecutar la cli son:

  • ECR
  • Fargate LoadBalancer
  • Fargate Apigateway
  • CodePipeline
  • Generar Buildspec
  • Descargar archivo parametros
  • Administrador

Las opciones que permiten crear servicios en AWS solicitan ingresar Access Key Id, Secret access key y session token , estos se obtienen desde el login de AWS en la cuenta seleccionando Command line or programmatic access

alt text

y luego se visualiza las credenciales, damos clic en Copy para obtener el dato necesario

alt text

Seleccionar una de las opciones.

  • Seleccionando ECR. Permite crear un Elastic Container Registry, donde se pueden subir las imagenes docker del proyecto

  • Seleccionando Fargate.

  • En nombre colocamos un nombre que no se encuentre en la cuenta de AWS y que no contenga espacios en blanco, mayusculas ni caracteres especiales alt text

  • En archivo de parametros ingresamos el nombre del archivo json que debe estar en la ruta de la linea de comandos alt text

  • En esta opción se ingresa el Access key ID de la cuenta de AWS alt text

  • En esta opción se ingresa el Secret access key de la cuenta de AWS alt text

  • Cuando los datos se ingresen correctamente la CLI mostrará el siguiente mensaje alt text

  • Si la infraestructura se crea correctamente mostrará el siguiente mensaje alt text

  • Seleccionando la opción Codepipeline ingresamos el nombre del stack sin caracteres especiales ni espacios en blanco

Parámetros

Fargate LoadBalancer y Fargate Apigateway

[
  {
    "ParameterKey": "BalancerListenerPort",
    "ParameterValue": "80",
    "Description": "Puerto de LoadBalancer por defecto es 80"
  }, 
  {
    "ParameterKey": "ClusterName",
    "ParameterValue": "clusteraws",
    "Description": "Cluster del ECS el nombre debe ser unico en la cuenta AWS"
  }, 
  {
    "ParameterKey": "CpuTask",
    "ParameterValue": "256",
    "Description": "CPU que se desea dar al task definition"
  }, 
  {
    "ParameterKey": "Environment",
    "ParameterValue": "development",
    "Description": "El ambiente del ECS opciones: development ó production"
  }, 
  {
    "ParameterKey": "HealthCheckPathName",
    "ParameterValue": "/api/environment",
    "Description": "La ruta del health del microservicio con esta ruta se valida si esta respondiendo el servicio debe ser un controller GET"
  }, 
  {
    "ParameterKey": "ImageRepositoryECR",
    "ParameterValue": "repositorioaws",
    "Description": "El nombre asignado al Repositorio ECR para la imagen docker"
  }, 
  {
    "ParameterKey": "MemoryTask",
    "ParameterValue": "512",
    "Description": "Memoria asignada al task definition"
  }, 
  {
    "ParameterKey": "SecurityGroupServicePort",
    "ParameterValue": "80",
    "Description": "Puerto del security group por defecto es 80"
  }, 
  {
    "ParameterKey": "ServiceName",
    "ParameterValue": "serviceaws",
    "Description": "Nombre que se asignará al service de ECS debe ser unico en la cuenta AWS"
  }, 
  {
    "ParameterKey": "TagECR",
    "ParameterValue": "latest",
    "Description": "el tag que posee el docker en el repositorio ECS por defecto es latest"
  }, 
  {
    "ParameterKey": "TaskQuantity",
    "ParameterValue": "1",
    "Description": "Cantidad de task definition asignado al ECS"
  }, 
  {
    "ParameterKey": "VpcName",
    "ParameterValue": "vpc-00xxxxxxxxxxx",
    "Description": "Vpc que se va a utilizar"
  }, 
  {
    "ParameterKey": "subnets",
    "ParameterValue": "subnet-0xxxxxxxxxxx,subnet-0xxxxxxxxxxx",
    "Description": "Subnet's utilizadas por ECS, deben ser minimo 2"
  }, 
  {
    "ParameterKey": "subnetsLoadBalancer",
    "ParameterValue": "subnet-0xxxxxxxxxx,subnet-0xxxxxxxxxxx",
    "Description": "Subnet's utilizadas por LoadBalancer, deben ser minimo 2"
  }, 
  {
    "ParameterKey": "ProjectName",
    "ParameterValue": "aplicacion",
    "Description": "El nombre del proyecto que va a tener asociado la infrastructura"
  }
]

Descripción parámetros

Estos parámetros deben de ir en un archivo .json ubicado en el path de la consola donde se ejecuta el comando de exito-aws-cli

ParameterKey: Se deben conservar los mismos nombres que existen en este campo debido a que todos son obligatorios.

ParameterValue: En este campo se definen los valores que va a tomar el key del parámetro.

A continuación se describe cada uno de los parámetros:

  • BalancerListenerPort: Es el puerto que se asigna al listener del load balancer por defecto es "80".
  • ClusterName: Nombre que se le asigna al cluster de ECS debe ser un nombre único en la cuenta de AWS, no debe tener espacios ni caracteres especiales.
  • CpuTask: La capacidad de CPU que se le desea dar al task definition del ECS.
  • Environment: Se describe en cual ambiente sera utilizada la infraestructura, las opciones son: developer, production. Se deben colocar en minúsculas.
  • HealthCheckPathName: La ruta del endpoint con el cual se quiere identificar el health del servicio, por defecto es /api/environment
  • ImageRepositoryECR: El nombre del repositorio del ECR creado para alojar la imagen docker.
  • MemoryTask: La capacidad de memoria que se le desea asignar al task definition.
  • SecurityGroupServicePort: El puerto que se le asigna al security group, por defecto es 80.
  • ServiceName: El nombre que se le va a asignar al servicio de ECS, debe ser único en la cuenta de AWS, no debe tener espacios.
  • TagECR: La etiqueta que se le colocó a la imagen docker subida en ECR, por defecto es latest.
  • TaskQuantity: Se define la cantidad de task definition que va a tener ECS.
  • VpcName: El nombre de la vpc que se va a asignar a la infraestructura.
  • subnets: Las subnets que se asignan al ECS, deben ser mínimo 2 y deben estar en distinta zona de disponibilidad.
  • subnetsLoadBalancer: Las subnets que se asignan al load balancer, deben ser mínimo 2 y deben estar en distinta zona de disponibilidad, pueden ser las mismas del parámetro "subnets" si es el caso.
  • ProjectName: El nombre del proyecto al que se le asignará la infraestructura de AWS, no debe contener espacios.

CodePipeline

[
  {
    "ParameterKey": "CodeCommitName",
    "ParameterValue": "repositorioaws",
    "Description": "Nombre del repositorio CodeCommit"
  }, 
  {
    "ParameterKey": "BranchRepository",
    "ParameterValue": "develop",
    "Description": "Branch a utilizar opciones: develop ó master"
  }, 
  {
    "ParameterKey": "CodePipelineName",
    "ParameterValue": "dev-pipeline",
    "Description": "Nombre del Codepipeline debe ser unico en la cuenta AWS"
  }, 
  {
    "ParameterKey": "Environment",
    "ParameterValue": "development",
    "Description": "El ambiente del ECS opciones: development ó production"
  },
  {
    "ParameterKey": "ProjectName",
    "ParameterValue": "aplicacion",
    "Description": "El nombre del proyecto que va a tener asociado el Codepipeline"
  },
  {
    "ParameterKey": "CodeBuildName",
    "ParameterValue": "build-aplicacion",
    "Description": "Nombre del Codebuild debe ser unico en la cuenta AWS"
  },
  {
    "ParameterKey": "S3CodePipeline",
    "ParameterValue": "codepipeline-us-east-1-731055110175",
    "Description": "Nombre del S3 de la cuenta donde se crea el Codepipeline --s3 cuentas--: coreecommerce: codepipeline-us-east-1-111801213144  devops: codepipeline-us-east-1-731055110175   "
  },
  {
    "ParameterKey": "CodePipelineRole",
    "ParameterValue": "mercado",
    "Description": "Nombre del role codepipeline destinado para la cli "
  },
  {
    "ParameterKey": "CodeBuildRole",
    "ParameterValue": "mercado",
    "Description": "Nombre del role codebuild destinado para la cli "
  }
]

Buildspec ECS

[
  {
    "ParameterKey": "ProjectSln",
    "ParameterValue": "Ecommerce.Example.sln",
    "Description": "Nombre del archivo sln del proyecto"
  },
  {
    "ParameterKey": "ProjectName",
    "ParameterValue": "Ecommerce.Example",
    "Description": "Nombre del proyecto este se vera reflejado en SonarQube"
  },
  {
    "ParameterKey": "ProjectPathTest",
    "ParameterValue": "Ecommerce.Example.Test/Ecommerce.Example.Test.csproj",
    "Description": "Ruta completa del archivo csproj del proyecto de test"
  },
  {
    "ParameterKey": "ProjectTest",
    "ParameterValue": "Ecommerce.Example.Test",
    "Description": "Nombre de la carpeta base del proyecto de test"
  },
  {
    "ParameterKey": "ProjectRestore",
    "ParameterValue": "Ecommerce.Example.API/Ecommerce.Example.API.csproj",
    "Description": "Ruta completa del archivo csproj al que se le debe instalar las depencias "
  },
  {
    "ParameterKey": "SonarUrl",
    "ParameterValue": "http://18.213.XXX.XX",
    "Description": "Url del SonarQube"
  },
  {
    "ParameterKey": "SonarToken",
    "ParameterValue": "123456789XXXXXXXXXXX",
    "Description": "Token del SonarQube"
  }
]

Buildspec Lambda

[
  {
    "ParameterKey": "ProjectSln",
    "ParameterValue": "Ecommerce.Example.sln",
    "Description": "Nombre del archivo sln del proyecto"
  },
  {
    "ParameterKey": "ProjectName",
    "ParameterValue": "Ecommerce.Example",
    "Description": "Nombre del proyecto este se vera reflejado en SonarQube"
  },
  {
    "ParameterKey": "ProjectPathTest",
    "ParameterValue": "Ecommerce.Example.Test/Ecommerce.Example.Test.csproj",
    "Description": "Ruta completa del archivo csproj del proyecto de test"
  },
  {
    "ParameterKey": "ProjectTest",
    "ParameterValue": "Ecommerce.Example.Test",
    "Description": "Nombre de la carpeta base del proyecto de test"
  },
  {
    "ParameterKey": "SonarUrl",
    "ParameterValue": "http://18.213.XXX.XX",
    "Description": "Url del SonarQube"
  },
  {
    "ParameterKey": "SonarToken",
    "ParameterValue": "123456789XXXXXXXXXXX",
    "Description": "Token del SonarQube"
  },
  {
    "ParameterKey": "PROJECT_LAMBDA",
    "ParameterValue": "Orders.Example.Lambda/src/Orders.Example.Lambda",
    "Description": "Ruta completa del proyecto de la lambda"
  },
  {
    "ParameterKey": "DIRECTORY_BASE_LAMBDA",
    "ParameterValue": "Orders.Example.Lambda",
    "Description": "Nombre de la carpeta base del proyecto de la lambda"
  }
]