View a markdown version of this page

Riferimento all'azione dei comandi - AWS CodePipeline

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 all'azione dei comandi

L'azione Comandi consente di eseguire comandi di shell in un'istanza di calcolo virtuale. Quando si esegue l'azione, i comandi specificati nella configurazione dell'azione vengono eseguiti in un contenitore separato. Tutti gli artefatti specificati come elementi di input per un' CodeBuild azione sono disponibili all'interno del contenitore che esegue i comandi. Questa azione consente di specificare i comandi senza prima creare un progetto. CodeBuild Per ulteriori informazioni, consulta le pagine ActionDeclaration e OutputArtifact nella Documentazione di riferimento dell'API AWS CodePipeline .

Importante

Questa azione utilizza il CodeBuild calcolo CodePipeline gestito per eseguire comandi in un ambiente di compilazione. L'esecuzione dell'azione dei comandi comporterà costi separati in. AWS CodeBuild

Nota

L'azione Comandi è disponibile solo per le pipeline di tipo V2.

Considerazioni sull'azione Comandi

Le considerazioni seguenti si applicano all'azione Comandi.

  • L'azione commands utilizza CodeBuild risorse simili all' CodeBuild azione, pur consentendo comandi di ambiente shell in un'istanza di calcolo virtuale senza la necessità di associare o creare un progetto di compilazione.

    Nota

    L'esecuzione dell'azione dei comandi comporterà costi separati in. AWS CodeBuild

  • Poiché l'azione Comandi in CodePipeline utilizza CodeBuild risorse, le build eseguite dall'azione verranno attribuite ai limiti di compilazione per il tuo account in. CodeBuild Le build eseguite dall'azione Commands verranno conteggiate ai fini dei limiti di compilazione simultanei configurati per quell'account.

  • Il timeout per le build con l'azione Comandi è di 55 minuti, in base alle build. CodeBuild

  • L'istanza di calcolo utilizza un ambiente di compilazione isolato in. CodeBuild

    Nota

    Poiché l'ambiente di compilazione isolato viene utilizzato a livello di account, un'istanza potrebbe essere riutilizzata per un'altra esecuzione della pipeline.

  • Sono supportati tutti i formati tranne i formati multilinea. È necessario utilizzare il formato a riga singola quando si immettono i comandi.

  • L'azione dei comandi è supportata per le azioni tra account. Per aggiungere un'azione di comandi per più account, aggiungila actionRoleArn dal tuo account di destinazione nella dichiarazione dell'azione.

  • Per questa azione, CodePipeline assumerà il ruolo di servizio di pipeline e utilizzerà tale ruolo per consentire l'accesso alle risorse in fase di esecuzione. Si consiglia di configurare il ruolo del servizio in modo che le autorizzazioni siano limitate al livello di azione.

  • Le autorizzazioni aggiunte al ruolo di CodePipeline servizio sono dettagliate in. Aggiungi le autorizzazioni al ruolo del servizio CodePipeline

  • Le autorizzazioni necessarie per visualizzare i log nella console sono dettagliate inAutorizzazioni necessarie per visualizzare i log di calcolo nella console.

  • A differenza di altre azioni in CodePipeline, non si impostano campi nella configurazione dell'azione; si impostano i campi di configurazione dell'azione all'esterno della configurazione dell'azione.

Autorizzazioni relative ai ruoli di servizio

Quando CodePipeline esegue l'azione, CodePipeline crea un gruppo di log utilizzando il nome della pipeline come segue. Ciò consente di limitare le autorizzazioni per registrare le risorse utilizzando il nome della pipeline.

/aws/codepipeline/MyPipelineName

Se utilizzate un ruolo di servizio esistente, per utilizzare l'azione Comandi, dovrete aggiungere le seguenti autorizzazioni per il ruolo di servizio.

  • registri: CreateLogGroup

  • registri: CreateLogStream

  • registri: PutLogEvents

Nella dichiarazione sulla politica del ruolo del servizio, riduci l'ambito delle autorizzazioni al livello della pipeline, come mostrato nell'esempio seguente.

