Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Empezando con el AWS CLI
Para empezar a AWS Proton utilizar el AWS CLI, sigue este tutorial. El tutorial muestra un AWS Proton servicio de equilibrio de carga orientado al público basado en. AWS Fargate El tutorial también proporciona una canalización de CI/CD que implementa un sitio web estático con una imagen para mostrar.
Antes de empezar, el usuario debe asegurarse de que esté configurado correctamente. Para obtener más información, consulte Requisitos previos.
Paso 1: Registrar una plantilla de entorno
En este paso, como administrador, registrará una plantilla de entorno de ejemplo, que contiene un clúster de Amazon Elastic Container Service (AmazonECS) y una Amazon Virtual Private Cloud (AmazonVPC) con dos subredes públicas/privadas.
Para registrar una plantilla de entorno
-
Incorpore el repositorio AWS Proton de CloudFormation plantillas de muestra
a su GitHub cuenta u organización. Este repositorio incluye las plantillas de entorno y de servicio que utilizaremos en este tutorial. A continuación, registre su repositorio bifurcado en. AWS Proton Para obtener más información, consulte Creación de un enlace para el repositorio del usuario.
-
Cree una plantilla de entorno.
El recurso de la plantilla de entorno realiza un seguimiento de las versiones de la plantilla de entorno.
$
aws proton create-environment-template \ --name "fargate-env" \ --display-name "Public VPC Fargate" \ --description "VPC with public access and ECS cluster"
-
Cree una configuración de sincronización de plantillas.
AWS Proton establece una relación de sincronización entre el repositorio y la plantilla de entorno. A continuación, crea la versión 1.0 de la plantilla en estado
DRAFT
.$
aws proton create-template-sync-config \ --template-name "fargate-env" \ --template-type "ENVIRONMENT" \ --repository-name "
your-forked-repo
" \ --repository-provider "GITHUB" \ --branch "your-branch
" \ --subdirectory "environment-templates/fargate-env" -
Espere a que la versión de la plantilla de entorno se registre correctamente.
Cuando se devuelva este comando con un estado de salida de
0
, se habrá completado el registro de la versión. Esto resulta útil en los scripts para garantizar que se pueda ejecutar correctamente el comando en el siguiente paso.$
aws proton wait environment-template-version-registered \ --template-name "fargate-env" \ --major-version "1" \ --minor-version "0"
-
Publique la versión de la plantilla de entorno para que esté disponible para la creación del entorno.
$
aws proton update-environment-template-version \ --template-name "fargate-env" \ --major-version "1" \ --minor-version "0" \ --status "PUBLISHED"
Paso 2: Registrar una plantilla de servicio
En este paso, como administrador, registrará una plantilla de servicio de ejemplo, que contiene todos los recursos necesarios para aprovisionar un servicio de Amazon ECS Fargate mediante un balanceador de carga y una canalización de CI/CD que utilice. AWS CodePipeline
Para registrar una plantilla de servicio
-
Cree una plantilla de servicio.
El recurso de la plantilla de servicio realiza un seguimiento de las versiones de la plantilla de servicio.
$
aws proton create-service-template \ --name "load-balanced-fargate-svc" \ --display-name "Load balanced Fargate service" \ --description "Fargate service with an application load balancer"
-
Cree una configuración de sincronización de plantillas.
AWS Proton establece una relación de sincronización entre el repositorio y la plantilla de servicio. A continuación, crea la versión 1.0 de la plantilla en estado
DRAFT
.$
aws proton create-template-sync-config \ --template-name "load-balanced-fargate-svc" \ --template-type "SERVICE" \ --repository-name "
your-forked-repo
" \ --repository-provider "GITHUB" \ --branch "your-branch
" \ --subdirectory "service-templates/load-balanced-fargate-svc" -
Espere a que la versión de la plantilla de servicio se registre correctamente.
Cuando se devuelva este comando con un estado de salida de
0
, se habrá completado el registro de la versión. Esto resulta útil en los scripts para garantizar que se pueda ejecutar correctamente el comando en el siguiente paso.$
aws proton wait service-template-version-registered \ --template-name "load-balanced-fargate-svc" \ --major-version "1" \ --minor-version "0"
-
Publique la versión de la plantilla de servicio para que esté disponible para la creación del servicio.
$
aws proton update-service-template-version \ --template-name "load-balanced-fargate-svc" \ --major-version "1" \ --minor-version "0" \ --status "PUBLISHED"
Paso 3: Implementar un entorno
En este paso, como administrador, crea una instancia de un AWS Proton entorno a partir de la plantilla de entorno.
Para implementar un entorno
-
Obtenga un archivo de especificaciones de ejemplo para la plantilla de entorno que ha registrado.
Puede descargar el archivo
environment-templates/fargate-env/spec/spec.yaml
desde el repositorio de ejemplos de plantillas. Como alternativa, puede obtener todo el repositorio de forma local y ejecutar el comando create-environment desde el directorioenvironment-templates/fargate-env
. -
Crear un entorno.
AWS Proton lee los valores de entrada de las especificaciones de su entorno, los combina con la plantilla de entorno y aprovisiona los recursos del entorno en su AWS cuenta mediante su AWS Proton función de servicio.
$
aws proton create-environment \ --name "fargate-env-prod" \ --template-name "fargate-env" \ --template-major-version 1 \ --proton-service-role-arn "arn:aws:iam::
123456789012
:role/AWS ProtonServiceRole
" \ --spec "file://spec/spec.yaml" -
Espere a que el entorno se implemente correctamente.
$
aws proton wait environment-deployed --name "fargate-env-prod"
Paso 4: Implementar un servicio [desarrollador de aplicaciones]
En los pasos anteriores, un administrador registró y publicó una plantilla de servicio e implementó un entorno. Como desarrollador de aplicaciones, ahora puede crear un AWS Proton servicio e implementarlo en el entorno AWS Proton
Para implementar un servicio
-
Obtenga un archivo de especificaciones de ejemplo para la plantilla de servicio que registró el administrador.
Puede descargar el archivo
service-templates/load-balanced-fargate-svc/spec/spec.yaml
desde el repositorio de ejemplos de plantillas. Como alternativa, puede obtener todo el repositorio de forma local y ejecutar el comando create-service desde el directorioservice-templates/load-balanced-fargate-svc
. -
Incorpore el repositorio de AWS Proton Sample Services
a su GitHub cuenta u organización. Este repositorio incluye el código fuente de la aplicación que utilizamos en este tutorial. -
Cree un servicio.
AWS Proton lee los valores de entrada de la especificación de servicio, los combina con la plantilla de servicio y aprovisiona los recursos de servicio de su AWS cuenta en el entorno especificado en la especificación. Una AWS CodePipeline canalización despliega el código de la aplicación desde el repositorio que especifique en el comando.
$
aws proton create-service \ --name "static-website" \ --repository-connection-arn \ "arn:aws:codestar-connections:us-east-1:
123456789012
:connection/your-codestar-connection-id
" \ --repository-id "your-GitHub-account
/aws-proton-sample-services" \ --branch-name "main
" \ --template-major-version 1 \ --template-name "load-balanced-fargate-svc" \ --spec "file://spec/spec.yaml" -
Espere a que el servicio se implemente correctamente.
$
aws proton wait service-created --name "static-website"
-
Recupere las salidas y consulte el nuevo sitio web.
Ejecute el siguiente comando:
$
aws proton list-service-instance-outputs \ --service-name "static-website" \ --service-instance-name load-balanced-fargate-svc-prod
La salida del comando debería ser similar a la siguiente:
{ "outputs": [ { "key": "ServiceURL", "valueString": "http://
your-service-endpoint
.us-east-1.elb.amazonaws.com" } ] }El valor de la salida de la instancia
ServiceURL
es el punto de conexión del nuevo sitio web del servicio. Utilice el navegador para navegar hasta él. Debería ver el siguiente gráfico en una página estática:
Paso 5: Limpieza (opcional)
En este paso, cuando haya terminado de explorar los AWS recursos que creó como parte de este tutorial y, para ahorrar en los costos asociados a estos recursos, los eliminará.
Para eliminar los recursos del tutorial
-
Para eliminar el servicio, ejecute el comando siguiente:
$
aws proton delete-service --name "static-website"
-
Para eliminar el entorno, ejecute el siguiente comando:
$
aws proton delete-environment --name "fargate-env-prod"
-
Para eliminar la plantilla de servicio, ejecute los siguientes comandos:
$
aws proton delete-template-sync-config \ --template-name "load-balanced-fargate-svc" \ --template-type "SERVICE"
$
aws proton delete-service-template --name "load-balanced-fargate-svc"
-
Para eliminar la plantilla de entorno, ejecute los siguientes comandos:
$
aws proton delete-template-sync-config \ --template-name "fargate-env" \ --template-type "ENVIRONMENT"
$
aws proton delete-environment-template --name "fargate-env"