Utilizzare l' CodeDeploy agente per convalidare un pacchetto di distribuzione su un computer locale - AWS CodeDeploy

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzare l' CodeDeploy agente per convalidare un pacchetto di distribuzione su un computer locale

Utilizzando l' CodeDeploy agente, puoi distribuire contenuti su un'istanza a cui hai effettuato l'accesso. Ciò consente di verificare l'integrità di un file di specifiche dell'applicazione (AppSpec file) che si intende utilizzare in una distribuzione e del contenuto che si intende distribuire.

Non è necessario creare un'applicazione e un gruppo di distribuzione. Se desideri distribuire il contenuto archiviato sull'istanza locale, non hai nemmeno bisogno di un AWS account. Per i test più semplici, puoi eseguire il codedeploy-local comando, senza specificare alcuna opzione, in una directory che contiene il AppSpec file e il contenuto da distribuire. Lo strumento offre opzioni per altri test case.

Convalidando un pacchetto di distribuzione in un computer locale è possibile:

  • Testare l'integrità di una revisione dell'applicazione.

  • Verifica il contenuto di un AppSpec file.

  • Prova CodeDeploy per la prima volta con il codice dell'applicazione esistente.

  • Distribuire il contenuto in modo rapido quando si è già connessi a un'istanza.

Puoi utilizzare contenuti di distribuzione archiviati sull'istanza locale o in un tipo di repository remoto supportato (bucket Amazon S3 o repository pubblici). GitHub

Prerequisiti

Prima di avviare una distribuzione locale, completa la procedura illustrata di seguito:

  • Crea o usa un tipo di istanza supportato dall'agente. CodeDeploy Per informazioni, consultare Sistemi operativi supportati dall'agente CodeDeploy .

  • Installa la versione 1.0.1.1352 o successiva dell'agente. CodeDeploy Per informazioni, consultare Installa l' CodeDeploy agente.

  • Se stai distribuendo i tuoi contenuti da un bucket GitHub o da un repository Amazon S3, fornisci un utente con cui utilizzarli. CodeDeploy Per informazioni, consultare Fase 1: Configurazione.

  • Se stai distribuendo la revisione dell'applicazione da un bucket Amazon S3, crea un bucket Amazon S3 nella regione in cui lavori e applica una policy per i bucket Amazon S3 al bucket. Questa policy concede alle istanze le autorizzazioni richieste per scaricare la revisione dell'applicazione.

    Ad esempio, la seguente policy sui bucket di Amazon S3 consente a qualsiasi EC2 istanza Amazon con un profilo di IAM istanza allegato contenente il file da ARN arn:aws:iam::444455556666:role/CodeDeployDemo scaricare da qualsiasi punto del bucket Amazon S3 denominato: amzn-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 seguente policy sui bucket di Amazon S3 consente di scaricare qualsiasi istanza locale con un IAM utente associato contenente il file ARN arn:aws:iam::444455556666:user/CodeDeployUser da qualsiasi punto del bucket Amazon S3 denominato: amzn-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" ] } } ] }

    Per informazioni su come generare e allegare una bucket policy di Amazon S3, consulta Esempi di policy Bucket.

  • Se stai distribuendo la revisione dell'applicazione da un bucket GitHub o da un repository Amazon S3, configura IAM un profilo di istanza e collegalo all'istanza. Per informazioni, consulta Fase 4: crea un profilo di IAM istanza per le tue EC2 istanze Amazon, Crea un'istanza Amazon EC2 per CodeDeploy (AWS CLI o una console Amazon EC2) e Crea un'istanza Amazon EC2 per CodeDeploy (modello)AWS CloudFormation.

  • Se stai distribuendo i tuoi contenuti da GitHub, crea un account e un GitHub archivio pubblico. Per creare un GitHub account, consulta Partecipa. GitHub Per creare un GitHub repository, consulta Creare un repository.

    Nota

    I repository privati attualmente non sono supportati. Se i tuoi contenuti sono archiviati in un GitHub repository privato, puoi scaricarli sull'istanza e utilizzare l'--bundle-locationopzione per specificarne il percorso locale.

  • Prepara il contenuto (incluso un AppSpec file) che desideri distribuire sull'istanza e inseriscilo nell'istanza locale, nel tuo bucket Amazon S3 o nel tuo repository. GitHub Per informazioni, consultare Utilizzo delle revisioni delle applicazioni per CodeDeploy.

  • Se desideri utilizzare valori diversi da quelli predefiniti per altre opzioni di configurazione, crea il file di configurazione e posizionalo nell'istanza (per istanze /etc/codedeploy-agent/conf/codedeployagent.yml Amazon Linux o Ubuntu Server o C:\ProgramData\Amazon\CodeDeploy\conf.yml per istanze Windows Server). RHEL Per informazioni, consultare CodeDeploy riferimento alla configurazione dell'agente.

    Nota

    Se utilizzi un file di configurazione su istanze Amazon Linux o Ubuntu Server, devi: RHEL

    • Utilizzare le variabili :root_dir: e :log_dir: per specificare posizioni diverse da quelle predefinite per la cartella della directory dei log e la cartella principale della distribuzione.

    • sudoDa utilizzare per eseguire i comandi CodeDeploy dell'agente.