{ "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:YOUR_AWS_ACCOUNT_ID:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME", "arn:aws:logs:*:YOUR_AWS_ACCOUNT_ID:log-group:/aws/codepipeline/YOUR_PIPELINE_NAME:*" ] }

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 della politica delle autorizzazioni della console inAutorizzazioni necessarie per visualizzare i log di calcolo nella console.

Tipo di operazione

  • Categoria: Compute

  • Proprietario: AWS

  • Provider: Commands

  • Versione: 1

Parametri di configurazione

Comandi

Obbligatorio: sì

È possibile fornire comandi di shell per l'esecuzione dell'Commandsazione. Nella console, i comandi vengono immessi su righe separate. Nella CLI, i comandi vengono immessi come stringhe separate.

Nota

Multi-line i formati non sono supportati e genereranno un messaggio di errore. Single-line il formato deve essere utilizzato per immettere i comandi nel campo Comandi.

Importante

I ComputeType valori EnvironmentType e corrispondono a quelli in CodeBuild. Supportiamo un sottoinsieme dei tipi disponibili. Per ulteriori informazioni, consulta Tipi di calcolo di ambiente di compilazione.

EnvironmentType

Obbligatorio: no

L'immagine del sistema operativo per l'ambiente di compilazione che supporta l'azione Commands. I seguenti sono valori validi per gli ambienti di compilazione:

  • LINUX_CONTAINER

  • WINDOWS_SERVER_2022_CONTAINER

La selezione di EnvironmentType consentirà quindi di inserire nel campo il tipo di elaborazione per quel sistema operativo. ComputeType Per ulteriori informazioni sui tipi di CodeBuild calcolo disponibili per questa azione, consulta il riferimento alle modalità e ai tipi di calcolo dell'ambiente Build nella Guida per l' CodeBuild utente.

Nota

Se non viene specificato, il valore predefinito di calcolo per l'ambiente di compilazione è il seguente:

  • Tipo di calcolo: BUILD_GENERAL1_SMALL

  • Tipo di ambiente: LINUX_CONTAINER

ComputeType

Obbligatorio: no

In base alla selezione di EnvironmentType, è possibile fornire il tipo di calcolo. Di seguito sono riportati i valori disponibili per il calcolo; tuttavia, tieni presente che le opzioni disponibili possono variare in base al sistema operativo.

  • BUILD_GENERAL1_SMALL

  • BUILD_GENERAL1_MEDIUM

  • BUILD_GENERAL1_LARGE

Importante

Alcuni tipi di calcolo non sono compatibili con determinati tipi di ambiente. Ad esempio, WINDOWS_SERVER_2022_CONTAINER non è compatibile con BUILD_GENERAL1_SMALL. L'utilizzo di combinazioni incompatibili causa il fallimento dell'azione e genera un errore di runtime.

Variabili di output

Obbligatorio: no

Specifica i nomi delle variabili del tuo ambiente che desideri esportare. Per un riferimento alle variabili di CodeBuild ambiente, consulta Variabili di ambiente negli ambienti di compilazione nella Guida per l'CodeBuild utente.

File

Obbligatorio: no

È possibile fornire i file che si desidera esportare come elementi di output per l'azione.

Il formato supportato per i file è lo stesso dei modelli di CodeBuild file. Ad esempio, inserisci **/ per tutti i file. Per ulteriori informazioni, vedere il riferimento alle specifiche di compilazione CodeBuild nella Guida per l'CodeBuild utente.

La pagina delle azioni Modifica per una nuova pipeline con l'azione Comandi
VpcId

Obbligatorio: no

L'ID VPC per le tue risorse.

Sottoreti

Obbligatorio: no

Le sottoreti per il VPC. Questo campo è necessario quando i comandi devono connettersi alle risorse in un VPC.

SecurityGroupIds

Obbligatorio: no

I gruppi di sicurezza per il VPC. Questo campo è necessario quando i comandi devono connettersi alle risorse in un VPC.

Di seguito è riportato un esempio JSON dell'azione con i campi di configurazione mostrati per l'ambiente e il tipo di calcolo, insieme a una variabile di ambiente di esempio.

