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à.
Riferimento EC2 all'azione di Amazon
Utilizzi un' EC2 EC2
azione Amazon per distribuire il codice dell'applicazione nella tua flotta di distribuzione. La tua flotta di implementazione può essere composta da istanze Amazon EC2 Linux o nodi gestiti da Linux SSM. Sulle istanze deve essere installato l'agente SSM.
Nota
Questa azione supporta solo i tipi di istanze Linux. La dimensione massima del parco istanze supportata è di 500 istanze.
L'azione sceglierà un numero di istanze in base a un massimo specificato. Le istanze fallite delle istanze precedenti verranno scelte per prime. L'azione salterà la distribuzione su determinate istanze se l'istanza ha già ricevuto la distribuzione dello stesso elemento di input, ad esempio in un caso in cui l'azione non è riuscita in precedenza.
Nota
Questa azione è supportata solo per le pipeline di tipo V2.
Argomenti
Tipo di operazione
-
Categoria:
Deploy
-
Proprietario:
AWS
-
Provider:
EC2
-
Versione:
1
Parametri di configurazione
- InstanceTagKey
-
Campo obbligatorio: sì
La chiave tag delle istanze che hai creato in Amazon EC2, ad esempio
Name
. - InstanceTagValue
-
Campo obbligatorio: no
Il valore del tag delle istanze che hai creato in Amazon EC2, ad esempio
my-instances
.Quando questo valore non è specificato, tutte le istanze con InstanceTagKeyverranno abbinate.
- InstanceType
-
Campo obbligatorio: sì
Il tipo di istanze o nodi SSM creati in Amazon. EC2 I valori validi sono
EC2
eSSM_MANAGED_NODE
.Devi aver già creato, etichettato e installato l'agente SSM su tutte le istanze.
Nota
Quando si crea l'istanza, si crea o si utilizza un ruolo di EC2 istanza esistente. Per evitare
Access Denied
errori, devi aggiungere le autorizzazioni del bucket S3 al ruolo dell'istanza per assegnare le autorizzazioni dell'istanza al bucket di artefatti. CodePipeline Crea un ruolo predefinito o aggiorna il tuo ruolo esistente con l's3:GetObject
autorizzazione limitata al bucket di artefatti per la regione della tua pipeline. - TargetDirectory
-
Obbligatorio: Sì (se è specificato uno script)
La directory da utilizzare sulla tua EC2 istanza Amazon per eseguire gli script.
- DeploySpec
-
Obbligatorio: Sì (se sono specificate le specifiche di distribuzione)
Il file da utilizzare per configurare gli eventi di distribuzione, installazione e ciclo di vita. Per le descrizioni e le informazioni sui campi delle specifiche di distribuzione, vedere. Distribuisci il riferimento al file delle specifiche Per visualizzare una configurazione di azione con il file deploy spec specificato, consulta l'esempio in. Dichiarazione di azione con esempio di specifiche Deploy
- MaxBatch
-
Campo obbligatorio: no
Il numero massimo di istanze consentite per l'implementazione in parallelo.
- MaxError
-
Campo obbligatorio: no
Il numero massimo di errori di istanza consentiti durante la distribuzione.
- TargetGroupNameList
-
Campo obbligatorio: no
L'elenco dei nomi dei gruppi target per la distribuzione. È necessario aver già creato i gruppi target.
I gruppi target forniscono una serie di istanze per elaborare richieste specifiche. Se viene specificato il gruppo target, le istanze verranno rimosse dal gruppo di destinazione prima della distribuzione e aggiunte nuovamente al gruppo di destinazione dopo la distribuzione.
- PreScript
-
Campo obbligatorio: no
Lo script da eseguire prima della fase di azione Deploy.
- PostScript
-
Campo obbligatorio: sì
Lo script da eseguire dopo la fase di azione Deploy.
L'immagine seguente mostra un esempio della pagina Modifica per l'azione in cui è stata scelta Use action configurations.

L'immagine seguente mostra un esempio della pagina Modifica per l'azione in cui è stato scelto Usa un DeploySpec file.