Crea una distribuzione locale

Nell'istanza in cui desideri creare la distribuzione locale, apri una sessione terminale (istanze Amazon Linux o Ubuntu Server) o un prompt dei comandi (Windows Server) per eseguire i comandi dello strumento. RHEL

Nota

Il comando codedeploy-local viene installato nelle posizioni seguenti:

  • Su Amazon LinuxRHEL, o Ubuntu Server:/opt/codedeploy-agent/bin.

  • Su Windows Server:C:\ProgramData\Amazon\CodeDeploy\bin.

Sintassi del comando base

codedeploy-local [options]

Riepilogo

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>]

Opzioni

-l, --bundle-location

La posizione del bundle di revisione dell'applicazione. Se non specifichi un percorso, per impostazione predefinita lo strumento utilizza la directory di lavoro. Se specifichi un valore per --bundle-location, devi specificare anche un valore per --type.

Esempi di formato del percorso del bundle:

  • Istanza locale di RHEL Amazon Linux o Ubuntu Server: /path/to/local/bundle.tgz

  • Istanza locale di Windows Server: C:/path/to/local/bundle

  • Bucket Amazon S3: s3://amzn-s3-demo-bucket/bundle.tar

  • GitHub archivio: https://github.com/account-name/repository-name/

-t, --type

Il formato del bundle di revisione dell'applicazione. I tipi supportati includono tgz, tar, zip e directory. Se non specifichi un tipo, lo strumento utilizza directory per impostazione predefinita. Se specifichi un valore per --type, devi specificare anche un valore per --bundle-location.

-b, -- file-exists-behavior

Indica come vengono gestiti in una posizione di destinazione della distribuzione i file già esistenti che non facevano parte della distribuzione precedente. Le opzioni includono DISALLOWOVERWRITE,RETAIN. Per ulteriori informazioni, vedere fileExistsBehaviorin AWS CodeDeploy APIReference.

-g, --deployment-group

Il percorso della cartella di destinazione del contenuto da distribuire. Se non si specifica una cartella, lo strumento ne crea una denominata default-local-deployment-groupall'interno della directory principale di distribuzione. Per ogni distribuzione locale creata, all'interno di questa cartella lo strumento crea una sottodirectory con nomi del tipo d-98761234-local.

-e, --events

Un set di hook di eventi override lifecycle che desideri eseguire, in ordine, anziché gli eventi elencati nel file. AppSpec È possibile specificare più hook separati da virgole. Puoi utilizzare questa opzione se:

  • Vuoi eseguire un set diverso di eventi senza dover aggiornare il file. AppSpec

  • Vuoi eseguire un singolo hook di eventi come eccezione al contenuto del AppSpec file, ad esempioApplicationStop.

Se non specificate né DownloadBundleinstallate gli eventi nell'elenco delle sostituzioni, questi verranno eseguiti prima di tutti gli hook di eventi specificati. Se includi DownloadBundlee Install nell'elenco delle --events opzioni, questi devono essere preceduti solo da eventi che normalmente vengono eseguiti prima di loro nelle distribuzioni. CodeDeploy Per informazioni, consultare AppSpec sezione 'hooks'.

-c, -- agent-configuration-file

Posizione di un file di configurazione da utilizzare per la distribuzione, se archiviato in un percorso diverso da quello predefinito. Un file di configurazione specifica alternative rispetto ad altri valori e comportamenti predefiniti per una distribuzione.

Per impostazione predefinita, i file di configurazione vengono archiviati in /etc/codedeploy-agent/conf/codedeployagent.yml (istanze Amazon Linux o Ubuntu Server) o C:/ProgramData/Amazon/CodeDeploy/conf.yml (Windows Server). RHEL Per ulteriori informazioni, consulta CodeDeploy riferimento alla configurazione dell'agente.

-A, --appspec-filename

Il nome del file. AppSpec Per le distribuzioni locali, i valori accettati sono appspec.yml e. appspec.yaml Per impostazione predefinita, il AppSpec file viene chiamato. appspec.yml

-h, --help

Visualizza un riepilogo del contenuto della guida.

-v, --version

Visualizza il numero di versione dello strumento.

Esempi

Di seguito vengono illustrati alcuni esempi di formati di comando validi.

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

Distribuisci un pacchetto da 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

Distribuisci un pacchetto da un archivio pubblico: GitHub

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

Distribuire un pacchetto specificando più eventi del ciclo di vita:

codedeploy-local --bundle-location /path/to/local/bundle.tar --type tar --application-folder my-deployment --events DownloadBundle,Install,ApplicationStart,HealthCheck

Arresta un'applicazione precedentemente distribuita utilizzando l'evento del ciclo di vita: ApplicationStop

codedeploy-local --bundle-location /path/to/local/bundle.tgz --type tgz --deployment-group --events ApplicationStop

Effettuare la distribuzione utilizzando un ID del gruppo di distribuzione specifico:

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