{ "name": "Commands1", "actionTypeId": { "category": "Compute", "owner": "AWS", "provider": "Commands", "version": "1" }, "inputArtifacts": [ { "name": "SourceArtifact" } ], "commands": [ "ls", "echo hello", "echo $BEDROCK_TOKEN", ], "configuration": { "EnvironmentType": "LINUX_CONTAINER", "ComputeType": "BUILD_GENERAL1_MEDIUM" }, "environmentVariables": [ { "name": "BEDROCK_TOKEN", "value": "apiTokens:bedrockToken", "type": "SECRETS_MANAGER" } ], "runOrder": 1 }

Input artifact (Artefatti di input)

  • Numero di artefatti: 1 to 10

Artefatti di output

  • Numero di artefatti: 0 to 1

Variabili di ambiente

Chiave

La chiave in una coppia di variabili di ambiente chiave-valore, ad esempio. BEDROCK_TOKEN

Valore

Il valore per la coppia chiave-valore, ad esempio. apiTokens:bedrockToken Il valore può essere parametrizzato con variabili di output provenienti dalle azioni della pipeline o dalle variabili della pipeline.

Quando si utilizza il SECRETS_MANAGER tipo, questo valore deve essere il nome di un segreto già memorizzato in Secrets Manager. AWS

Tipo

Specifica il tipo di utilizzo del valore della variabile di ambiente. Il valore può essere PLAINTEXT o SECRETS_MANAGER. Se il valore èSECRETS_MANAGER, fornisci il riferimento Secrets nel EnvironmentVariable valore. Se il valore non viene specificato, viene usato il valore predefinito PLAINTEXT.

Nota

Sconsigliamo vivamente l'uso di variabili di ambiente in chiaro per memorizzare valori sensibili, in particolare le credenziali. AWS Quando si utilizza la CodeBuild console o AWS CLI, le variabili di ambiente in testo normale vengono visualizzate in testo normale. Per i valori sensibili, si consiglia di utilizzare invece il tipo SECRETS_MANAGER.

Nota

Quando inserite i valori namevalue, e type per la configurazione delle variabili di ambiente, specialmente se la variabile di ambiente contiene la sintassi della variabile di CodePipeline output, non superate il limite di 1000 caratteri per il campo del valore della configurazione. Quando questo limite viene superato, viene restituito un errore di convalida.

Per un esempio di dichiarazione di azione che mostra una variabile di ambiente, vedere. Parametri di configurazione

Nota
  • Il SECRETS_MANAGER tipo è supportato solo per l'azione Comandi.

  • I segreti a cui si fa riferimento nell'azione Commands verranno cancellati nei registri di compilazione in modo simile a. CodeBuild Tuttavia, gli utenti della pipeline che dispongono dell'accesso Edit alla pipeline possono comunque potenzialmente accedere a questi valori segreti modificando i comandi.

  • Per utilizzare il SecretsManager, devi aggiungere le seguenti autorizzazioni al tuo ruolo di servizio di pipeline:

    { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "SECRET_ARN" ] }

Autorizzazioni del ruolo di servizio: azione dei comandi

Per il supporto dei comandi, aggiungi quanto segue alla tua dichiarazione sulla politica:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:iam::*:role/Service*", "arn:aws:iam::*:role/Service*" ] } ] }

Dichiarazione di azione (esempio)

YAML
name: Commands_action actionTypeId: category: Compute owner: AWS provider: Commands version: '1' runOrder: 1 configuration: {} commands: - ls - echo hello - 'echo pipeline Execution Id is #{codepipeline.PipelineExecutionId}' outputArtifacts: - name: BuildArtifact files: - **/ inputArtifacts: - name: SourceArtifact outputVariables: - AWS_DEFAULT_REGION region: us-east-1 namespace: compute
JSON
{ "name": "Commands_action", "actionTypeId": { "category": "Compute", "owner": "AWS", "provider": "Commands", "version": "1" }, "runOrder": 1, "configuration": {}, "commands": [ "ls", "echo hello", "echo pipeline Execution Id is #{codepipeline.PipelineExecutionId}" ], "outputArtifacts": [ { "name": "BuildArtifact", "files": [ "**/" ] } ], "inputArtifacts": [ { "name": "SourceArtifact" } ], "outputVariables": [ "AWS_DEFAULT_REGION" ], "region": "us-east-1", "namespace": "compute" }

Le risorse correlate seguenti possono essere utili durante l'utilizzo di questa operazione.