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.
Uso del agente de CodeDeploy para validar un paquete de implementación en una máquina local
Mediante el agente de CodeDeploy, puede implementar contenido en una instancia a la que esté conectado. Esto le permite probar la integridad del archivo de especificación de la aplicación (archivo AppSec) que va a utilizar en una implementación y del contenido que va a implementar.
No necesita crear una aplicación ni un grupo de implementaciones. Si desea implementar contenido almacenado en la instancia local, tampoco necesita una cuenta de AWS. Para las pruebas más sencillas, puede ejecutar el comando codedeploy-local, sin especificar opciones, en un directorio que contenga el archivo AppSpec y el contenido que va a implementar. Existen opciones para otros escenarios de prueba en la herramienta.
Mediante la validación de un paquete de implementación en una máquina local, puede:
-
Probar la integridad de una revisión de la aplicación
-
Probar el contenido de un archivo AppSpec.
-
Probar CodeDeploy por primera vez con su código de aplicación existente.
-
Implementar contenido rápidamente cuando ya ha iniciado sesión en una instancia.
Puede implementar el contenido almacenado en la instancia local o en un tipo de repositorio remoto compatible (buckets de Amazon S3 o repositorios de GitHub públicos).
Requisitos previos
Antes de iniciar una implementación local, siga los pasos que se indican a continuación:
-
Cree o utilice un tipo de instancia compatible con el agente de CodeDeploy. Para obtener más información, consulte Sistemas operativos compatibles con el agente CodeDeploy .
-
Instale la versión 1.0.1.1352 o posterior del agente de CodeDeploy. Para obtener más información, consulte Instalación del agente de CodeDeploy.
-
Si va a implementar su contenido desde un bucket de Amazon S3 o un repositorio de GitHub, aprovisione un usuario de IAM para su uso con CodeDeploy. Para obtener más información, consulte Paso 1: Configurar.
-
Si va a implementar la revisión de la aplicación desde un bucket de Amazon S3, cree un bucket de Amazon S3 en la región en la que está trabajando y aplique una política de bucket de Amazon S3 al bucket. Esta política concede a las instancias los permisos necesarios para descargar la revisión de la aplicación.
Por ejemplo, la siguiente política de bucket de Amazon S3 permite a cualquier instancia de Amazon EC2 asociada a un perfil de instancia de IAM que contenga el ARN
arn:aws:iam::444455556666:role/CodeDeployDemodescargar desde cualquier lugar al bucket de Amazon S3 llamadoamzn-s3-demo-bucket:{ "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Principal": { "AWS": [ "arn:aws:iam::444455556666:role/CodeDeployDemo" ] } } ] }La siguiente política de bucket de Amazon S3 permite a cualquier instancia en las instalaciones con un usuario de IAM asociado que contenga el ARN
arn:aws:iam::444455556666:user/CodeDeployUserdescargar desde cualquier lugar al bucket de Amazon S3 denominadoamzn-s3-demo-bucket:{ "Statement": [ { "Action": [ "s3:Get*", "s3:List*" ], "Effect": "Allow", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Principal": { "AWS": [ "arn:aws:iam::444455556666:user/CodeDeployUser" ] } } ] }Para obtener información acerca de cómo generar y adjuntar una política de bucket de Amazon S3, consulte Ejemplos de política de bucket.
-
Si va a implementar la revisión de la aplicación desde un bucket de Amazon S3 o un repositorio de GitHub, configure un perfil de instancia de IAM y asócielo a la instancia. Para obtener información, consulte Paso 4: Crea un perfil de instancia de IAM para tus instancias de Amazon EC2 , Creación de una instancia de Amazon EC2 para CodeDeploy (AWS CLI o la consola de Amazon EC2) y Creación de una instancia de Amazon EC2 para CodeDeploy (plantilla de CloudFormation).
-
Si va a implementar su contenido desde GitHub, cree una cuenta y un repositorio público de GitHub. Para crear una cuenta de GitHub, consulte Join GitHub
. Para crear un repositorio de GitHub, consulte Creación de un repositorio . nota
Actualmente no se admiten repositorios privados. Si el contenido está almacenado en un repositorio de GitHub privado, puede descargarlo en la instancia y utilizar la opción
--bundle-locationpara especificar su ruta local. -
Prepare el contenido (incluido un archivo AppSpec) que desea implementar en la instancia y colóquelo en la instancia local, en su bucket de Amazon S3 o en el repositorio de GitHub. Para obtener más información, consulte Trabajar con revisiones de aplicaciones para CodeDeploy.
-
Si desea utilizar valores distintos de los predeterminados para otras opciones de configuración, cree el archivo de configuración y colóquelo en la instancia (
/etc/codedeploy-agent/conf/codedeployagent.ymlpara instancias de Amazon Linux, RHEL o Ubuntu Server oC:\ProgramData\Amazon\CodeDeploy\conf.ymlpara instancias de Windows Server). Para obtener más información, consulte Referencia de configuración del agente de CodeDeploy.nota
Si utiliza un archivo de configuración en instancias de Amazon Linux, RHEL o Ubuntu Server, debe:
-
Usar las variables
:root_dir:y:log_dir:para especificar ubicaciones distintas de las predeterminadas para la carpeta raíz de la implementación y las carpetas del directorio de archivos log -
Usar
sudopara ejecutar los comandos del agente de CodeDeploy.
-
Creación de una implementación local
En la instancia en la que desea crear la implementación local, abra una sesión del terminal (para instancias de Amazon Linux, RHEL o Ubuntu Server) o un símbolo del sistema (para Windows Server) para ejecutar los comandos de la herramienta.
nota
El comando codedeploy-local se instala en las siguientes ubicaciones:
-
Para Amazon Linux, RHEL y Ubuntu Server:
/opt/codedeploy-agent/bin. -
Para Windows Server:
C:\ProgramData\Amazon\CodeDeploy\bin.
Sintaxis básica de los comandos
codedeploy-local [options]
Sinopsis
codedeploy-local [--bundle-location <value>] [--type <value>] [--file-exists-behavior <value>] [--deployment-group <value>] [--events <comma-separated values>] [--agent-configuration-file <value>] [--appspec-filename <value>]
Opciones
-l, --bundle-location
La ubicación del paquete de revisión de la aplicación. Si no especifica una ubicación, la herramienta utiliza el directorio en el que está trabajando actualmente de forma predeterminada. Si especifica un valor en --bundle-location, también debe especificar uno en --type.
Ejemplos de formato de ubicación del paquete:
-
Instancia local de Amazon Linux, RHEL o Ubuntu Server:
/path/to/local/bundle.tgz -
Instancia local de Windows Server:
C:/path/to/local/bundle -
Bucket de Amazon S3:
s3://amzn-s3-demo-bucket/bundle.tar -
Repositorio GitHub:
https://github.com/account-name/repository-name/
-t, --type
El formato del paquete de revisión de la aplicación. Los tipos admitidos son tgz, tar, zip y directory. Si no especifica un tipo, la herramienta usa directory de manera predeterminada. Si especifica un valor en --type, también debe especificar uno en --bundle-location.
-b, --file-exists-behavior
Indica cómo se tratan los archivos que ya existen en la ubicación de destino de una implementación pero que no forman parte de una implementación anterior realizada correctamente. Las opciones son DISALLOW, OVERWRITE, RETAIN. Para obtener más información, consulte la sección fileExistsBehavior en la Referencia de la API de AWS CodeDeploy.
-g, --deployment-group
La ruta a la carpeta que es la ubicación de destino del contenido que se va a implementar. Si no especifica una carpeta, la herramienta crea una llamada default-local-deployment-group dentro del directorio raíz de la implementación. Para cada implementación local que cree, la herramienta crea un subdirectorio dentro de esta carpeta con nombres como d-98761234-local.
-e, --events
Un conjunto de enlaces de eventos del ciclo de vida que desea ejecutar en lugar de los eventos que figuran en el archivo AppSpec. Se pueden especificar varios enlaces, separados por comas. Puede utilizar esta opción si:
-
Desea ejecutar un conjunto de eventos diferentes sin tener que actualizar el archivo AppSpec.
-
Desea ejecutar un único enlace de evento como una excepción al contenido del archivo AppSpec, como por ejemplo
ApplicationStop.
Si no especifica los eventos DownloadBundle e Install en la lista de invalidación, estos se ejecutarán antes que todos los enlaces de evento que sí especifique. Si incluye DownloadBundle e Install en la lista de opciones de --events, estos deben ir precedidos únicamente de los eventos que se ejecutan normalmente antes que ellos en las implementaciones de CodeDeploy. Para obtener más información, consulte AppSpec sección de «ganchos».
-c, --agent-configuration-file
La ubicación de un archivo de configuración que se utiliza para la implementación, si está almacenado en una ubicación distinta de la predeterminada. Un archivo de configuración especifica alternativas a otros valores y comportamientos predeterminados de una implementación.
De forma predeterminada, los archivos de configuración se almacenan en /etc/codedeploy-agent/conf/codedeployagent.yml (instancias de Amazon Linux, RHEL o Ubuntu Server) o en C:/ProgramData/Amazon/CodeDeploy/conf.yml (Windows Server). Para obtener más información, consulte Referencia de configuración del agente de CodeDeploy.
-A, --appspec-filename
El nombre del archivo AppSpec. Para las implementaciones locales, los valores aceptados son appspec.yml y appspec.yaml. De forma predeterminada, el archivo AppSpec se denomina appspec.yml.
-h, --help
Muestra un resumen del contenido de ayuda.
-v, --version
Muestra el número de versión de la herramienta.
Ejemplos
A continuación se proporcionan ejemplos de formatos de comandos válidos.
codedeploy-local
codedeploy-local --bundle-location /path/to/local/bundle/directory
codedeploy-local --bundle-location C:/path/to/local/bundle.zip --type zip --deployment-group my-deployment-group
codedeploy-local --bundle-location /path/to/local/directory --type directory --deployment-group my-deployment-group
Implementar un paquete desde Amazon S3:
codedeploy-local --bundle-location s3://amzn-s3-demo-bucket/bundle.tgz --type tgz
codedeploy-local --bundle-location s3://amzn-s3-demo-bucket/bundle.zip?versionId=1234&etag=47e8 --type zip --deployment-group my-deployment-group
Implementar un paquete desde un repositorio de GitHub público:
codedeploy-local --bundle-location https://github.com/awslabs/aws-codedeploy-sample-tomcat --type zip
codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/master --type zip
codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/HEAD --type zip
codedeploy-local --bundle-location https://api.github.com/repos/awslabs/aws-codedeploy-sample-tomcat/zipball/1a2b3c4d --type zip
Implementar un paquete especificando varios eventos del ciclo de vida:
codedeploy-local --bundle-location /path/to/local/bundle.tar --type tar --application-folder my-deployment --events DownloadBundle,Install,ApplicationStart,HealthCheck
Detener una aplicación implementada anteriormente mediante el evento del ciclo de vida ApplicationStop:
codedeploy-local --bundle-location /path/to/local/bundle.tgz --type tgz --deployment-group --events ApplicationStop
Implementar con un ID de grupo de implementaciones específico:
codedeploy-local --bundle-location C:/path/to/local/bundle/directory --deployment-group 1234abcd-5dd1-4774-89c6-30b107ac5dca
codedeploy-local --bundle-location C:/path/to/local/bundle.zip --type zip --deployment-group 1234abcd-5dd1-4774-89c6-30b107ac5dca