Input artifact (Artefatti di input)
-
Numero di artefatti:
1
-
Descrizione: i file forniti, se presenti, per supportare le azioni dello script durante la distribuzione.
Artefatti di output
-
Numero di artefatti:
0
-
Descrizione: gli artefatti di output non si applicano a questo tipo di azione.
Autorizzazioni relative alla policy del ruolo di servizio per l'azione di distribuzione EC2
Quando CodePipeline esegue l'azione, il ruolo di CodePipeline servizio richiede le seguenti autorizzazioni, specificate in modo appropriato per l'accesso con il minimo privilegio.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "StatementWithAllResource", "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "elasticloadbalancing:DescribeTargetGroupAttributes", "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeTargetHealth", "ssm:CancelCommand", "ssm:DescribeInstanceInformation", "ssm:ListCommandInvocations" ], "Resource": [ "*" ] }, { "Sid": "StatementForLogs", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:{{region}}:{{AccountId}}:log-group:/aws/codepipeline/{{pipelineName}}:*" ] }, { "Sid": "StatementForElasticloadbalancing", "Effect": "Allow", "Action": [ "elasticloadbalancing:DeregisterTargets", "elasticloadbalancing:RegisterTargets" ], "Resource": [ "arn:aws:elasticloadbalancing:{{region}}:{{AccountId}}:targetgroup/[[targetGroupName]]/*" ] }, { "Sid": "StatementForSsmOnTaggedInstances", "Effect": "Allow", "Action": [ "ssm:SendCommand" ], "Resource": [ "arn:aws:ec2:{{region}}:{{AccountId}}:instance/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/{{tagKey}}": "{{tagValue}}" } } }, { "Sid": "StatementForSsmApprovedDocuments", "Effect": "Allow", "Action": [ "ssm:SendCommand" ], "Resource": [ "arn:aws:ssm:{{region}}::document/AWS-RunPowerShellScript", "arn:aws:ssm:{{region}}::document/AWS-RunShellScript" ] } ] }
Registra i gruppi per la tua pipeline nei log CloudWatch
Quando CodePipeline esegue l'azione, CodePipeline crea un gruppo di log utilizzando il nome della pipeline come segue. Ciò consente di ridurre l'ambito delle autorizzazioni per registrare le risorse utilizzando il nome della pipeline.
/aws/codepipeline/
MyPipelineName
Le seguenti autorizzazioni per la registrazione sono incluse negli aggiornamenti precedenti per il ruolo di servizio.
-
registri: CreateLogGroup
-
registri: CreateLogStream
-
registri: PutLogEvents
Per visualizzare i log nella console utilizzando la pagina di dialogo dei dettagli dell'azione, è necessario aggiungere l'autorizzazione alla visualizzazione dei log al ruolo della console. Per ulteriori informazioni, consulta l'esempio di policy sulle autorizzazioni della console in. Autorizzazioni necessarie per visualizzare i log di calcolo nella console CodePipeline
Autorizzazioni relative ai criteri dei ruoli di servizio per i registri CloudWatch
Quando CodePipeline esegue l'azione, CodePipeline crea un gruppo di log utilizzando il nome della pipeline come segue. Ciò consente di ridurre l'ambito delle autorizzazioni per registrare le risorse utilizzando il nome della pipeline.
/aws/codepipeline/
MyPipelineName
Per visualizzare i log nella console utilizzando la pagina di dialogo dei dettagli dell'azione, è necessario aggiungere l'autorizzazione per visualizzare i log al ruolo della console. Per ulteriori informazioni, consulta l'esempio di policy sulle autorizzazioni della console in. Autorizzazioni necessarie per visualizzare i log di calcolo nella console CodePipeline
Distribuisci il riferimento al file delle specifiche
Quando si CodePipeline esegue l'azione, è possibile specificare un file di specifiche per configurare la distribuzione nelle istanze. Il file deploy spec specifica cosa installare e quali hook di eventi del ciclo di vita eseguire in risposta agli eventi del ciclo di vita della distribuzione. Il file deploy spec è sempre in formato YAML. Il file deploy spec viene utilizzato per:
-
Mappare i file sorgente nella revisione dell'applicazione nelle loro destinazioni sull'istanza.
-
Specificare autorizzazioni personalizzate per i file distribuiti.
-
Specificare script da eseguire su ciascuna istanza in diverse fasi del processo di distribuzione.
Il file deploy spec supporta parametri di configurazione di distribuzione specifici supportati dal CodeDeploy file. AppSpec È possibile utilizzare direttamente il AppSpec file esistente e tutti i parametri non supportati verranno ignorati. Per ulteriori informazioni sul AppSpec file in CodeDeploy, consultate il riferimento al file delle specifiche dell'applicazione nella Guida per l'CodeDeployutente.
I parametri di distribuzione dei file sono specificati come segue.
-
files
- Il file deploy spec indica l'source:
edestination:
per i file di distribuzione. -
scripts
- Gli eventi programmati per la distribuzione. Sono supportati due eventi:BeforeDeploy
eAfterDeploy
. -
hooks
- I ganci del ciclo di vita dell'evento. Sono supportati i seguenti hook:ApplicationStop
,,BeforeInstall
,AfterInstall
e.ApplicationStart
ValidateService
Nota
Il parametro hooks è disponibile per AppSpec compatibilità con CodeDeploy ed è disponibile solo nella versione 0.0 (AppSpec formato). Per questo formato, CodePipeline eseguirà al meglio la mappatura degli eventi.
È necessario utilizzare la spaziatura YAML corretta nel file spec; in caso contrario, viene generato un errore se le posizioni e il numero di spazi in un file di spec di distribuzione non sono corretti. Per ulteriori informazioni sulla spaziatura, consulta la specifica YAML
Di seguito è riportato un esempio di file deploy spec.
version: 0.1 files: - source: /index.html destination: /var/www/html/ scripts: BeforeDeploy: - location: scripts/install_dependencies timeout: 300 runas: myuser AfterDeploy: - location: scripts/start_server timeout: 300 runas: myuser
Per visualizzare una configurazione di azione con il file deploy spec specificato, vedi l'esempio in. Dichiarazione di azione con esempio di specifiche Deploy
Dichiarazione dell'operazione
Dichiarazione di azione con esempio di specifiche Deploy
Consulta anche
Le risorse correlate seguenti possono essere utili durante l'utilizzo di questa operazione.
-
Tutorial: Esegui la distribuzione su EC2 istanze Amazon con CodePipeline— Questo tutorial ti guida attraverso la creazione di EC2 istanze in cui distribuirai un file di script, insieme alla creazione della pipeline utilizzando l'azione. EC2
-
EC2 L'azione Deploy fallisce e viene visualizzato un messaggio di errore No such file— Questo argomento descrive la risoluzione degli errori relativi al file non trovato relativi all'azione. EC2