

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
<a name="action-reference-Commands"></a>

L'azione Comandi consente di eseguire comandi 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 artefatti 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](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_ActionDeclaration.html) e [OutputArtifact](https://docs.aws.amazon.com/codepipeline/latest/APIReference/API_OutputArtifact.html) nella *Documentazione di riferimento dell'API AWS CodePipeline *.

**Importante**  
Questa azione utilizza l' CodeBuild elaborazione CodePipeline gestita 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.

**Topics**
+ [Considerazioni sull'azione Comandi](#action-reference-Commands-considerations)
+ [Autorizzazioni relative ai ruoli di servizio](#action-reference-Commands-policy)
+ [Tipo di operazione](#action-reference-Commands-type)
+ [Parametri di configurazione](#action-reference-Commands-config)
+ [Input artifact (Artefatti di input)](#action-reference-Commands-input)
+ [Artefatti di output](#action-reference-Commands-output)
+ [Variabili di ambiente](#action-reference-Commands-envvars)
+ [Autorizzazioni del ruolo di servizio: azione dei comandi](#edit-role-Commands)
+ [Dichiarazione di azione (esempio)](#action-reference-Commands-example)
+ [Consulta anche](#action-reference-Commands-links)

## Considerazioni sull'azione Comandi
<a name="action-reference-Commands-considerations"></a>

Le considerazioni seguenti si applicano all'azione Comandi.
+ L'azione dei comandi utilizza CodeBuild risorse simili all' CodeBuild azione, ma consente i comandi in 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 build per il tuo account in. CodeBuild Le build eseguite dall'azione Comandi verranno conteggiate ai fini dei limiti di compilazione simultanea 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 tra 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 di 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 di servizio CodePipeline](how-to-custom-role.md#how-to-update-role-new-services)
+ Le autorizzazioni necessarie per visualizzare i log nella console sono dettagliate in. [Autorizzazioni necessarie per visualizzare i log di calcolo nella console](security-iam-permissions-console-logs.md)
+ A differenza di altre azioni in CodePipeline, non si impostano campi nella configurazione dell'azione; si impostano i campi di configurazione dell'azione al di fuori della configurazione dell'azione.

## Autorizzazioni relative ai ruoli di servizio
<a name="action-reference-Commands-policy"></a>

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

Se si utilizza un ruolo di servizio esistente, per utilizzare l'azione Comandi è necessario aggiungere le seguenti autorizzazioni per il ruolo di servizio.
+ registri: CreateLogGroup
+ registri: CreateLogStream
+ registri: PutLogEvents

Nella dichiarazione sulla politica relativa al ruolo del servizio, riduci le autorizzazioni a livello di 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 delle azioni, è 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](security-iam-permissions-console-logs.md)

## Tipo di operazione
<a name="action-reference-Commands-type"></a>
+ Categoria: `Compute`
+ Proprietario: `AWS`
+ Provider: `Commands`
+ Versione: `1`

## Parametri di configurazione
<a name="action-reference-Commands-config"></a>

**Comandi**  
Obbligatorio: sì  
È possibile fornire comandi di shell per l'`Commands`azione da eseguire. Nella console, i comandi vengono immessi su righe separate. Nella CLI, i comandi vengono immessi come stringhe separate.  
I formati multilinea non sono supportati e genereranno un messaggio di errore. È necessario utilizzare il formato a riga singola per immettere i comandi nel campo **Comandi**.
I ComputeType valori EnvironmentType and corrispondono a quelli di CodeBuild. Supportiamo un sottoinsieme dei tipi disponibili. Per ulteriori informazioni, consulta [Tipi di calcolo di ambiente di compilazione](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html).

**EnvironmentType**  
Obbligatorio: no  
L'immagine del sistema operativo per l'ambiente di compilazione che supporta l'azione Commands. Di seguito sono riportati i valori validi per gli ambienti di compilazione:  
+ LINUX\$1CONTAINER
+ WINDOWS\$1SERVER\$12022\$1CONTAINER
La selezione di **EnvironmentType**consentirà quindi il tipo di calcolo per quel sistema operativo nel campo. **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 di creazione](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html) nella Guida per l' CodeBuild utente.  
Se non viene specificato, per impostazione predefinita il calcolo per l'ambiente di compilazione è il seguente:  
+ **Tipo di calcolo**: BUILD\$1 \$1SMALL GENERAL1
+ **Tipo di ambiente: LINUX\$1CONTAINER**

**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.  
+ GENERAL1BUILD\$1 \$1SMALL
+ COSTRUZIONE\$1 GENERAL1 \$1MEDIA
+ COSTRUZIONE\$1 GENERAL1 \$1GRANDE
Alcuni tipi di elaborazione non sono compatibili con determinati tipi di ambiente. Ad esempio, WINDOWS\$1SERVER\$12022\$1CONTAINER non è compatibile con BUILD\$1 \$1SMALL. GENERAL1 L'utilizzo di combinazioni incompatibili causa l'esito negativo dell'azione e genera un errore di runtime.

**Variabili di output**  
Obbligatorio: no  
Specificate i nomi delle variabili dell'ambiente che desiderate esportare. Per un riferimento alle variabili di CodeBuild ambiente, consulta [Variabili di ambiente negli ambienti di compilazione](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html) nella *Guida CodeBuild per l'utente*. 

**File**  
Obbligatorio: no  
Potete fornire i file che desiderate esportare come artefatti di output per l'azione.  
Il formato supportato per i file è lo stesso dei modelli di CodeBuild file. Ad esempio, immettere `**/` per tutti i file. Per ulteriori informazioni, consulta il [riferimento alle specifiche di Build CodeBuild nella Guida per](https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html#build-spec.artifacts.files) *l'CodeBuild utente*.  

![\[La pagina Modifica azione per una nuova pipeline con l'azione Comandi\]](http://docs.aws.amazon.com/it_it/codepipeline/latest/userguide/images/commands-edit-screen.png)


**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)
<a name="action-reference-Commands-input"></a>
+ **Numero di artefatti:** `1 to 10`

## Artefatti di output
<a name="action-reference-Commands-output"></a>
+ **Numero di artefatti:** `0 to 1` 

## Variabili di ambiente
<a name="action-reference-Commands-envvars"></a>

**Chiave**  
La chiave in una coppia di variabili d'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 da azioni di pipeline o variabili di pipeline.  
Quando si utilizza il `SECRETS_MANAGER` tipo, questo valore deve essere il nome di un segreto già archiviato in AWS Secrets Manager.

**Tipo**  
Speciifica il tipo di utilizzo del valore della variabile di ambiente. Il valore può essere `PLAINTEXT` o `SECRETS_MANAGER`. Se il valore è`SECRETS_MANAGER`, fornite il riferimento Secrets nel `EnvironmentVariable` valore. Se il valore non viene specificato, viene usato il valore predefinito `PLAINTEXT`.  
Sconsigliamo vivamente l'uso di variabili di ambiente in *testo semplice* per memorizzare valori sensibili, in particolare le credenziali. AWS Quando si utilizza la CodeBuild console o AWS CLI, le variabili di ambiente in *testo semplice vengono visualizzate in testo semplice*. Per i valori sensibili, si consiglia di utilizzare invece il tipo `SECRETS_MANAGER`.

**Nota**  
Quando inserite la configurazione e `type` per le variabili di ambiente `name``value`, 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](#action-reference-Commands-config)

**Nota**  
Il `SECRETS_MANAGER` tipo è supportato solo per l'azione Commands.
I segreti a cui si fa riferimento nell'azione Comandi verranno oscurati nei log di build in modo simile a. CodeBuild Tuttavia, gli utenti della pipeline che dispongono dell'accesso **Modifica** alla pipeline possono comunque accedere potenzialmente a questi valori segreti modificando i comandi.
Per utilizzare 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
<a name="edit-role-Commands"></a>

Per il supporto ai comandi, aggiungi quanto segue alla tua dichiarazione 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)
<a name="action-reference-Commands-example"></a>

------
#### [ 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"
}
```

------

## Consulta anche
<a name="action-reference-Commands-links"></a>

Le risorse correlate seguenti possono essere utili durante l'utilizzo di questa operazione.
+ [Tutorial: crea una pipeline che esegue comandi con compute (tipo V2)](tutorials-commands.md)— Questo tutorial fornisce una pipeline di esempio con l'azione Commands.