

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à.

# Usa i componenti per personalizzare l'immagine di Image Builder
<a name="manage-components"></a>

Image Builder utilizza l'applicazione di gestione dei componenti AWS Task Orchestrator and Executor (AWSTOE) per orchestrare flussi di lavoro complessi. I componenti di compilazione e test che funzionano con l' AWSTOE applicazione si basano su documenti YAML che definiscono gli script per personalizzare o testare l'immagine. Per le immagini AMI, Image Builder installa i componenti e l'applicazione di gestione dei AWSTOE componenti sulle istanze di build e test di Amazon EC2. Per le immagini dei container, i componenti e l'applicazione di gestione dei AWSTOE componenti vengono installati all'interno del contenitore in esecuzione. 

Image Builder lo utilizza AWSTOE per eseguire tutte le attività su istanza. Non è richiesta alcuna configurazione aggiuntiva con cui interagire AWSTOE quando si eseguono i comandi di Image Builder o si utilizza la console Image Builder.

**Nota**  
Quando un componente gestito da Amazon raggiunge la fine del ciclo di vita del supporto, non viene più sottoposto a manutenzione. Circa quattro settimane prima che ciò si verifichi, tutti gli account che utilizzano il componente ricevono una notifica e un elenco delle ricette interessate presenti nel proprio account. Dashboard AWS Health Per ulteriori informazioni AWS Health, consulta la [Guida AWS Health per l'utente](https://docs.aws.amazon.com/health/latest/ug/).

**Fasi del flusso di lavoro per la creazione di una nuova immagine**  
Il flusso di lavoro di Image Builder per la creazione di nuove immagini include le due fasi distinte seguenti.

1. **Fase di creazione** (pre-snapshot): durante la fase di creazione, apporti modifiche all'istanza di compilazione di Amazon EC2 che esegue l'immagine di base, per creare la linea di base per la nuova immagine. Ad esempio, la ricetta può includere componenti che installano un'applicazione o modificano le impostazioni del firewall del sistema operativo.

   Le seguenti fasi del documento del componente vengono eseguite durante la fase di creazione:
   + build
   + validate

   Una volta completata con successo questa fase, Image Builder crea un'istantanea o un'immagine contenitore che utilizza per la fase di test e oltre.

1. **Fase di test** (post-snapshot): durante la fase di test, ci sono alcune differenze tra le immagini che creano le AMI e le immagini dei contenitori. Per i flussi di lavoro AMI, Image Builder avvia un'istanza EC2 dall'istantanea creata come fase finale della fase di creazione. I test vengono eseguiti sulla nuova istanza per convalidare le impostazioni e garantire che l'istanza funzioni come previsto. Per i flussi di lavoro in container, i test vengono eseguiti sulla stessa istanza utilizzata per la creazione.

   La fase seguente del documento relativo ai componenti viene eseguita per ogni componente incluso nella ricetta durante la fase di test di creazione dell'immagine: 
   + test

   Questa fase dei componenti si applica sia ai tipi di componenti Build che Test. Una volta completata con successo questa fase, Image Builder può creare e distribuire l'immagine finale dall'istantanea o dall'immagine del contenitore.

**Nota**  
Sebbene il framework AWSTOE applicativo consenta di definire molte fasi in un documento componente, Image Builder ha regole rigide sulle fasi di esecuzione e sulle fasi in cui le esegue. Affinché un componente venga eseguito durante la fase di creazione dell'immagine, il documento del componente deve definire almeno una di queste fasi: `build` o`validate`. Affinché un componente venga eseguito durante la fase di test dell'immagine, il documento del componente deve definire la `test` fase e non altre fasi.  
Poiché Image Builder esegue le fasi in modo indipendente, il concatenamento dei riferimenti nei documenti dei componenti non può oltrepassare i limiti delle fasi. Non è possibile concatenare un valore da una fase in esecuzione nella fase di creazione a una fase in esecuzione nella fase di test. Tuttavia, è possibile definire i parametri di input alla destinazione desiderata e passare i valori tramite la riga di comando. Per ulteriori informazioni sull'impostazione dei parametri dei componenti nelle ricette di Image Builder, vedere. [Tutorial: creare un componente personalizzato con parametri di input](tutorial-component-parameters.md)

Per facilitare la risoluzione dei problemi sull'istanza di build o test, AWSTOE crea una cartella di registro che contiene il documento di input e i file di registro per tenere traccia di ciò che accade ogni volta che viene eseguito un componente. Se hai configurato un bucket Amazon S3 nella configurazione della pipeline, anche i log vengono scritti lì. Per ulteriori informazioni sui documenti YAML e sull'output dei log, consulta. [Usa il framework AWSTOE dei documenti dei componenti per i componenti personalizzati](toe-use-documents.md)

**Suggerimento**  
Quando hai molti componenti di cui tenere traccia, l'etichettatura ti aiuta a identificare un componente o una versione specifici in base ai tag che gli hai assegnato. Per ulteriori informazioni sull'etichettatura delle risorse utilizzando i comandi Image Builder in, AWS CLI consultate [Aggiunta di tag alle risorse ](tag-resources.md) la sezione di questa guida.

Questa sezione spiega come elencare, visualizzare, creare e importare componenti utilizzando la console Image Builder o i comandi di. AWS CLI

**Topics**
+ [Elenca e visualizza i dettagli dei componenti](component-details.md)
+ [Usa Marketplace AWS i componenti per personalizzare l'immagine](use-marketplace-components.md)
+ [Usa componenti gestiti per personalizzare l'immagine di Image Builder](use-managed-components.md)
+ [Sviluppa componenti personalizzati per la tua immagine Image Builder](create-custom-components.md)
+ [In che modo Image Builder utilizza l' AWS Task Orchestrator and Executor applicazione per gestire i componenti](toe-component-manager.md)

# Elenca e visualizza i dettagli dei componenti
<a name="component-details"></a>

Questa sezione descrive come trovare informazioni e visualizzare dettagli sui componenti utilizzati nelle ricette di EC2 Image Builder.

**Topics**
+ [Elenca i componenti di Image Builder](#list-components)
+ [Elenca le versioni di build dei componenti da AWS CLI](#cli-list-component-versions)
+ [Ottenete i dettagli dei componenti dal AWS CLI](#cli-get-component)
+ [Ottieni dettagli sulla politica dei componenti da AWS CLI](#cli-get-component-policy)

## Elenca i componenti di Image Builder
<a name="list-components"></a>

È possibile utilizzare uno dei seguenti metodi per elencare e filtrare i componenti di Image Builder.

------
#### [ Console di gestione AWS ]

Per visualizzare un elenco di componenti in Console di gestione AWS, procedi nel seguente modo:

1. Apri la console EC2 Image Builder [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)all'indirizzo.

1. Seleziona **Componenti** dal pannello di navigazione. Per impostazione predefinita, Image Builder mostra un elenco di componenti di proprietà dell'account.

1. Facoltativamente, è possibile filtrare in base alla proprietà dei componenti. Per visualizzare i componenti di cui non sei proprietario, ma a cui hai accesso, espandi l'elenco a discesa del tipo di proprietario e seleziona uno dei valori. L'elenco dei tipi di proprietario si trova nella barra di ricerca, accanto alla casella di testo di ricerca. Puoi scegliere fra i seguenti valori:
   + **Marketplace AWS**— Componenti associati direttamente all'abbonamento di un Marketplace AWS prodotto.
   + **Avvio rapido (gestito da Amazon)**: componenti disponibili pubblicamente che Amazon crea e gestisce.
   + **Di mia proprietà**: componenti creati da te. Questa è la selezione predefinita.
   + **Condivisi con me**: componenti che altri hanno creato e condiviso con te dal loro account.
   + **Gestiti da terze parti**: componenti di proprietà di terzi a cui ti sei abbonato. Marketplace AWS

------
#### [ AWS CLI ]

L'esempio seguente mostra come utilizzare il **[list-components](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/list-components.html)** comando per restituire un elenco di componenti Image Builder di proprietà dell'account.

```
aws imagebuilder list-components
```

Facoltativamente, è possibile filtrare in base alla proprietà dei componenti. L'attributo owner definisce chi possiede i componenti che si desidera elencare. Per impostazione predefinita, questa richiesta restituisce un elenco di componenti di proprietà dell'account. Per filtrare i risultati in base al proprietario del componente, specifica uno dei seguenti valori con il `--owner` parametro quando esegui il **list-components** comando.

**Valori del proprietario del componente**
+ `AWSMarketplace`
+ `Amazon`
+ `Self`
+ `Shared`
+ `ThirdParty`

Gli esempi seguenti mostrano il **list-components** comando con il `--owner` parametro per filtrare i risultati.

```
aws imagebuilder list-components --owner Self
{
    "requestId": "012a3456-b789-01cd-e234-fa5678b9012b",
    "componentVersionList": [
        {
            "arn": "arn:aws:imagebuilder:us-west-2:123456789012:component/sample-component01/1.0.0",
            "name": "sample-component01",
            "version": "1.0.0",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "dateCreated": "2020-09-24T16:58:24.444Z"
        },
        {
            "arn": "arn:aws:imagebuilder:us-west-2:123456789012:component/sample-component01/1.0.1",
            "name": "sample-component01",
            "version": "1.0.1",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "dateCreated": "2021-07-10T03:38:46.091Z"
        }
    ]
}
```

```
aws imagebuilder list-components --owner Amazon
```

```
aws imagebuilder list-components --owner Shared
```

```
aws imagebuilder list-components --owner ThirdParty
```

------

## Elenca le versioni di build dei componenti da AWS CLI
<a name="cli-list-component-versions"></a>

L'esempio seguente mostra come utilizzare il **[list-component-build-versions](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/list-component-build-versions.html)** comando per elencare le versioni di build dei componenti che hanno una versione semantica specifica. Per ulteriori informazioni sul controllo delle versioni semantiche per le risorse di Image Builder, vedere. [Versionamento semantico in Image Builder](ibhow-semantic-versioning.md)

```
aws imagebuilder list-component-build-versions --component-version-arn arn:aws:imagebuilder:us-west-2:123456789012:component/example-component/1.0.1
{
    "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111",
    "componentSummaryList": [
        {
            "arn": "arn:aws:imagebuilder:us-west-2:123456789012:component/examplecomponent/1.0.1/1",
            "name": "examplecomponent",
            "version": "1.0.1",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "description": "An example component that builds, validates and tests an image",
            "changeDescription": "Updated version.",
            "dateCreated": "2020-02-19T18:53:45.940Z",
            "tags": {
                "KeyName": "KeyValue"
            }
        }
    ]
}
```

## Ottenete i dettagli dei componenti dal AWS CLI
<a name="cli-get-component"></a>

L'esempio seguente mostra come utilizzare il **[get-component](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/get-component.html)** comando per ottenere i dettagli del componente quando si specifica l'Amazon Resource Name (ARN) del componente.

```
aws imagebuilder get-component --component-build-version-arn arn:aws:imagebuilder:us-west-2:123456789012:component/example-component/1.0.1/1
			{
    "requestId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11112",
    "component": {
        "arn": "arn:aws:imagebuilder:us-west-2:123456789012:component/examplecomponent/1.0.1/1",
        "name": "examplecomponent",
        "version": "1.0.1",
        "type": "BUILD",
        "platform": "Linux",
        "owner": "123456789012",
        "data": "name: HelloWorldTestingDocument\ndescription: This is hello world testing document... etc.\"\n",
        "encrypted": true,
        "dateCreated": "2020-09-24T16:58:24.444Z",
        "tags": {}
    }
}
```

## Ottieni dettagli sulla politica dei componenti da AWS CLI
<a name="cli-get-component-policy"></a>

L'esempio seguente mostra come utilizzare il **[get-component-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/get-component-policy.html)** comando per ottenere dettagli sulla politica di un componente quando si specifica l'ARN del componente.

```
aws imagebuilder get-component-policy --component-arn arn:aws:imagebuilder:us-west-2:123456789012:component/example-component/1.0.1
```

# Usa Marketplace AWS i componenti per personalizzare l'immagine
<a name="use-marketplace-components"></a>

Oltre a un'ampia selezione di immagini create da Independent Software Vendors (ISVs), Marketplace AWS offre componenti che è possibile utilizzare per personalizzare le immagini di Image Builder. È necessario abbonarsi a questi Marketplace AWS componenti prima di poterli utilizzare nella ricetta delle immagini per creare una nuova immagine.

Quando si specifica un Marketplace AWS componente in una ricetta di immagini, Image Builder convalida l'abbonamento ed esegue controlli di dipendenza per garantire che l'utente disponga delle risorse necessarie per utilizzarlo. Quando la convalida ha esito positivo, Image Builder crea download sicuri per il componente e i relativi artefatti da utilizzare nelle build di pipeline di immagini.

## Scopri i componenti Marketplace AWS
<a name="use-marketplace-components-discover"></a>

È possibile scoprire i componenti Marketplace AWS software da utilizzare nelle ricette dalla pagina **Scopri i prodotti** nella console Image Builder, come segue.

1. Apri la console EC2 Image Builder [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)all'indirizzo.

1. Dal pannello di navigazione, scegli **Scopri i prodotti** nella **Marketplace AWS**sezione.

1. Seleziona la scheda **Components** (Componenti). Questa scheda elenca tutti i Marketplace AWS prodotti che utilizzano l'opzione di consegna che include i componenti associati in Marketplace AWS.

1. Per cercare prodotti software specifici che includono componenti, puoi inserire parte del nome nella barra di ricerca o filtrare per `Status``Operating System`,`Publisher`, o`Categories`. La barra di ricerca contiene anche i controlli di impaginazione per i risultati.

### Risultati
<a name="w2aac13c26b7b7"></a>

Ogni Marketplace AWS prodotto ha il proprio pannello di dettaglio che include le seguenti informazioni.

**Il nome e il logo del Marketplace AWS prodotto**  
Il nome del prodotto software è collegato ai dettagli del prodotto in Marketplace AWS. È possibile selezionare il collegamento per ulteriori informazioni sul prodotto in Marketplace AWS. In alternativa, puoi visualizzare un riepilogo delle opzioni di abbonamento e iscriverti direttamente dai risultati della ricerca con il pulsante **Visualizza le opzioni di abbonamento** se hai già fatto la tua ricerca.

**Versione**  
Contiene la versione principale del componente.

**Sistema operativo**  
Il sistema operativo su cui il componente è progettato per funzionare.

**Editore**  
L'editore del componente. Questo è collegato alla pagina dei dettagli dell'editore in Marketplace AWS. La pagina dei dettagli dell'editore si apre in una nuova scheda del browser.

**Categorie**  
Una o più categorie di Marketplace AWS prodotti applicabili al componente.

**Stato**  
Indica se sei abbonato a questo prodotto. Se non sei abbonato, puoi scegliere **Visualizza le opzioni di abbonamento per visualizzare un riepilogo delle opzioni** di abbonamento per il Marketplace AWS prodotto e, facoltativamente, abbonarti direttamente dalla console Image Builder.

**Componenti associati**  
Se il Marketplace AWS prodotto ha una o più versioni incluse nell'abbonamento, queste vengono visualizzate nella sezione **Componenti associati**. La sezione è inizialmente compressa e mostra il conteggio dei componenti associati. Puoi espandere la sezione per visualizzare ulteriori dettagli.

**Nota**  
Il componente Center for Internet Security (CIS) associato al relativo prodotto Marketplace AWS illustrato non viene visualizzato nei risultati **dei prodotti Discover**. Se ti abboni al loro prodotto illustrato, il componente associato viene visualizzato nella pagina **Abbonamenti** e come componente di terze parti nella finestra di dialogo **Crea una ricetta di immagini**. Per ulteriori informazioni sul componente, vedere[Componenti di tempra CIS](toe-cis.md).

## Abbonarsi ai Marketplace AWS componenti
<a name="use-marketplace-components-subscribe"></a>

Dopo aver trovato un Marketplace AWS prodotto con componenti che desideri utilizzare nelle tue ricette, puoi abbonarti direttamente dalla console Image Builder, come segue, oppure puoi abbonarti dalla Marketplace AWS console.

1. Apri la console EC2 Image Builder [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)all'indirizzo.

1. Dal pannello di navigazione, scegli **Scopri i prodotti** nella **Marketplace AWS**sezione.

1. Seleziona la scheda **Components** (Componenti). Questa scheda elenca tutti i Marketplace AWS prodotti che utilizzano l'opzione di consegna che include i componenti associati in Marketplace AWS.

1. Per cercare un Marketplace AWS prodotto specifico, inserisci parte del nome nella barra di ricerca. Se conosci l'editore, ma non conosci il nome esatto del prodotto o come si scrive, puoi anche `Publisher` filtrare per ottenere un elenco dei prodotti disponibili per l'editore.

1. Seleziona il prodotto a cui desideri abbonarti dall'elenco dei risultati e scegli **Visualizza le opzioni di abbonamento**. Questo mostra un riepilogo delle opzioni di abbonamento per il Marketplace AWS prodotto.

1. Seleziona **Abbonati** per abbonarti al prodotto senza uscire dalla console Image Builder. Riceverai una notifica che l'abbonamento è in corso di elaborazione. Dopo l'iscrizione, lo **stato** viene aggiornato a`Subscribed`.

Per ulteriori informazioni sui Marketplace AWS prodotti a cui sei attualmente abbonato, consulta i passaggi della console descritti in. [Marketplace AWS abbonamenti in Image Builder](integ-marketplace.md#integ-marketplace-subs)

## Usare un Marketplace AWS componente in una ricetta di immagini di Image Builder
<a name="use-marketplace-components-recipe"></a>

È possibile utilizzare Marketplace AWS i componenti nelle ricette di immagini di Image Builder nello stesso modo in cui si utilizzano altri tipi di componenti. Per la maggior parte dei componenti associati a un prodotto di Marketplace AWS immagini, la categoria di proprietà è`Marketplace AWS`. Ad esempio, per utilizzare un componente di compilazione di un Marketplace AWS prodotto a cui sei abbonato, scegli **Aggiungi componenti di compilazione** e selezionalo `Marketplace AWS` dall'elenco. Si apre un pannello di selezione sul lato destro dell'interfaccia della console che elenca Marketplace AWS i componenti.

**Nota**  
Se state cercando il componente di protezione avanzata CIS, selezionate`Third party managed`, dall'elenco di proprietà anziché. `Marketplace AWS`

Per ulteriori informazioni su come selezionare, disporre e configurare i parametri per i componenti, consulta. [Crea una nuova versione di una ricetta di immagini](create-image-recipes.md)

# Usa componenti gestiti per personalizzare l'immagine di Image Builder
<a name="use-managed-components"></a>

I componenti gestiti vengono creati AWS, a volte in collaborazione con, un'organizzazione di terze parti, come ad esempio il Center for Internet Security (CIS). Quando utilizzi componenti gestiti nelle tue ricette di immagini o contenitori, Amazon fornisce le versioni più recenti dei componenti a cui sono applicate patch e altri aggiornamenti. Per ottenere un elenco dei componenti o per ottenere informazioni sui componenti, consulta[Elenca e visualizza i dettagli dei componenti](component-details.md).

Il seguente elenco di componenti AWS gestiti in primo piano include un componente che è disponibile per l'utilizzo quando ci si abbona a CIS con protezione avanzata AMIs tramite. Marketplace AWS

**Topics**
+ [Installazione dell'applicazione dei componenti gestiti dal pacchetto Distributor per le immagini Windows di Image Builder](mgdcomponent-distributor-win.md)
+ [Componenti di tempra CIS](toe-cis.md)
+ [Amazon ha gestito i componenti di protezione STIG per Image Builder](ib-stig.md)

# Installazione dell'applicazione dei componenti gestiti dal pacchetto Distributor per le immagini Windows di Image Builder
<a name="mgdcomponent-distributor-win"></a>

AWS Systems Manager Distributor ti aiuta a impacchettare e pubblicare software nei nodi gestiti. AWS Systems Manager È possibile creare pacchetti e pubblicare il proprio software oppure utilizzare Distributor per trovare e pubblicare pacchetti software AWS forniti dagli agenti. Per ulteriori informazioni su Systems Manager Distributor, vedere [AWS Systems Manager Distributor nella Guida](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor.html) per l'*AWS Systems Manager utente*.

**Componenti gestiti per Distributor**  
I seguenti componenti gestiti di Image Builder utilizzano AWS Systems Manager Distributor per installare pacchetti di applicazioni su istanze Windows.
+ Il componente `distributor-package-windows` gestito utilizza AWS Systems Manager Distributor per installare i pacchetti di applicazioni specificati nell'istanza di creazione dell'immagine di Windows. Per configurare i parametri quando includi questo componente nella ricetta, consulta[Configura `distributor-package-windows` come componente autonomo](#mgdcomponent-distributor-config-standalone).
+ Il `aws-vss-components-windows` componente utilizza AWS Systems Manager Distributor per installare il `AwsVssComponents` pacchetto sull'istanza di creazione dell'immagine di Windows. Per configurare i parametri quando includi questo componente nella ricetta, vedi[Configura come componente autonomo `aws-vss-components-windows`](#mgdcomponent-vss-config-standalone).

Per ulteriori informazioni su come utilizzare i componenti gestiti nella ricetta di Image Builder, vedere [Crea una nuova versione di una ricetta di immagini](create-image-recipes.md) per le ricette di immagini o [Crea una nuova versione di una ricetta contenitore](create-container-recipes.md) per le ricette dei contenitori. *Per ulteriori informazioni sul `AwsVssComponents` pacchetto, consulta [Creare uno snapshot coerente con l'applicazione VSS nella Amazon EC2 User](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/application-consistent-snapshots.html) Guide.*

## Prerequisiti
<a name="mgdcomponent-distributor-prereq"></a>

Prima di utilizzare i componenti Image Builder che si basano su Systems Manager Distributor per installare i pacchetti di applicazioni, è necessario assicurarsi che siano soddisfatti i seguenti prerequisiti.
+ I componenti di Image Builder che utilizzano Systems Manager Distributor per installare i pacchetti di applicazioni sull'istanza necessitano dell'autorizzazione per chiamare l'API Systems Manager. Prima di utilizzare i componenti in una ricetta di Image Builder, è necessario creare la policy e il ruolo IAM che concedono l'autorizzazione. Per configurare le autorizzazioni, consulta. [Configurazione delle autorizzazioni di Systems Manager Distributor](#mgdcomponent-distributor-permissions)

**Nota**  
Image Builder attualmente non supporta i pacchetti Systems Manager Distributor che riavviano l'istanza. Ad esempio, i pacchetti `AWSNVMe``AWSPVDrivers`, e `AwsEnaNetworkDriver` Distributor riavviano l'istanza e quindi non sono consentiti.

## Configurazione delle autorizzazioni di Systems Manager Distributor
<a name="mgdcomponent-distributor-permissions"></a>

Il `distributor-package-windows` componente e gli altri componenti che lo utilizzano, ad esempio`aws-vss-components-windows`, richiedono un'autorizzazione aggiuntiva per l'esecuzione dell'istanza di build. L'istanza di build deve essere in grado di chiamare l'API Systems Manager per avviare l'installazione di Distributor e verificare il risultato.

Segui queste procedure Console di gestione AWS per creare una policy e un ruolo IAM personalizzati che concedano l'autorizzazione ai componenti di Image Builder per installare i pacchetti Systems Manager Distributor dall'istanza di build.

**Fase 1: Creare una policy**  
Crea una policy IAM per le autorizzazioni dei distributori.

1. Aprire la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel pannello di navigazione, scegli **Policy** e **Crea policy**.

1. Nella pagina **Crea policy**, scegli la scheda **JSON**, quindi sostituisci il contenuto predefinito con la seguente policy JSON, sostituendo la partizione, la regione e l'ID dell'account se necessario o utilizzando caratteri jolly.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "AllowDistributorSendCommand",
               "Effect": "Allow",
               "Action": "ssm:SendCommand",
               "Resource": [
                   "arn:aws:ssm:*::document/AWS-ConfigureAWSPackage",
                   "arn:aws:ec2:*:111122223333:instance/*"
               ]
           },
           {
               "Sid": "AllowGetCommandInvocation",
               "Effect": "Allow",
               "Action": "ssm:GetCommandInvocation",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Scegliere **Review policy (Esamina policy)**.

1. Per **Nome**, immettere un nome per identificare la policy, ad esempio `InvokeDistributor` o un altro nome a scelta.

1. (Facoltativo) Per **Descrizione**, immettere la descrizione dello scopo della policy.

1. Seleziona **Create Policy** (Crea policy).

**Fase 2: Creare un ruolo**  
Crea un ruolo IAM per le autorizzazioni del distributore.

1. Dal pannello di navigazione della console IAM, scegli **Ruoli**, quindi scegli **Crea** ruolo.

1. In **Select type of trusted entity (Seleziona tipo di entità attendibile)**, scegli **Servizio AWS**.

1. Sotto l'opzione **Choose the service that will use this role (Scegli il servizio che utilizzerà questo ruolo)** scegliere **EC2**, quindi **Next: Permissions (Successivo: Autorizzazioni)**.

1. In **Select your use case (Seleziona il caso d'uso)** selezionare **EC2** e quindi scegliere **Next: Permissions (Successivo: autorizzazioni)**.

1. Nell'elenco delle politiche, seleziona la casella di controllo accanto ad **Amazon SSMManaged InstanceCore**. (Digitare `SSM` nella casella di ricerca per restringere l'elenco).

1. In questo elenco di politiche, seleziona la casella accanto a **EC2InstanceProfileForImageBuilder**. (Digitare `ImageBuilder` nella casella di ricerca per restringere l'elenco).

1. Scegliere **Next: Tags (Successivo: Tag)**.

1. (Facoltativo) Aggiungi una o più coppie di tag chiave-valore per organizzare, tracciare o controllare l'accesso per questo ruolo, quindi scegli **Avanti: revisione**.

1. Per **Nome ruolo**, immettere un nome per il nuovo ruolo, ad esempio `InvokeDistributor` o un altro nome a scelta.

1. (Facoltativo) Per **Role description (Descrizione ruolo)**, sostituire il testo predefinito con una descrizione dello scopo del ruolo.

1. Selezionare **Create role (Crea ruolo)**. Il sistema visualizza di nuovo la pagina **Ruoli**.

**Fase 3: Allega la policy al ruolo**  
Il passaggio finale per configurare le autorizzazioni di distributore consiste nell'associare la policy IAM al ruolo IAM.

1. Dalla pagina **Ruoli** della console IAM, scegli il ruolo che hai appena creato. Viene visualizzata la pagina **Riepilogo** del ruolo.

1. Scegliere **Collega policy**.

1. Cerca la policy che hai creato nella procedura precedente e seleziona la casella di controllo accanto al nome.

1. Scegli **Collega policy**.

Utilizzate questo ruolo nella risorsa Image Builder Infrastructure Configuration per qualsiasi immagine che include componenti che utilizzano Systems Manager Distributor. Per ulteriori informazioni, consulta [Creazione di una configurazione dell'infrastruttura](create-infra-config.md).

## Configura `distributor-package-windows` come componente autonomo
<a name="mgdcomponent-distributor-config-standalone"></a>

Per utilizzare il `distributor-package-windows` componente in una ricetta, imposta i seguenti parametri che configurano il pacchetto da installare.

**Nota**  
Prima di utilizzare il `distributor-package-windows` componente in una ricetta, è necessario assicurarsi che tutti i requisiti [Prerequisiti](#mgdcomponent-distributor-prereq) siano soddisfatti.
+ **Azione** (obbligatoria): specifica se installare o disinstallare il pacchetto. I valori validi includono `Install` e `Uninstall`. Il valore predefinito è. `Install`
+ **PackageName**(Obbligatorio): il nome del pacchetto Distributor da installare o disinstallare. Per un elenco di nomi di pacchetto validi, vedere[Trova i pacchetti Distributor](#mgdcomponent-distributor-find-pkg).
+ **PackageVersion**(Facoltativo): la versione del pacchetto Distributor da installare. PackageVersion il valore predefinito è la versione consigliata.
+ **AdditionalArguments**(Facoltativo): una stringa JSON che contiene i parametri aggiuntivi da fornire allo script per installare, disinstallare o aggiornare un pacchetto. Per ulteriori informazioni, consulta **AdditionalArguments** nella **sezione [AWS:ConfigurePackage](https://docs.aws.amazon.com/systems-manager/latest/userguide/documents-command-ssm-plugin-reference.html#aws-configurepackage) Inputs della pagina di riferimento del plug-in** del documento **Systems Manager Command**.

## Configura come componente autonomo `aws-vss-components-windows`
<a name="mgdcomponent-vss-config-standalone"></a>

Quando si utilizza il `aws-vss-components-windows` componente in una ricetta, è possibile facoltativamente impostare il `PackageVersion` parametro per utilizzare una versione specifica del `AwsVssComponents` pacchetto. Quando si omette questo parametro, per impostazione predefinita il componente utilizza la versione consigliata del pacchetto. `AwsVssComponents`

**Nota**  
Prima di utilizzare il `aws-vss-components-windows` componente in una ricetta, è necessario assicurarsi che tutti i parametri [Prerequisiti](#mgdcomponent-distributor-prereq) siano soddisfatti.

## Trova i pacchetti Distributor
<a name="mgdcomponent-distributor-find-pkg"></a>

Amazon e terze parti forniscono pacchetti pubblici che puoi installare con Systems Manager Distributor.

Per visualizzare i pacchetti disponibili in Console di gestione AWS, accedi alla [AWS Systems Manager console](https://console.aws.amazon.com/systems-manager/;) e scegli **Distributor** dal pannello di navigazione. La pagina **Distributore** mostra tutti i pacchetti disponibili. Per ulteriori informazioni su come elencare i pacchetti disponibili con AWS CLI, consulta [Visualizza i pacchetti (riga di comando)](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor-view-packages.html) nella *Guida per l'AWS Systems Manager utente*.

È inoltre possibile creare pacchetti Systems Manager Distributor privati. Per ulteriori informazioni, consulta [Creare un pacchetto](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor-working-with-packages-create.html) nella *Guida per l'AWS Systems Manager utente*.

# Componenti di tempra CIS
<a name="toe-cis"></a>

Il Center for Internet Security (CIS) è un'organizzazione senza scopo di lucro gestita dalla comunità. I suoi esperti di sicurezza informatica collaborano per sviluppare linee guida sulla sicurezza IT che salvaguardino le organizzazioni pubbliche e private dalle minacce informatiche. La loro serie di best practice riconosciute a livello globale, note come CIS Benchmarks, aiuta le organizzazioni IT di tutto il mondo a configurare in modo sicuro i propri sistemi. [https://www.cisecurity.org/insights](https://www.cisecurity.org/insights)

**CIS Benchmarks**  
Il CIS crea e mantiene una serie di linee guida di configurazione, note come CIS Benchmark, che forniscono le migliori pratiche di configurazione per tecnologie specifiche, tra cui sistemi operativi, piattaforme cloud, applicazioni, database e altro ancora. I benchmark CIS sono riconosciuti come standard di settore da organizzazioni e standard come PCI DSS, HIPAA, DoD Cloud Computing SRG, FISMA, DFARS e FEDRAMP. [https://www.cisecurity.org/benchmark](https://www.cisecurity.org/benchmark)

**Componenti di indurimento CIS**  
Quando sottoscrivi una CIS Hardened Image in Marketplace AWS, hai anche accesso al componente di protezione avanzata associato che esegue uno script per applicare le linee guida CIS Benchmarks Level 1 per la tua configurazione. L'organizzazione CIS possiede e gestisce i componenti di protezione CIS per garantire che riflettano le linee guida più recenti.

**Nota**  
I componenti di protezione avanzata CIS non seguono le regole standard di ordinamento dei componenti nelle ricette di Image Builder. I componenti di protezione avanzata CIS funzionano sempre per ultimi per garantire che i test di benchmark vengano eseguiti rispetto all'immagine di output.

# Amazon ha gestito i componenti di protezione STIG per Image Builder
<a name="ib-stig"></a>

Le guide tecniche di implementazione della sicurezza (STIGs) sono gli standard di rafforzamento della configurazione creati dalla Defense Information Systems Agency (DISA) per proteggere i sistemi informativi e il software. Per la conformità dei propri sistemi agli standard STIG, è necessario installare, configurare e testare una serie di impostazioni di sicurezza.

Image Builder fornisce componenti di protezione STIG per aiutarvi a creare in modo più efficiente immagini conformi agli standard STIG di base. Questi componenti STIG analizzano eventuali configurazioni errate ed eseguono uno script di correzione. Non sono previsti costi aggiuntivi per l'utilizzo di componenti conformi a STIG.

**Importante**  
Con poche eccezioni, a meno che non sia specificato nei parametri, i componenti di protezione STIG non installano pacchetti di terze parti. Se sull'istanza sono già installati pacchetti di terze parti e se ci sono pacchetti correlati STIGs supportati da Image Builder per quel pacchetto, il componente di protezione avanzata li applica.

Questa pagina elenca tutti gli STIG supportati da Image Builder che vengono applicati alle istanze EC2 che Image Builder avvia quando si crea e si testa una nuova immagine. Se desideri applicare impostazioni STIG aggiuntive all'immagine, puoi creare un componente personalizzato per configurarla. Per ulteriori informazioni sui componenti personalizzati e su come crearli, consulta[Usa i componenti per personalizzare l'immagine di Image Builder](manage-components.md).

Quando create un'immagine, i componenti di protezione STIG registrano se STIGs sono supportati o meno. Ti consigliamo di esaminare i log di Image Builder per le tue immagini che utilizzano componenti di protezione STIG. Per ulteriori informazioni su come accedere e rivedere i log di Image Builder, vedere. [Risolvi i problemi relativi alle build della pipeline](troubleshooting.md#troubleshooting-pipelines)

**Livelli di conformità**
+ **Alta (Categoria I) **

  Il rischio più grave. Include qualsiasi vulnerabilità che può comportare la perdita di riservatezza, disponibilità o integrità.
+ **Medio (categoria II) **

  Include qualsiasi vulnerabilità che può comportare la perdita di riservatezza, disponibilità o integrità, ma i rischi possono essere mitigati.
+ **Basso (categoria III) **

  Eventuali vulnerabilità che degradano le misure per la protezione contro la perdita di riservatezza, disponibilità o integrità.

**Topics**
+ [Componenti di protezione avanzata di Windows STIG](#windows-os-stig)
+ [Registro della cronologia delle versioni STIG per Windows](#ib-windows-version-hist)
+ [Componenti di indurimento STIG per Linux](#linux-os-stig)
+ [Registro della cronologia delle versioni STIG per Linux](#ib-linux-version-hist)
+ [componente di validazione della conformità SCAP](#scap-compliance)

## Componenti di protezione avanzata di Windows STIG
<a name="windows-os-stig"></a>

AWSTOE I componenti di protezione avanzata di Windows STIG sono progettati per server autonomi e applicano i criteri di gruppo locali. I componenti di indurimento conformi a STIG installano e aggiornano i certificati del Dipartimento della Difesa (DoD). Inoltre rimuovono i certificati non necessari per mantenere la conformità STIG. Attualmente, le linee di base STIG sono supportate per le seguenti versioni di Windows Server: 2012 R2, 2016, 2019, 2022 e 2025.

Questa sezione elenca le impostazioni correnti per ciascuno dei componenti di protezione avanzata di Windows STIG, seguite da un registro della cronologia delle versioni.

### STIG per Windows Basso (categoria III)
<a name="ib-windows-stig-low"></a>

L'elenco seguente contiene le impostazioni STIG che il componente di protezione avanzata applica all'infrastruttura. Se un'impostazione supportata non è applicabile all'infrastruttura, il componente di protezione avanzata ignora tale impostazione e prosegue. Ad esempio, alcune impostazioni STIG potrebbero non essere applicabili ai server autonomi. Le politiche specifiche dell'organizzazione possono anche influire sulle impostazioni applicate dal componente di protezione avanzata, ad esempio l'obbligo per gli amministratori di rivedere le impostazioni dei documenti.

[Per un elenco completo di Windows, consulta la Document STIGs Library. STIGs ](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=windows) Per informazioni su come visualizzare l'elenco completo, consulta [Strumenti di visualizzazione STIG](https://public.cyber.mil/stigs/srg-stig-tools/).
+ **Windows Server 2025 STIG versione 1 versione 1**

  V-278082, V-278083, V-278084, V-278085, V-278098, V-278104, V-278110 e V-278231
+ **Windows Server 2022 STIG versione 2 versione 7**

  V-254335, V-254336, V-254337, V-254338, V-254351, V-254357, V-254363 e V-254481
+ **Windows Server 2019 STIG versione 3 versione 7**

  V-205691, V-205819, V-205858, V-205859, V-205860, V-205870, V-205871 e V-205923
+ **Windows Server 2016 STIG versione 2 versione 10**

  V-224916, V-224917, V-224918, V-224919, V-224931, V-224942 e V-225060
+ **Windows Server 2012 R2 MS STIG versione 3 versione 5**

  V-225250, V-225318, V-225319, V-225324, V-225327, V-225328, V-225330, V-225331, V-225332, V-225333, V-225334, V-225335, V-225336, V-225342, V-225343, V-225355, V-225357, V-225358, V-225359, V-225360, V-225362, V-225363, V-225376, V-225392, V-225394, V-225412, V-225459, V-225460, V-225462, V-225468, V-225473, V-225476, V-225479, V-225480, V-225481, V-225482, V-225483, V-225484, V-225485, V-225487, V-225488, V-225489, V-225490, V-225511, V-225514, V-225525, V-225526, V-225536 e V-225537
+ **Microsoft.NET Framework 4.0 STIG Versione 2 Release 7**

  Non vengono applicate impostazioni STIG alle vulnerabilità di Microsoft .NET Framework per la categoria III.
+ **Windows Firewall STIG versione 2 versione 2**

  V-241994, V-241995, V-241996, V-241999, V-242000, V-242001, V-242006, V-242007 e V-242008
+ **Internet Explorer 11 STIG versione 2 versione 6**

  V-223056 e V-223078
+ **Microsoft Edge STIG versione 2 Release 4 (solo Windows Server 2022 e 2025)**

  V-235727, V-235731, V-235751, V-235752 e V-235765
+ **Microsoft Defender STIG Versione 2 Release 7**

  Nessuna impostazione STIG viene applicata a Microsoft Antivirus per le vulnerabilità di categoria III.

### STIG per Windows Medio (categoria II)
<a name="ib-windows-stig-medium"></a>

L'elenco seguente contiene le impostazioni STIG che il componente di protezione avanzata applica all'infrastruttura. Se un'impostazione supportata non è applicabile all'infrastruttura, il componente di protezione avanzata ignora tale impostazione e prosegue. Ad esempio, alcune impostazioni STIG potrebbero non essere applicabili ai server autonomi. Le politiche specifiche dell'organizzazione possono anche influire sulle impostazioni applicate dal componente di protezione avanzata, ad esempio l'obbligo per gli amministratori di rivedere le impostazioni dei documenti.

[Per un elenco completo di Windows, consulta la Document STIGs Library. STIGs ](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=windows) Per informazioni su come visualizzare l'elenco completo, consulta [Strumenti di visualizzazione STIG](https://public.cyber.mil/stigs/srg-stig-tools/).

**Nota**  
I componenti di protezione avanzata di Windows STIG Medium includono tutte le impostazioni STIG elencate che AWSTOE si applicano ai componenti con protezione avanzata di Windows STIG Low, oltre alle impostazioni STIG elencate specificamente per le vulnerabilità di categoria II.
+ **Windows Server 2025 STIG versione 1 versione 1**

  Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria III (bassa), oltre a:

  V-278015, V-278016, V-278019, V-278020, V-278021, V-278022, V-278023, V-278024, V-278025, V-278026, V-278033, V-278034, V-278035, V-278036, V-278037, V-278038, V-278039, V-278047, V-278048, V-278049, V-278050, V-278051, V-278052, V-278053, V-278054, V-278055, V-278056, V-278057, V-278058, V-278059, V-278060, V-278061, V-278062, V-278063, V-278064, V-278065, V-278066, V-278067, V-278068, V-278069, V-278070, V-278071, V-278072, V-278073, V-278074, V-278075, V-278076, V-278077, V-278078, V-278079, V-278080, V-278086, V-278088, V-278089, V-278091, V-278092, V-278093, V-278094, V-278095, V-278096, V-278097, V-278102, V-278103, V-278105, V-278106, V-278107, V-278108, V-278109, V-278111, V-278112, V-278113, V-278114, V-278115, V-278116, V-278117, V-278118, V-278119, V-278120, V-278122, V-278123, V-278124, V-278126, V-278127, V-278129, V-278130, V-278131, V-278165, V-278168, V-278169, V-278170, V-278171, V-278174, V-278180, V-278181, V-278182, V-278183, V-278184, V-278185, V-278187, V-278188, V-278189, V-278192, V-278193, V-278194, V-278195, V-278198, V-278199, V-278200, V-278201, V-278202, V-278203, V-278204, V-278205, V-278206, V-278209, V-278210, V-278211, V-278212, V-278213, V-278214, V-278218, V-278220, V-278221, V-278222, V-278223, V-278226, V-278227, V-278228, V-278229, V-278230, V-278232, V-278233, V-278234, V-278235, V-278236, V-278237, V-278238, V-278239, V-278240, V-278241, V-278243, V-278244, V-278245, V-278247, V-278248, V-278249, V-278251, V-278252, V-278253, V-278254, V-278255, V-278256, V-278257, V-278258, V-278259, V-278260, V-278261, V-278262, V-279916, V-279917, V-279918, V-279919, V-279920, V-279921, V-279922 e V-279923
+ **Windows Server 2022 STIG versione 2 versione 7**

  Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria III (bassa), oltre a:

  V-254247, V-254269, V-254270, V-254271, V-254272, V-254273, V-254274, V-254275, V-254276, V-254277, V-254278, V-254285, V-254286, V-254287, V-254288, V-254289, V-254290, V-254291, V-254292, V-254296, V-254297, V-254298, V-254299, V-254300, V-254301, V-254302, V-254303, V-254304, V-254305, V-254307, V-254309, V-254311, V-254312, V-254313, V-254314, V-254315, V-254316, V-254319, V-254320, V-254321, V-254322, V-254323, V-254324, V-254325, V-254326, V-254327, V-254328, V-254329, V-254330, V-254341, V-254342, V-254333, V-254334, V-254339, V-254341, V-254342, V-254344, V-254345, V-254346, V-254347, V-254348, V-254349, V-254350, V-254355, V-254356, V-254358, V-254359, V-254360, V-254361, V-254362, V-254364, V-254366, V-254367, V-254368, V-254369, V-254370, V-254371, V-254372, V-254373, V-254375, V-254376, V-254377, V-254379, V-254380, V-254382, V-254383, V-254384, V-254431, V-254433, V-254434, V-254435, V-254436, V-254438, V-25254439, V-254440, V-254442, V-254443, V-254444, V-254445, V-254447, V-254448, V-254449, V-254450, V-254451, V-254452, V-254453, V-254454, V-254455, V-254456, V-254459, V-254460, V-254461, V-254462, V-254463, V-254464, V-254468, V-254470, V-254471, V-254472, V-254473, V-254476, V-254477, V-254478, V-254479, V-254480, V-254482, V-254483, V-254484, V-254485, V-254486, V-254487, V-254488, V-254489, V-254491, V-254493, V-254494, V-254495, V-254497, V-254498, V-254499, V-254501, V-254502, V-254503, V-254504, V-254505, V-254506, V-254507, V-254508, V-254509, V-254510, V-254511, V-254512, V-278942, V-278943, V-278944, V-278945, V-278946, V-278947, V-278948 e V-278949
+ **Windows Server 2019 STIG versione 3 versione 7**

  Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria III (bassa), oltre a:

  V-205625, V-205626, V-205627, V-205629, V-205630, V-205633, V-205634, V-205635, V-205636, V-205637, V-205638, V-205639, V-205640, V-205641, V-205642, V-205643, V-205644, V-205648, V-205649, V-205650, V-205651, V-205652, V-205655, V-205656, V-205659, V-205660, V-205662, V-205671, V-205672, V-205673, V-205675, V-205676, V-205678, V-205679, V-205680, V-205681, V-205682, V-205683, V-205683, V-205683, V-205683 V-205684, V-205685, V-205686, V-205687, V-205688, V-205689, V-205690, V-205692, V-205693, V-205694, V-205697, V-205698, V-205708, V-205709, V-205712, V-205714, V-205716, V-205717, V-205718, V-205719, V-205720, V-205722, V-205730, V-205731, V-205733, V-205747, V-205748, V-205749, V-205751, V-205752, V-205754, V-205755, V-205756, V-205758, V-205759, V-205760, V-205761, V-205762, V-205763, V-205764, V-205765, V-205766, V-205767, V-205768, V-205769, V-205770, V-205771, V-205772, V-205773, V-205774, V-205775, V-205776, V-205777, V-205778, V-205779, V-205780, V-205782051, V-205778 V-205783, V-205784, V-205795, V-205796, V-205797, V-205798, V-205801, V-205808, V-205809, V-205810, V-205811, V-205812, V-205813, V-205814, V-205815, V-205816, V-205817, V-205821, V-205822, V-205823, V-205824, V-205825, V-205826, V-205827, V-205828, V-205830, V-205832, V-205833, V-205835, V-205836, V-205837, V-205838, V-205842, V-205861, V-205863, V-205865, V-205866, V-205867, V-205868, V-205869, V-205872, V-205873, V-205874, V-205909, V-205910, V-205911, V-205912, V-205915, V-205916, V-205917, V-205918, V-205920, V-205921, V-205922, V-205925, V-257503, V-278934, V-278935, V-278936, V-278937, V-278938, V-278939, V-278940 e V-278941
+ **Windows Server 2016 STIG versione 2 versione 10**

  Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria III (bassa), oltre a:

  V-224850, V-224851, V-224852, V-224853, V-224854, V-224855, V-224856, V-224857, V-224858, V-224859, V-224866, V-224867, V-224868, V-224869, V-224870, V-224871, V-224872, V-224873, V-224877, V-224878, V-224879, V-224880, V-224881, V-224882, V-224883, V-224884, V-224885, V-224886, V-224888, V-224890, V-224892, V-224893, V-224894, V-224895, V-224896, V-224897, V-224900, V-224901, V-224902, V-224903, V-224904, V-224905, V-224906, V-224907, V-224908, V-224909, V-224910, V-224911, V-224912, V-224913, V-224914, V-224915, V-224920, V-224921, V-224922, V-224924, V-224925, V-224926, V-224927, V-224928, V-224929, V-224930, V-224935, V-224936, V-224937, V-224938, V-224939, V-224940, V-224941, V-224943, V-224944, V-224945, V-224946, V-224947, V-224948, V-224949, V-224951, V-224952, V-224953, V-224955, V-224956, V-224957, V-224959, V-224960, V-224962, V-224963, V-224965, V-224966, V-224967, V-224968, V-224969, V-224987, V-224988, V-224989, V-224995, V-224996, V-224997, V-224998, V-224999, V-225000, V-225001, V-225002, V-225003, V-225004, V-225005, V-225008, V-225009, V-225010, V-225011, V-225013, V-225014, V-225015, V-225016, V-225017, V-225018, V-225019, V-225020, V-225021, V-225022, V-225023, V-225024, V-225026, V-225027, V-225028, V-225029, V-225030, V-225031, V-225032, V-225033, V-225034, V-225035, V-225038, V-225039, V-225040, V-225041, V-225042, V-225043, V-225047, V-225049, V-225050, V-225051, V-225052, V-225055, V-225056, V-225057, V-225058, V-225059, V-225061, V-225062, V-225063, V-225064, V-225065, V-225066, V-225067, V-225068, V-225070, V-225072, V-225073, V-225074, V-225076, V-225077, V-225078, V-225080, V-225081, V-225082, V-225083, V-225084, V-225085, V-225086, V-225087, V-225088, V-225089, V-225092, V-225093 e V-257502
+ **Windows Server 2012 R2 MS STIG versione 3 versione 5**

  Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria III (bassa), oltre a:

  V-225239, V-225259, V-225260, V-225261, V-225263, V-225264, V-225265, V-225266, V-225267, V-225268, V-225269, V-225270, V-225271, V-225272, V-225273, V-225275, V-225276, V-225277, V-225278, V-225279, V-225280, V-225281, V-225282, V-225283, V-225284, V-225285, V-225286, V-225287, V-225288, V-225289, V-225290, V-225291, V-225292, V-225293, V-225294, V-225295, V-225296, V-225297, V-225298, V-225299, V-225300, V-225301, V-225302, V-225303, V-225304, V-225305, V-225314, V-225315, V-225316, V-225317, V-225325, V-225326, V-225329, V-225337, V-225338, V-225339, V-225340, V-225341, V-225344, V-225345, V-225346, V-225347, V-225348, V-225349, V-225350, V-225351, V-225352, V-225353, V-225356, V-225367, V-225368, V-225369, V-225370, V-225371, V-225372, V-225373, V-225374, V-225375, V-225377, V-225378, V-225379, V-225380, V-225381, V-225382, V-225383, V-225384, V-225385, V-225386, V-225389, V-225391, V-225393, V-225395, V-225397, V-225398, V-225400, V-225401, V-225402, V-225404, V-225405, V-225406, V-225407, V-225408, V-225409, V-225410, V-225411, V-225413, V-225414, V-225415, V-225441, V-225442, V-225443, V-225448, V-225452, V-225453, V-225454, V-225455, V-225456, V-225457, V-225458, V-225461, V-225463, V-225464, V-225469, V-225470, V-225471, V-225472, V-225474, V-225475, V-225477, V-225478, V-225486, V-225494, V-225500, V-225501, V-225502, V-225503, V-225504, V-225506, V-225508, V-225509, V-225510, V-225513, V-225515, V-225516, V-225517, V-225518, V-225519, V-225520, V-225521, V-225522, V-225523, V-225524, V-225527, V-225528, V-225529, V-225530, V-225531, V-225532, V-225533, V-225534, V-225535, V-225538, V-225539, V-225540, V-225541, V-225542, V-225543, V-225544, V-225545, V-225546, V-225548, V-225549, V-225550, V-225551, V-225553, V-225554, V-225555, V-225557, V-225558, V-225559, V-225560, V-225561, V-225562, V-225563, V-225564, V-225565, V-225566, V-225567, V-225568, V-225569, V-225570, V-225571, V-225572, V-225573 e V-225574
+ **Microsoft.NET Framework 4.0 STIG Versione 2 Release 7**

  Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria III (bassa), oltre a:

  V-225223, V-225230, V-225235 e V-225238
+ **Windows Firewall STIG versione 2 versione 2**

  Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria III (bassa), oltre a:

  V-241989, V-241990, V-241991, V-241993, V-241998, V-242003, V-242004 e V-242005
+ **Internet Explorer 11 STIG versione 2 versione 6**

  Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria III (bassa), oltre a:

  V-223015, V-223017, V-223018, V-223019, V-223020, V-223021, V-223022, V-223023, V-223024, V-223025, V-223026, V-223027, V-223028, V-223029, V-223030, V-223031, V-223032, V-223033, V-223034, V-223035, V-223036, V-223037, V-223038, V-223039, V-223040, V-223041, V-223042, V-223043, V-223044, V-223045, V-223046, V-223048, V-223049, V-223050, V-223051, V-223052, V-223053, V-223054, V-223055, V-223057, V-223058, V-223059, V-223060, V-223061, V-223062, V-223063, V-223064, V-223065, V-223066, V-223067, V-223068, V-223069, V-223070, V-223071, V-223072, V-223073, V-223074, V-223075, V-223076, V-223077, V-223079, V-223080, V-223081, V-223082, V-223083, V-223084, V-223085, V-223086, V-223087, V-223088, V-223089, V-223090, V-223091, V-223092, V-223093, V-223094, V-223095, V-223096, V-223097, V-223098, V-223099, V-223100, V-223101, V-223102, V-223103, V-223104, V-223105, V-223106, V-223107, V-223108, V-223109, V-223110, V-223111, V-223112, V-223113, V-223114, V-223115, V-223116, V-223117, V-223118, V-223119, V-223120, V-223121, V-223123, V-223125, V-223126, V-223127, V-223128, V-223129, V-223130, V-223131, V-223132, V-223133, V-224313, V-223135, V-223136, V-223137, V-223138, V-223139, V-223140, V-223141, V-223142, V-223143, V-223144, V-223145, V-223146, V-223147, V-223148, V-223149, V-250540 e V-250541
+ **Microsoft Edge STIG versione 2 Release 4 (solo Windows Server 2022 e 2025)**

  Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria III (basse), oltre a:

  V-235720, V-235721, V-235723, V-235724, V-235725, V-235726, V-235728, V-235729, V-235730, V-235732, V-235733, V-235734, V-235735, V-235736, V-235737, V-235738, V-235739, V-235740, V-235741, V-235742, V-235743, V-235744, V-235745, V-235746, V-235747, V-235748, V-235749, V-235750, V-235754, V-235756, V-235760, V-235761, V-235763, V-235764, V-235766, V-235767, V-235768, V-235769, V-235770, V-235771, V-235772, V-235773, V-235774 e V-246736
+ **Microsoft Defender STIG Versione 2 Release 7**

  Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria III (bassa), oltre a:

  V-213427, V-213429, V-213430, V-213431, V-213432, V-213433, V-213434, V-213435, V-213436, V-213437, V-213438, V-213439, V-213440, V-213441, V-213442, V-213443, V-213444, V-213445, V-213446, V-213447, V-213448, V-213449, V-213450, V-213451, V-213454, V-213455, V-213456, V-213457, V-213458, V-213459, V-213460, V-213461, V-213461, V-213461, V-213461, V-213461 2, V-213463, V-213464, V-213465, V-213466, V-278647, V-278648, V-278649, V-278650, V-278651, V-278652, V-278653, V-278654, V-278655, V-278656, V-278658, V-278659, V-278660, V-278661, V-278662, V-278668, V-278669, V-278672, V-278674, V-278675, V-278676, V-278677, V-278678, V-278679, V-278680 e V-278863

### STIG per Windows Alto (categoria I)
<a name="ib-windows-stig-high"></a>

L'elenco seguente contiene le impostazioni STIG che il componente di protezione avanzata applica all'infrastruttura. Se un'impostazione supportata non è applicabile all'infrastruttura, il componente di protezione avanzata ignora tale impostazione e prosegue. Ad esempio, alcune impostazioni STIG potrebbero non essere applicabili ai server autonomi. Le politiche specifiche dell'organizzazione possono anche influire sulle impostazioni applicate dal componente di protezione avanzata, ad esempio l'obbligo per gli amministratori di rivedere le impostazioni dei documenti.

[Per un elenco completo di Windows, consulta la Document STIGs Library. STIGs ](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=windows) Per informazioni su come visualizzare l'elenco completo, consulta [Strumenti di visualizzazione STIG](https://public.cyber.mil/stigs/srg-stig-tools/).

**Nota**  
I componenti di protezione avanzata di Windows STIG High includono tutte le impostazioni STIG elencate AWSTOE valide per i componenti di protezione Windows STIG Low e Windows STIG Medium, oltre alle impostazioni STIG elencate specificamente per le vulnerabilità di categoria I.
+ **Windows Server 2025 STIG versione 1 versione 1**

  Include tutte le impostazioni STIG supportate applicate dal componente di protezione avanzata per le vulnerabilità di categoria II e III (media e bassa), oltre a:

  V-278040, V-278099, V-278100, V-278101, V-278121, V-278125, V-278128, V-278196, V-278215, V-278216, V-278217, V-278219, V-278225, V-278242, V-278246 e V-278250
+ **Windows Server 2022 STIG versione 2 versione 7**

  Include tutte le impostazioni STIG supportate applicate dal componente di protezione avanzata per le vulnerabilità di categoria II e III (media e bassa), oltre a:

  V-254250, V-254293, V-254352, V-254353, V-254354, V-254374, V-254378, V-254381, V-254446, V-254466, V-254467, V-254469, V-254474, V-254475, V-254492, V-254496 e V-254500
+ **Windows Server 2019 STIG versione 3 versione 7**

  Include tutte le impostazioni STIG supportate applicate dal componente di protezione avanzata per le vulnerabilità di categoria II e III (media e bassa), oltre a:

  V-205653, V-205654, V-205663, V-205711, V-205713, V-205724, V-205725, V-205750, V-205753, V-205757, V-205802, V-205804, V-205805, V-205806, V-205849, V-205908, V-205914 e V-205919
+ **Windows Server 2016 STIG versione 2 versione 10**

  Include tutte le impostazioni STIG supportate applicate dal componente di protezione avanzata per le vulnerabilità di categoria II e III (media e bassa), oltre a:

  V-224831, V-224874, V-224932, V-224933, V-224934, V-224954, V-224958, V-224961, V-225025, V-225045, V-225046, V-225048, V-225053, V-225054, V-225071, V-225079 e V-225091
+ **Windows Server 2012 R2 MS STIG versione 3 versione 5**

  Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria II e III (media e bassa), oltre a:

  V-225274, V-225354, V-225364, V-225365, V-225366, V-225390, V-225396, V-225399, V-225444, V-225449, V-225491, V-225492, V-225493, V-225496, V-225497, V-225498, V-225505, V-225507, V-225547, V-225552 e V-225556
+ **Microsoft.NET Framework 4.0 STIG Versione 2 Release 7**

  Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità delle categorie II e III (medie e basse) per Microsoft.NET Framework. Non si applicano impostazioni STIG aggiuntive per le vulnerabilità di categoria I.
+ **Windows Firewall STIG versione 2 versione 2**

  Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria II e III (media e bassa), oltre a:

  V-241992, V-241997 e V-242002
+ **Internet Explorer 11 STIG versione 2 versione 6**

  V-252910
+ **Microsoft Edge STIG versione 2 Release 4 (solo Windows Server 2022 e 2025)**

  Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria II e III (medie e basse), oltre a:

  V-235758 e V-235759
+ **Microsoft Defender STIG Versione 2 Release 7**

  Include tutte le impostazioni STIG supportate applicate dal componente di protezione avanzata per le vulnerabilità di categoria II e III (media e bassa), oltre a:

  V-213426, V-213428, V-213452 e V-213453

## Registro della cronologia delle versioni STIG per Windows
<a name="ib-windows-version-hist"></a>

Questa sezione registra la cronologia delle versioni dei componenti di protezione avanzata di Windows per gli aggiornamenti trimestrali STIG. Per visualizzare le modifiche e le versioni pubblicate per un trimestre, scegli il titolo per espandere le informazioni.

### Modifiche al 1° trimestre 2026 - 10/03/2026:
<a name="2026-q1-windows"></a>

È stato aggiunto il supporto per Windows Server 2025 e aggiornato tutto applicabile al primo trimestre 2026. STIGs 

**STIG-Build-Windows**
+ Windows Server 2025 STIG versione 1 versione 1
+ Windows Server 2022 STIG versione 2 versione 7
+ Windows Server 2019 STIG versione 3 versione 7
+ Windows Server 2016 STIG versione 2 versione 10
+ Windows Server 2012 R2 MS STIG versione 3 rilascio 5
+ Microsoft.NET Framework 4.0 STIG Versione 2 Release 7
+ Windows Firewall STIG versione 2 versione 2
+ Internet Explorer 11 STIG versione 2 versione 8
+ Microsoft Edge STIG versione 2 Release 4 (solo Windows Server 2022 e 2025)

### Modifiche al terzo trimestre 2025 - 04/09/2025 (nessuna modifica):
<a name="2025-q3-windows"></a>

Non sono state apportate modifiche al componente STIG per Windows per il rilascio del terzo trimestre 2025.

### Modifiche al secondo trimestre 2025 - 26/06/2025:
<a name="2025-q2-windows"></a>

Sono state aggiornate le versioni STIG e sono stati applicati STIG per il rilascio del secondo trimestre 2025 come segue:

**STIG-Build-Windows-Low versione 2025.2.x**
+ Windows Server 2022 STIG versione 2 versione 4
+ Windows Server 2019 STIG versione 3 rilascio 4
+ Windows Server 2016 STIG versione 2 versione 10
+ Windows Server 2012 R2 MS STIG versione 3 rilascio 5
+ Microsoft .NET Framework 4.0 STIG versione 2 rilascio 6
+ Windows Firewall STIG versione 2 versione 2
+ Internet Explorer 11 STIG versione 2 versione 5
+ Microsoft Edge STIG versione 2 rilascio 2 (solo per Windows Server 2022)

**STIG-Build-Windows-Medium versione 2025.2.x**
+ Windows Server 2022 STIG versione 2 versione 4
+ Windows Server 2019 STIG versione 3 rilascio 4
+ Windows Server 2016 STIG versione 2 versione 10
+ Windows Server 2012 R2 MS STIG versione 3 rilascio 5
+ Microsoft .NET Framework 4.0 STIG versione 2 rilascio 6
+ Windows Firewall STIG versione 2 versione 2
+ Internet Explorer 11 STIG versione 2 versione 5
+ Microsoft Edge STIG versione 2 rilascio 2 (solo per Windows Server 2022)
+ Defender STIG versione 2 rilascio 4

**STIG-Build-Windows-High versione 2025.2.x**
+ Windows Server 2022 STIG versione 2 versione 4
+ Windows Server 2019 STIG versione 3 rilascio 4
+ Windows Server 2016 STIG versione 2 versione 10
+ Windows Server 2012 R2 MS STIG versione 3 rilascio 5
+ Microsoft .NET Framework 4.0 STIG versione 2 rilascio 6
+ Windows Firewall STIG versione 2 versione 2
+ Internet Explorer 11 STIG versione 2 versione 5
+ Microsoft Edge STIG versione 2 rilascio 2 (solo per Windows Server 2022)
+ Defender STIG versione 2 rilascio 4

### Modifiche al primo trimestre 2025 - 04/05/2025:
<a name="2025-q1-windows"></a>

Sono stati aggiornati gli STIG per Internet Explorer 11 STIG versione 2 rilascio 5 per tutti i componenti STIG per la versione del primo trimestre 2025.
+ STIG-Build-Windows-Low versione 2025.1.x
+ STIG-Build-Windows-Medium versione 2025.1.x
+ STIG-Build-Windows-High versione 2025.1.x

### Modifiche al quarto trimestre 2024 - 04/02/2025:
<a name="2024-q4-windows"></a>

Sono state aggiornate le versioni STIG e sono stati applicati STIG per il rilascio del quarto trimestre 2024 come segue:

**STIG-Build-Windows-Low versione 2024.4.0**
+ Windows Server 2022 STIG versione 2 versione 2
+ Windows Server 2019 STIG versione 3 rilascio 2
+ Windows Server 2016 STIG versione 2 versione 9
+ Windows Server 2012 R2 MS STIG versione 3 rilascio 5
+ Microsoft .NET Framework 4.0 STIG versione 2 rilascio 2
+ Windows Firewall STIG versione 2 versione 2
+ Internet Explorer 11 STIG versione 2 versione 5
+ Microsoft Edge STIG versione 2 rilascio 2 (solo per Windows Server 2022)

**STIG-Build-Windows-Medium versione 2024.4.0**
+ Windows Server 2022 STIG versione 2 versione 2
+ Windows Server 2019 STIG versione 3 rilascio 2
+ Windows Server 2016 STIG versione 2 versione 9
+ Windows Server 2012 R2 MS STIG versione 3 rilascio 5
+ Microsoft .NET Framework 4.0 STIG versione 2 rilascio 2
+ Windows Firewall STIG versione 2 versione 2
+ Internet Explorer 11 STIG versione 2 versione 5
+ Microsoft Edge STIG versione 2 rilascio 2 (solo per Windows Server 2022)
+ Defender STIG versione 2 rilascio 4

**STIG-Build-Windows-High versione 2024.4.0**
+ Windows Server 2022 STIG versione 2 versione 2
+ Windows Server 2019 STIG versione 3 rilascio 2
+ Windows Server 2016 STIG versione 2 versione 9
+ Windows Server 2012 R2 MS STIG versione 3 rilascio 5
+ Microsoft .NET Framework 4.0 STIG versione 2 rilascio 2
+ Windows Firewall STIG versione 2 versione 2
+ Internet Explorer 11 STIG versione 2 versione 5
+ Microsoft Edge STIG versione 2 rilascio 2 (solo per Windows Server 2022)
+ Defender STIG versione 2 rilascio 4

### Modifiche al terzo trimestre 2024 - 10/04/2023 (nessuna modifica):
<a name="2024-q3-windows"></a>

Non sono state apportate modifiche al componente STIG per Windows per il rilascio del terzo trimestre 2024.

### Modifiche al secondo trimestre 2024 - 10/05/2024 (nessuna modifica):
<a name="2024-q2-windows"></a>

Non sono state apportate modifiche al componente STIG per Windows per il rilascio del secondo trimestre 2024.

### Modifiche al primo trimestre 2024 - 02/06/2024 (nessuna modifica):
<a name="2024-q1-windows"></a>

Non sono state apportate modifiche al componente STIG per Windows per il rilascio del primo trimestre 2024.

### Modifiche al quarto trimestre 2023 - 12/04/2023 (nessuna modifica):
<a name="2023-q4-windows"></a>

Non sono state apportate modifiche al componente STIG per Windows per il rilascio del quarto trimestre 2023.

### Modifiche al terzo trimestre 2023 - 04/10/2023 (nessuna modifica):
<a name="2023-q3-windows"></a>

Non sono state apportate modifiche al componente STIG per Windows per il rilascio del terzo trimestre 2023.

### Modifiche al secondo trimestre 2023 - 03/05/2023 (nessuna modifica):
<a name="2023-q2-windows"></a>

Non sono state apportate modifiche al componente STIG per Windows per il rilascio del secondo trimestre 2023.

### Modifiche al primo trimestre 2023 - 27/03/2023 (nessuna modifica):
<a name="2023-q1-windows"></a>

Non sono state apportate modifiche al componente STIG per Windows per il rilascio del primo trimestre 2023.

### Modifiche al quarto trimestre 2022 - 01/02/2023:
<a name="2022-q4-windows"></a>

Sono state aggiornate le versioni STIG e sono stati applicati STIG per il rilascio del quarto trimestre 2022 come segue:

**STIG-Build-Windows-Low versione 2022.4.x**
+ Windows Server 2022 STIG versione 1 rilascio 1
+ Windows Server 2019 STIG versione 2 rilascio 5
+ Windows Server 2016 STIG versione 2 rilascio 5
+ Windows Server 2012 R2 MS STIG versione 3 rilascio 5
+ Microsoft .NET Framework 4.0 STIG versione 2 rilascio 2
+ Windows Firewall STIG versione 2 rilascio 1
+ Internet Explorer 11 STIG versione 2 rilascio 3
+ Microsoft Edge STIG versione 1 rilascio 6 (solo per Windows Server 2022)

**STIG-Build-Windows-Medium versione 2022.4.x**
+ Windows Server 2022 STIG versione 1 rilascio 1
+ Windows Server 2019 STIG versione 2 rilascio 5
+ Windows Server 2016 STIG versione 2 rilascio 5
+ Windows Server 2012 R2 MS STIG versione 3 rilascio 5
+ Microsoft .NET Framework 4.0 STIG versione 2 rilascio 2
+ Windows Firewall STIG versione 2 rilascio 1
+ Internet Explorer 11 STIG versione 2 rilascio 3
+ Microsoft Edge STIG versione 1 rilascio 6 (solo per Windows Server 2022)
+ Defender STIG versione 2 rilascio 4 (solo per Windows Server 2022)

**STIG-Build-Windows-High versione 2022.4.x**
+ Windows Server 2022 STIG versione 1 rilascio 1
+ Windows Server 2019 STIG versione 2 rilascio 5
+ Windows Server 2016 STIG versione 2 rilascio 5
+ Windows Server 2012 R2 MS STIG versione 3 rilascio 5
+ Microsoft .NET Framework 4.0 STIG versione 2 rilascio 2
+ Windows Firewall STIG versione 2 rilascio 1
+ Internet Explorer 11 STIG versione 2 rilascio 3
+ Microsoft Edge STIG versione 1 rilascio 6 (solo per Windows Server 2022)
+ Defender STIG versione 2 rilascio 4 (solo per Windows Server 2022)

### Modifiche al terzo trimestre 2022 - 30/09/2022 (nessuna modifica):
<a name="2022-q3-windows"></a>

Non sono state apportate modifiche al componente STIG per Windows per il rilascio del terzo trimestre 2022.

### Modifiche al secondo trimestre 2022 - 02/08/2022:
<a name="2022-q2-windows"></a>

Sono state aggiornate le versioni STIG e sono stati applicati STIG per il rilascio del secondo trimestre 2022.

**STIG-Build-Windows-Low versione 1.5.x**
+ Windows Server 2019 STIG versione 2 versione 4
+ Windows Server 2016 STIG versione 2 versione 4
+ Windows Server 2012 R2 MS STIG versione 3 versione 3
+ Microsoft .NET Framework 4.0 STIG versione 2 rilascio 1
+ Windows Firewall STIG versione 2 rilascio 1
+ Internet Explorer 11 STIG versione 1 versione 19

**STIG-Build-Windows-Medium versione 1.5.x**
+ Windows Server 2019 STIG versione 2 versione 4
+ Windows Server 2016 STIG versione 2 versione 4
+ Windows Server 2012 R2 MS STIG versione 3 versione 3
+ Microsoft .NET Framework 4.0 STIG versione 2 rilascio 1
+ Windows Firewall STIG versione 2 rilascio 1
+ Internet Explorer 11 STIG versione 1 versione 19

**STIG-Build-Windows-High versione 1.5.x**
+ Windows Server 2019 STIG versione 2 versione 4
+ Windows Server 2016 STIG versione 2 versione 4
+ Windows Server 2012 R2 MS STIG versione 3 versione 3
+ Microsoft .NET Framework 4.0 STIG versione 2 rilascio 1
+ Windows Firewall STIG versione 2 rilascio 1
+ Internet Explorer 11 STIG versione 1 versione 19

### Modifiche al primo trimestre 2022 - 02/08/2022 (nessuna modifica):
<a name="2022-q1-windows"></a>

Non sono state apportate modifiche al componente STIG per Windows per il rilascio del primo trimestre 2022.

### Modifiche al quarto trimestre 2021 - 20/12/2021:
<a name="2021-q4-windows"></a>

Sono state aggiornate le versioni STIG e sono stati applicati STIG per il rilascio del quarto trimestre 2021.

**STIG-Build-Windows-Low versione 1.5.x**
+ Windows Server 2019 STIG versione 2 versione 3
+ Windows Server 2016 STIG versione 2 versione 3
+ Windows Server 2012 R2 MS STIG versione 3 versione 3
+ Microsoft .NET Framework 4.0 STIG versione 2 rilascio 1
+ Windows Firewall STIG versione 2 rilascio 1
+ Internet Explorer 11 STIG versione 1 versione 19

**STIG-Build-Windows-Medium versione 1.5.x**
+ Windows Server 2019 STIG versione 2 versione 3
+ Windows Server 2016 STIG versione 2 versione 3
+ Windows Server 2012 R2 MS STIG versione 3 versione 3
+ Microsoft .NET Framework 4.0 STIG versione 2 rilascio 1
+ Windows Firewall STIG versione 2 rilascio 1
+ Internet Explorer 11 STIG versione 1 versione 19

**STIG-Build-Windows-High versione 1.5.x**
+ Windows Server 2019 STIG versione 2 versione 3
+ Windows Server 2016 STIG versione 2 versione 3
+ Windows Server 2012 R2 MS STIG versione 3 versione 3
+ Microsoft .NET Framework 4.0 STIG versione 2 rilascio 1
+ Windows Firewall STIG versione 2 rilascio 1
+ Internet Explorer 11 STIG versione 1 versione 19

### Modifiche al terzo trimestre 2021 - 30/09/2021:
<a name="2021-q3-windows"></a>

Sono state aggiornate le versioni STIG e sono stati applicati STIG per il rilascio del terzo trimestre 2021.

**STIG-Build-Windows-Low versione 1.4.x**
+ Windows Server 2019 STIG versione 2 versione 2
+ Windows Server 2016 STIG versione 2 versione 2
+ Windows Server 2012 R2 MS STIG versione 3 versione 2
+ Microsoft .NET Framework 4.0 STIG versione 2 rilascio 1
+ Windows Firewall STIG versione 1 rilascio 7
+ Internet Explorer 11 STIG versione 1 versione 19

**STIG-Build-Windows-Medium versione 1.4.x**
+ Windows Server 2019 STIG versione 2 versione 2
+ Windows Server 2016 STIG versione 2 versione 2
+ Windows Server 2012 R2 MS STIG versione 3 versione 2
+ Microsoft .NET Framework 4.0 STIG versione 2 rilascio 1
+ Windows Firewall STIG versione 1 rilascio 7
+ Internet Explorer 11 STIG versione 1 versione 19

**STIG-Build-Windows-High versione 1.4.x**
+ Windows Server 2019 STIG versione 2 versione 2
+ Windows Server 2016 STIG versione 2 versione 2
+ Windows Server 2012 R2 MS STIG versione 3 versione 2
+ Microsoft .NET Framework 4.0 STIG versione 2 rilascio 1
+ Windows Firewall STIG versione 1 rilascio 7
+ Internet Explorer 11 STIG versione 1 versione 19

## Componenti di indurimento STIG per Linux
<a name="linux-os-stig"></a>

Questa sezione contiene informazioni sui componenti di protezione avanzata STIG di Linux, seguite da un registro della cronologia delle versioni. Se la distribuzione Linux non dispone di impostazioni STIG proprie, il componente di protezione avanzata applica le impostazioni RHEL.

I componenti Linux dispongono di parametri di input opzionali che consentono di personalizzare i seguenti comportamenti per l'istanza Linux.
+ **Livello (stringa)** Se non viene specificato alcun valore, l'impostazione predefinita è `High` e verrà applicata a tutte le configurazioni Low, Medium e High applicabili.
+ **InstallPackages (stringa)** Se il valore è`No`, il componente non installa pacchetti software aggiuntivi. Se il valore è`Yes`, il componente installa pacchetti software aggiuntivi necessari per la massima conformità. Il valore predefinito è `No`.
+ **SetDoDConsentBanner (stringa)** Se il valore è`No`, il banner di consenso DoD non viene visualizzato quando si collega a un'istanza su cui è installato uno dei componenti STIG Linux. Se il valore è`Yes`, il banner di consenso DoD viene visualizzato prima dell'accesso quando ci si collega a un'istanza su cui è installato uno dei componenti STIG Linux. Devi confermare il banner prima di poter accedere. Il valore predefinito è `No`.

  Per un esempio del banner di consenso, consulta [Disclaimer Department of Defense Privacy and Consent Notice](https://dso.dla.mil/), che viene visualizzato quando accedi al sito Web DLA Document Services.

Il componente di protezione avanzata applica le impostazioni STIG supportate all'infrastruttura basata sulla distribuzione Linux, come segue:

**Impostazioni STIG di Red Hat Enterprise Linux (RHEL) 7**
+ RHEL 7
+ CentOS 7
+ Amazon Linux (2AL2)

**Impostazioni RHEL 8 STIG**
+ RHEL 8
+ CentOS 8

**Impostazioni RHEL 9 STIG**
+ RHEL 9
+ CentOS Stream 9

### STIG per Linux Basso (categoria III)
<a name="ib-linux-stig-low"></a>

L'elenco seguente contiene le impostazioni STIG che il componente di protezione avanzata applica all'infrastruttura. Se un'impostazione supportata non è applicabile all'infrastruttura, il componente di protezione avanzata ignora tale impostazione e prosegue. Ad esempio, alcune impostazioni STIG potrebbero non essere applicabili ai server autonomi. Le politiche specifiche dell'organizzazione possono anche influire sulle impostazioni applicate dal componente di protezione avanzata, ad esempio l'obbligo per gli amministratori di rivedere le impostazioni dei documenti.

[Per un elenco completo, consultate la Document Library. STIGs ](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=operating-systems%2Cunix-linux) Per informazioni su come visualizzare l'elenco completo, consulta [Strumenti di visualizzazione STIG](https://public.cyber.mil/stigs/srg-stig-tools/).

**RHEL 7 STIG versione 3 rilascio 15**
+ 

**RHEL 7/CentOS 7/ AL2**  
V-204452, V-204576 e V-204605

**RHEL 8 STIG versione 2 versione 6**
+ 

**RHEL 8/CentOS 8**  
V-230241, V-230269, V-230270, V-230281, V-230285, V-230346, V-230381, V-230395, V-230468, V-230469, V-230485, V-230486, V-230491, V-230494, V-230495, V-230496, V-230497, V-230498, V-230499 e V-244527

**RHEL 9 STIG versione 2 Release 7**
+ 

**RHEL 9/CentOS Stream 9**  
V-257782, V-257824, V-258138, V-258037, V-257880, V-258069, V-258076, V-258067, V-257946, V-257947, V-257795, V-257796 e V-258173

**Amazon Linux 2023 STIG versione 1 versione 2**

V-274141

**SLES 12 STIG versione 3 versione 4**

V-217108, V-217113, V-217140, V-217198, V-217209, V-217211, V-217212, V-217213, V-217214, V-217215, V-217216, V-217236, V-217237, V-217238, V-217239, V-217282 e V-255915

**SLES 15 STIG versione 2 versione 6**

V-234811, V-234850, V-234868, V-234873, V-234905, V-234907, V-234908, V-234909, V-234933, V-234934, V-234935, V-234936, V-234955, V-234963, V-234967 e V-255921

**Ubuntu 18.04 STIG versione 2 versione 15**

V-219163, V-219164, V-219165, V-219172, V-219173, V-219174, V-219175, V-219178, V-219179, V-219180, V-219210, V-219301, V-219327, V-219332 e V-219333

**Ubuntu 20.04 STIG versione 2 versione 4**

V-238202, V-238203, V-238221, V-238222, V-238223, V-238224, V-238226, V-238234, V-238235, V-238237, V-238308, V-238323, V-238357, V-238362 e V-238373

**Ubuntu 22.04 STIG versione 2 versione 7**

V-260472, V-260476, V-260479, V-260480, V-260481, V-260520, V-260521, V-260549, V-260550, V-260551, V-260552, V-260581 e V-260596

**Ubuntu 24.04 STIG versione 1 versione 4**

V-270645, V-270646, V-270664, V-270677, V-270690, V-270695, V-270706, V-270710, V-270734, V-270749, V-270752, V-270818 e V-270820

### STIG per Linux Medio (categoria II)
<a name="ib-linux-stig-medium"></a>

L'elenco seguente contiene le impostazioni STIG che il componente di protezione avanzata applica all'infrastruttura. Se un'impostazione supportata non è applicabile all'infrastruttura, il componente di protezione avanzata ignora tale impostazione e prosegue. Ad esempio, alcune impostazioni STIG potrebbero non essere applicabili ai server autonomi. Le politiche specifiche dell'organizzazione possono anche influire sulle impostazioni applicate dal componente di protezione avanzata, ad esempio l'obbligo per gli amministratori di rivedere le impostazioni dei documenti.

[Per un elenco completo, consultate la Document Library. STIGs ](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=operating-systems%2Cunix-linux) Per informazioni su come visualizzare l'elenco completo, consulta [Strumenti di visualizzazione STIG](https://public.cyber.mil/stigs/srg-stig-tools/).

**Nota**  
I componenti di protezione avanzata di Linux STIG Medium includono tutte le impostazioni STIG elencate che AWSTOE si applicano ai componenti di protezione avanzata Linux STIG Low, oltre alle impostazioni STIG elencate specificamente per le vulnerabilità di categoria II.

**RHEL 7 STIG versione 3 rilascio 15**

Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria III (bassa) per questa distribuzione Linux, oltre a:
+ 

**RHEL 7/CentOS 7/ AL2**  
V-204405, V-204406, V-204407, V-204408, V-204409, V-204410, V-204411, V-204412, V-204413, V-204414, V-204415, V-204416, V-204417, V-204418, V-204420, V-204422, V-204423, V-204426, V-204427, V-204431, V-204434, V-204435, V-204437, V-204449, V-204450, V-204451, V-204457, V-204466, V-204490, V-204491, V-204503, V-204507, V-204508, V-204510, V-204511, V-204512, V-204514, V-204515, V-204516, V-204517, V-204521, V-204524, V-204531, V-204536, V-204537, V-204538, V-204539, V-204540, V-204541, V-204542, V-204543, V-204544, V-204545, V-204546, V-204547, V-204548, V-204549, V-204550, V-204551, V-204552, V-204553, V-204554, V-204555, V-204556, V-204557, V-204558, V-204559, V-204560, V-204562, V-204563, V-204564, V-204565, V-204566, V-204567, V-204568, V-204572, V-204579, V-204584, V-204585, V-204587, V-204588, V-204589, V-204590, V-204591, V-204592, V-204593, V-204596, V-204597, V-204598, V-204599, V-204600, V-204601, V-204602, V-204609, V-204610, V-204611, V-204612, V-204613, V-204614, V-204615, V-204616, V-204617, V-204619, V-204622, V-204625, V-204630, V-204631, V-204633, V-233307, V-237634, V-237635, V-251703, V-255925, V-255279, V-255928 e V-256970

**RHEL 8 STIG versione 2 versione 6**

Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria III (basse) per questa distribuzione Linux, oltre a:
+ 

**RHEL 8/CentOS 8**  
V-230222, V-230228, V-230231, V-230233, V-230236, V-230237, V-230238, V-230239, V-230240, V-230240, V-230243, V-230244, V-230245, V-230246, V-230247, V-230248, V-230249, V-230250, V-230255, V-230256, V-230257, V-230258, V-230259, V-230260, V-230261, V-230262, V-230266, V-230267, V-230268, V-230271, 230273, V-230275, V-230276, V-230277, V-230278, V-230279, V-230280, V-230280, V-230276 282, AV-230282, V-230286, V-230287, V-230288, V-230290, V-230291, V-230296, V-230298, V-230310, V-230311, V-230312, 230313, V-230314, V-230315, V-230316, V-230318, V-230319, -230320, V-230321, V-230322, V-230324, V-230325, V-230326, V-230327, V-230330, V-230332, V-230333, V-230335, V-230337, V-230339, V-230341, V-230343, V-230345, V-230347, V-230348, V-230352, V-230353, V-230354, V-230356, V-230357, V-230358, V-230359, V-230360, V-230361, V-230362, V-230363, V-230365, V-230366, V-230368, V-230369, V-230370, V-230372, V-230373, V-230375, V-230376, V-230377, V-230378, V-230380, V-230382, V-230383, V-230385, V-230386, V-230387, V-230389, V-230390, V-230392, V-230393, V-230394, V-230394 396, V-230397, V-230398, V-230399, V-230400, V-230401, V-230402, V-230403, V-230404, V-230405, V-230406, V-230407, V-230408, V-230409, V-230410, V-230411, V-230412, V-230413, 230418, 230419, V-230421, V-230422, V-230423, V-230424, V-230425, V-230426, V-230427, V-230428, V-230429, V-230430, V-230431, V-230432, V-230433, V-230434, V-230435, V-230436, V-230437, V-230438, V-230439, V-230444, V-230444, V-230446, V-230447, V-230449, V-230455, V-230456, V-230462, V-230463, V-230464, V-230465, V-230466, V-230467, V-230470, V-230471, V-230472, V-230473, V-230474, V-230475, V-230478, V-230480, V-230481, V-230482, V-230483, V-230488, V-230489, V-230493, V-230502, V-230503, V-230505, V-230506, V-230507, V-230523, V-230524, V-230525, 230526, 230527, 230532, 230535, 230536, 230537, 30538, V-230539, V-230540, V-230541, V-230542, MA-230543, V-230544, V-230545, V-230546, V-230547, 230548, 230549, 230550, 230555, 230556, V-230557, V-230559, V-230560, V-230561, V-237640, V237642, V-237643, V-244519, V-244523, V-244524, V-244525, V-244526, V-244528, V-244531, V-244533, V-244535, V-244536, V-244538, V-244538, V-244538, V-244539, V-244542, V-244543, V-244545, V-244547, V-244550, V-244551, V-244552, V-244553, V-244554, V-250315, V-250315, V-250315, V-250316, V-250316, V-250316, V-250317, V-251707, V-251708, V-251709, V-251710, V-251711, V-251713, V-251714, V-251715, V-251716, V-251717, V-251718, V-256918 74, V-257258, V-257258, V-274877, V-279929, V-279930 e V-279931

**RHEL 9 STIG versione 2 Release 7**

Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria III (basse) per questa distribuzione Linux, oltre a:
+ 

**RHEL 9/CentOS Stream 9**  
V-257780, V-257781, V-257783, V-257786, V-257788, V-257790, V-257791, V-257792, V-257793, V-257794, V-257797, V-257798, V-257799, V-257800, V-257801, V-257802, V-257803, V-257804, V-257805, V-257806, V-257807, V-257808, V-257809, V-257810, V-257811, V-257812, V-257813, V-257814, V-257815, V-257816, V-257817, V-257818, V-257825, V-257827, V-257828, V-257829, V-257830, V-257831, V-257832, V-257833, V-257834, V-257836, V-257838, V-257839, V-257840, V-257841, V-257842, V-257849, V-257882, V-257883, V-257884, V-257885, V-257886, V-257887, V-257888, V-257889, V-257890, V-257891, V-257892, V-257893, V-257894, V-257895, V-257896, V-257897, V-257898, V-257899, V-257900, V-257901, V-257902, V-257903, V-257904, V-257905, V-257906, V-257907, V-257908, V-257909, V-257910, V-257911, V-257912, V-257913, V-257914, V-257915, V-257916, V-257917, V-257918, V-257919, V-257920, V-257921, V-257922, V-257923, V-257924, V-257925, V-257926, V-257927, V-257928, V-257929, V-257930, V-257933, V-257934, V-257935, V-257936, V-257939, V-257940, V-257942, V-257943, V-257944, V-257948, V-257951, V-257952, V-257953, V-257954, V-257957, V-257958, V-257959, V-257960, V-257961, V-257962, V-257963, V-257964, V-257965, V-257966, V-257967, V-257968, V-257969, V-257970, V-257971, V-257972, V-257973, V-257974, V-257975, V-257976, V-257977, V-257978, V-257979, V-257980, V-257982, V-257983, V-257985, V-257987, V-257988, V-257992, V-257993, V-257994, V-257995, V-257996, V-257997, V-257998, V-257999, V-258000, V-258001, V-258002, V-258003, 258004, V-258005, V-258006, V-258007, V-258008, V-258009, V-258010, V-258011, V-258028, V-258034, V-258035, V-258038, V-258039, V-258040, V-258041, V-258043, V-258046, V-258049, V-258052, V-258054, V-258055, V-258056, V-258057, V-258060, V-258063, V-258064, V-258065, V-258066, V-258068, V-258070, V-258071, V-258072, V-258073, V-258074, V-258075, V-258077, V-258079, V-258080, V-258081, V-258082, V-258083, V-258084, V-258085, V-258088, V-258089, V-258090, V-258091, V-258092, V-258093, V-258095, V-258097, V-258098, V-258099, V-258100, V-258101, V-258102, V-258103, V-258104, V-258105, V-258107, V-258108, V-258109, V-258110, V-258111, V-258112, V-258113, V-258114, V-258115, V-258116, V-258117, V-258118, V-258119, V-258120, V-258121, V-258122, V-258123, V-258124, V-258125, V-258126, V-258128, V-258129, V-258130, V-258133, V-258137, V-258140, V-258141, V-258142, V-258144, V-258145, V-258146, V-258147, V-258148, V-258157, V-258158, V-258159, V-258160, V-258161, V-258162, V-258163, V-258164, V-258165, V-258166, V-258167, V-258168, V-258169, V-258170, V-258171, V-258172, V-258175, V-258175, V-258176, V-258177, V-258178, V-258179, V-258181, V-258182, V-258183, V-258183, V-258183, V-184, V-258185, V-258186, V-258187, V-258188, V-258189, V-258190, V-258191, V-258192, V-258193, V-258194, V-258195, V-258196, V-258197, V-258198, V-258199, V-258200, V-258201, V-258202, V-258203, V-258204, V-258205, V-258206, V-258207, V-258208, V-258208, V-258209, V-258210, V-258211, V-258212, V-258213, V-258214, V-258215, V-258215, V-258215, V-258215, V-258215, V-258215, V-258215, V-258215, V-258215, V-258215, V-258215, V-258215, V-258215, V-258215, V-258215, V-258215, V-258215, V-258215, V-258215, V-2582258216, V-258217, V-258218, V-258219, V-258220, V-258221, V-258222, V-258223, V-258224, V-258225, V-258226, V-258227, V-258228, V-258228, V-258229, V-258232, V-258233, V-258233, V-258234, V-258237, V-258239, V-270174, V-270175, V-270176, V-270177, V-272488 e V-279936

**Amazon Linux 2023 STIG versione 1 versione 2**

Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria III (basse) per questa distribuzione Linux, oltre a:

V-273995, V-274000, V-274001, V-274002, V-274003, V-274004, V-274005, V-274006, V-274008, V-274009, V-274010, V-274011, V-274012, V-274013, V-274014, V-274017, V-274018, V-274019, V-274020, V-274021, V-274022, V-274023, V-274024, V-274026, V-274027, V-274028, V-274030, V-274031, V-274032, V-274033, V-274034, V-274035, V-274036, V-274037, V-274040, V-274041, V-274042, V-274044, V-274045, V-274047, V-274048, V-274049, V-274050, V-274051, V-274053, V-274054, V-274059, V-274061, V-274062, V-274069, V-274070, V-274071, V-274072, V-274073, V-274074, V-274075, V-274076, V-274077, V-274078, V-274079, V-274081, V-274082, V-274083, V-274084, V-274085, V-274086, V-274087, V-274088, V-274089, V-274090, V-274091, V-274092, V-274093, V-274094, V-274095, V-274096, V-274097, V-274098, V-274099, V-274100, V-274101, V-274102, V-274103, V-274104, V-274105, V-274106, V-274107, V-274108, V-274109, V-274110, V-274111, V-274112, V-274113, V-274114, V-274115, V-274116, V-274117, V-274119, V-274120, V-274121, V-274122, V-274123, V-274124, V-274125, V-274126, V-274127, V-274128, V-274129, V-274130, V-274131, V-274132, V-274133, V-274134, V-274135, V-274136, V-274137, V-274138, V-274139, V-274140, V-274142, V-274143, V-274144, V-274145, V-274147, V-274149, V-274151, V-274152, V-274154, V-274155, V-274156, V-274157, V-274160, V-274161, V-274162, V-274163, V-274164, V-274165, V-274166, V-274167, V-274168, V-274169, V-274170, V-274173, V-274177, V-274181, V-274182, V-274185 e V-274187

**SLES 12 STIG versione 3 Release 4**

Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria III (basse) per questa distribuzione Linux, oltre a:

V-217102, V-217105, V-217105, V-217106, V-217106, V-217110, V-217116, V-217117, V-217118, V-217119, V-217120, -217121, V-217122, V-217124, V-217125, V-217126, V-217127, V-217128, V-217130, V-217134, V-217138, V-217143, V-217147, V-217152, V-217153, V-217154, V-217155, V-217156, V-217158, V-217161, AB-217163, V-217166, V-217167, V-217168, V-217169, V-217170, AB-217171, V-217182, V-217183, V-217188, V-217190, V-217191, V-217194, V-217195, V-217196, V-217197, V-217200, V-217201, V-217202, V-217203, V-217204, V-217205, V-217206, V-217207, V-217208, V-217210, V-217217217, V-217218, V-217223, V-217227, V-217230, V-217240, V-217241, V-217242, V-217243, V-217244, V-217245, V-217246, V-217247, V-217248, V-217249, V-217250, V-217251, V-217252, V-217253, V-217254, V-217255, V-217257, V-217258, V-217260, V-217265, V-217266, V-217267, V-217269, V-217272, V-217273, V-217274, V-217275, V-217276, V-217277, V-217278, V-217279, V-217280, V-217283, V-217283 V-217284, V-217286, V-217288, V-217289, V-217290, V-217291, V-217292, V-217293, V-217294, V-217295, V-217296, V-217299, V-217300, V-217301, V-217302, V-233308, V-237605, V-237606, V-237607, V-237608, V-237609, V-237610, V-237611, V-237612, V-237613, V-237614, V-237615, V-237616, V-237617, V-237618, V-237619, V-237620, V-237621, V-237622, V-237623, V-251720, V-251722, V-255914 e V-256981

**SLES 15 STIG versione 2 Release 6**

Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria III (basse) per questa distribuzione Linux, oltre a:

V-234802, V-234807, V-234808, V-234809, V-234813, V-234815, V-234817, V-234821, V-234822, V-234823, V-234825, V-234827, V-234828, V-234829, V-234830, V-234832, V-234833, V-234834, V-234835, V-234836, V-234837, V-234838, V-234839, V-234840, V-234841, V-234842, V-234843, V-234844, V-234845, V-234848, V-234854, V-234855, V-234856, V-234857, V-234858, V-234861, V-234862, V-234863, V-234869, V-234870, V-234875, V-234878, V-234880, V-234881, V-234882, V-234883, V-234884, V-234885, V-234886, V-234887, V-234888, V-234889, V-234891, V-234895, V-234896, V-234897, V-234899, V-234900, V-234901, V-234902, V-234903, V-234904, V-234906, V-234910, V-234911, V-234912, V-234913, V-234914, V-234918, V-234924, V-234928, V-234932, V-234937, V-234938, V-234939, V-234940, V-234941, V-234942, V-234943, V-234944, V-234945, V-234946, V-234947, V-234948, V-234949, V-234950, V-234951, V-234952, V-234954, V-234956, V-234957, V-234958, V-234959, V-234961, V-234962, V-234964, V-234966, V-234969, V-234973, V-234975, V-234976, V-234977, V-234978, V-234979, V-234981, V-234982, V-234983, V-234991, V-235002, V-235003, V-235007, V-235008, V-235009, V-235010, V-235013, V-235014, V-235015, V-235016, V-235017, V-235018, V-235019, V-235020, V-235021, V-235022, V-235023, V-235024, V-235025, V-235026, V-235028, V-235029, V-235030, V-251724, V-255920, V-256983 e V-274879

**Ubuntu 18.04 STIG versione 2 Release 15**

Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria III (basse) per questa distribuzione Linux, oltre a:

V-219149, V-219155, V-219156, V-219160, V-219166, V-219168, V-219176, V-219181, V-219184, V-219186, V-219188, V-219189, V-219190, V-219191, V-219192, V-219193, V-219194, V-219195, V-219196, V-219197, V-219198, V-219199, V-219200, V-219201, V-219202, V-219203, V-219204, V-219205, V-219206, V-219207, V-219208, V-219209, V-219213, V-219214, V-219215, V-219216, V-219217, V-219218, V-219219, V-219220, V-219221, V-219222, V-219223, V-219224, V-219225, V-219226, V-219227, V-219228, V-219229, V-219230, V-219231, V-219232, V-219233, V-219234, V-219235, V-219236, V-219238, V-219239, V-219240, V-219241, V-219242, V-219243, V-219244, V-219250, V-219254, V-219257, V-219263, V-219264, V-219265, V-219266, V-219267, V-219268, V-219269, V-219270, V-219271, V-219272, V-219273, V-219274, V-219275, V-219276, V-219277, V-219279, V-219281, V-219287, V-219291, V-219296, V-219297, V-219298, V-219299, V-219300, V-219303, V-219304, V-219306, V-219309, V-219310, V-219311, V-219315, V-219318, V-219319, V-219323, V-219326, V-219328, V-219330, V-219331, V-219335, V-219336, V-219337, V-219338, V-219339, V-219342, V-219344, V-233779, V-233780 e V-255906

**Ubuntu 20.04 STIG versione 2 versione 4**

Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria III (basse) per questa distribuzione Linux, oltre a:

V-238200, V-238205, V-238207, V-238209, V-238210, V-238211, V-238212, V-238213, V-238220, V-238225, V-238227, V-238228, V-238229, V-238230, V-238231, V-238232, V-238236, V-238238, V-238239, V-238240, V-238241, V-238242, V-238244, V-238245, V-238246, V-238247, V-238248, V-238249, V-238250, V-238251, V-238252, V-238253, V-238254, V-238255, V-238256, V-238257, V-238258, V-238264, V-238268, V-238271, V-238277, V-238278, V-238279, V-238280, V-238281, V-238282, V-238283, V-238284, V-238285, V-238286, V-238287, V-238288, V-238289, V-238290, V-238291, V-238292, V-238293, V-238294, V-238295, V-238297, V-238298, V-238299, V-238300, V-238301, V-238302, V-238303, V-238304, V-238309, V-238310, V-238315, V-238316, V-238317, V-238318, V-238319, V-238320, V-238324, V-238325, V-238329, V-238330, V-238333, V-238334, V-238337, V-238338, V-238339, V-238340, V-238341, V-238342, V-238343, V-238344, V-238345, V-238346, V-238347, V-238348, V-238349, V-238350, V-238351, V-238352, V-238353, V-238355, V-238356, V-238359, V-238360, V-238369, V-238370, V-238371, V-238376, V-238377, V-238378, V-251505, V-255912, V-274852 e V-274853

**Ubuntu 22.04 STIG versione 2 versione 7**

Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria III (basse) per questa distribuzione Linux, oltre a:

V-260471, V-260473, V-260474, V-260475, V-260475, V-260477, V-260478, V-260485, V-260486, V-260487, V-260488, V-260489, V-260490, V-260491, V-260492, V-260493, V-260494, V-260495, V-260496, V-260496, V-260496 497, V-260498, V-260499, V-260500, V-260505, V-260506, V-260507, V-260508, V-260509, V-260510, V-260511, V-260512, V-260513, V-260514, V-260522, V-260527, V-260528, V-260530, V-260533, V-260533, V-260528, V-260530, V-260533, V-260522, V-260528, V-260530, V-260533, V-260522 34, V-260535, V-260537, V-260538, V-260540, V-260542, V-260543, V-260545, V-260546, V-260547, V-260553, V-260554, V-260555, V-260556, V-260557, V-260560, V-260561, V-260562, V-260563, V-260564, V-260565, V-260566, V-260567, V-260569, V-260572, V-260573, V-260574, V-260575, V-260576, V-260582, V-260584, V-260585, V-260586, V-260588, V-260589, V-260590, V-260591, V-260594, V-260597, V-260598, V-260599, V-260600, V-260601, V-260602, V-260603, V-260604, V-260605, V-260606, V-260607, V-260608, V-260609, V-260610, V-260611, V-260612, V-260613, V-260614, V-260615, V-260616, V-260617, V-260618, V-260619, V-260620, V-260621, V-260622, V-260623, V-260624, V-260625, V-260626, V-260627, V-260628, V-260629, V-260630, V-260631, V-260632, V-260633, V-260634, V-260635, V-260636, V-260637, V-260638, V-260639, V-260640, V-260641, V-260642, V-260643, V-260644, V-260645, V-260646, V-260647, V-260648, V-260649, V-274862, V-274864 e V-274866

**Ubuntu 24.04 STIG Versione 1 Release 4**

Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria III (basse) per questa distribuzione Linux, oltre a:

V-270649, V-270651, V-270652, V-270653, V-270654, V-270656, V-270657, V-270659, V-270660, V-270661, V-270662, V-270663, V-270669, V-270672, V-270673, V-270674, V-270676, V-270678, V-270679, V-270680, V-270681, V-270683, V-270684, V-270685, V-270686, V-270687, V-270688, V-270689, V-270692, V-270693, V-270696, V-270697, V-270698, V-270699, V-270700, V-270701, V-270702, V-270703, V-270704, V-270705, V-270709, V-270715, V-270716, V-270718, V-270720, V-270721, V-270722, V-270723, V-270724, V-270725, V-270726, V-270727, V-270728, V-270729, V-270730, V-270731, V-270732, V-270733, V-270737, V-270739, V-270740, V-270741, V-270742, V-270743, V-270746, V-270750, V-270753, V-270755, V-270756, V-270757, V-270758, V-270759, V-270760, V-270765, V-270766, V-270767, V-270768, V-270769, V-270770, V-270771, V-270772, V-270773, V-270775, V-270776, V-270777, V-270778, V-270779, V-270780, V-270781, V-270782, V-270783, V-270784, V-270785, V-270786, V-270787, V-270788, V-270789, V-270790, V-270791, V-270792, V-270793, V-270794, V-270795, V-270796, V-270797, V-270798, V-270799, V-270800, V-270801, V-270802, V-270803, V-270804, V-270805, V-270806, V-270807, V-270808, V-270809, V-270810, V-270811, V-270812, V-270813, V-270814, V-270815, V-270821, V-270822, V-270823, V-270824, V-270825, V-270826, V-270827, V-270828, V-270829, V-270830, V-270831, V-270832, V-274870, V-274871, V-274872 e V-274873

### STIG per Linux Alto (categoria I)
<a name="ib-linux-stig-high"></a>

L'elenco seguente contiene le impostazioni STIG che il componente di protezione avanzata applica all'infrastruttura. Se un'impostazione supportata non è applicabile all'infrastruttura, il componente di protezione avanzata ignora tale impostazione e prosegue. Ad esempio, alcune impostazioni STIG potrebbero non essere applicabili ai server autonomi. Le politiche specifiche dell'organizzazione possono anche influire sulle impostazioni applicate dal componente di protezione avanzata, ad esempio l'obbligo per gli amministratori di rivedere le impostazioni dei documenti.

[Per un elenco completo, consultate la Document Library. STIGs ](https://public.cyber.mil/stigs/downloads/?_dl_facet_stigs=operating-systems%2Cunix-linux) Per informazioni su come visualizzare l'elenco completo, consulta [Strumenti di visualizzazione STIG](https://public.cyber.mil/stigs/srg-stig-tools/).

**Nota**  
I componenti di protezione avanzata di Linux STIG includono tutte le impostazioni STIG elencate che AWSTOE si applicano ai componenti di protezione avanzata Linux STIG Low e Linux STIG Medium, oltre alle impostazioni STIG elencate che si applicano specificamente alle vulnerabilità di categoria I.

**RHEL 7 STIG versione 3 rilascio 15**

Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria II e III (media e bassa) per questa distribuzione Linux, oltre a:
+ 

**RHEL 7/CentOS 7/ AL2**  
V-204424, V-204425, V-204442, V-204443, V-204447, V-204448, V-204455, V-204462, V-204497, V-204497, V-204502, V-204594, V-204620 e V-204621

**RHEL 8 STIG versione 2 versione 6**

Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria II e III (medie e basse) per questa distribuzione Linux, oltre a:
+ 

**RHEL 8/CentOS 8**  
V-230223, V-230264, V-230283, V-230284, V-230487, V-230492, V-230533, V-230558, V-244540, V-279933, V-230265, V-230226, V-230530, V-268322, V-230529 e V-230531

**RHEL 9 STIG versione 2 Release 7**

Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria II e III (medie e basse) per questa distribuzione Linux, oltre a:
+ 

**RHEL 9/CentOS Stream 9**  
V-257820, V-257821, V-257826, V-257835, V-257955, V-257956, V-258059, V-258230, V-258238, V-257984, V-257986, V-258078, V-258094, V-258235, V-257784 e V-257785

**Amazon Linux 2023 STIG versione 1 versione 2**

Include tutte le impostazioni STIG supportate applicate dal componente di protezione avanzata per le vulnerabilità di categoria II e III (medie e basse) per questa distribuzione Linux, oltre a:

V-273996, V-273997, V-273999, V-274007, V-274038, V-274039, V-274046, V-274052, V-274057 e V-274153

**SLES 12 STIG versione 3 versione 4**

Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria II e III (medie e basse) per questa distribuzione Linux, oltre a:

 V-217101, V-217139, V-217141, V-217142, V-217159, V-217160, V-217164, V-217264, V-217268, V-222386 e V-251721

**SLES 15 STIG versione 2 versione 6**

Include tutte le impostazioni STIG supportate che il componente di protezione avanzata applica per le vulnerabilità di categoria II e III (medie e basse) per questa distribuzione Linux, oltre a:

V-234800, V-234804, V-234818, V-234852, V-234859, V-234860, V-234898, V-234984, V-234985, V-234988, V-234989, V-234990, V-235031, V-235032 e V-251725

**Ubuntu 18.04 STIG versione 2 versione 15**

Include tutte le impostazioni STIG supportate applicate dal componente di protezione avanzata per le vulnerabilità di categoria II e III (medie e basse) per questa distribuzione Linux, oltre a:

V-219157, V-219158, V-219177, V-219212, V-219308, V-219314, V-219316 e V-251507

**Ubuntu 20.04 STIG versione 2 versione 4**

Include tutte le impostazioni STIG supportate applicate dal componente di protezione avanzata per le vulnerabilità di categoria II e III (medie e basse) per questa distribuzione Linux, oltre a:

V-238201, V-238218, V-238219, V-238326, V-238327, V-238380 e V-251504

**Ubuntu 22.04 STIG versione 2 versione 7**

Include tutte le impostazioni STIG supportate applicate dal componente di protezione avanzata per le vulnerabilità di categoria II e III (medie e basse) per questa distribuzione Linux, oltre a:

V-260469, V-260482, V-260483, V-260523, V-260524, V-260526, V-260529, V-260539, V-260570, V-260571, V-260579 e V-279937

**Ubuntu 24.04 STIG versione 1 versione 4**

Include tutte le impostazioni STIG supportate applicate dal componente di protezione avanzata per le vulnerabilità di categoria II e III (medie e basse) per questa distribuzione Linux, oltre a:

V-270647, V-270648, V-270665, V-270666, V-270708, V-270711, V-270712, V-270713, V-270714, V-270717, V-270736, V-270738 e V-279938

## Registro della cronologia delle versioni STIG per Linux
<a name="ib-linux-version-hist"></a>

Questa sezione registra la cronologia delle versioni dei componenti Linux. Per visualizzare le modifiche e le versioni pubblicate per un trimestre, scegli il titolo per espandere le informazioni.

### Modifiche al 1° trimestre 2026 - 10/03/2026:
<a name="2026-q1-linux"></a>

Sono state aggiornate le seguenti versioni STIG, applicate STIGs per la versione del primo trimestre 2026 per tutti i livelli di conformità:

**STIG-build-Linux**
+ RHEL 8 STIG versione 2 versione 6
+ RHEL 9 STIG versione 2 versione 7
+ Amazon Linux 2023 STIG versione 1 versione 2
+ SLES 12 STIG versione 3 versione 4
+ SLES 15 STIG versione 2 versione 6
+ Ubuntu 20.04 STIG versione 2 versione 4
+ Ubuntu 22.04 STIG versione 2 Release 7
+ Ubuntu 24.04 STIG versione 1 versione 4

### Modifiche al terzo trimestre 2025 - 04/09/2025:
<a name="2025-q3-linux"></a>

È stato aggiunto il supporto per il sistema operativo SUSE Linux Enterprise Server (SLES) e Amazon Linux 2023. Sono state aggiornate le seguenti versioni di STIG e applicato STIGS per la versione del terzo trimestre 2025 per tutti i livelli di conformità (): low/medium/high
+ RHEL 7 STIG versione 3 rilascio 15
+ RHEL 8 STIG versione 2 rilascio 4
+ RHEL 9 STIG versione 2 rilascio 5
+ Amazon Linux 2023 STIG versione 1 rilascio 1
+ SLES 12 STIG versione 3 rilascio 3
+ SLES 15 STIG versione 2 rilascio 5
+ Ubuntu 18.04 STIG versione 2 rilascio 15
+ Ubuntu 20.04 STIG versione 2 rilascio 3
+ Ubuntu 22.04 STIG versione 2 rilascio 5
+ Ubuntu 24.04 STIG versione 1 rilascio 2

### Modifiche al secondo trimestre 2025 - 26/06/2025:
<a name="2025-q2-linux"></a>

Sono state aggiornate le versioni STIG seguenti, sono stati applicati STIG per il rilascio del secondo trimestre 2025:

**STIG-Build-Linux-Low versione 2025.2.x**
+ RHEL 7 STIG versione 3 rilascio 15
+ RHEL 8 STIG versione 2 rilascio 3
+ RHEL 9 STIG versione 2 rilascio 4
+ Ubuntu 18.04 STIG versione 2 rilascio 15
+ Ubuntu 20.04 STIG versione 2 rilascio 2
+ Ubuntu 22.04 STIG versione 2 rilascio 4
+ Ubuntu 24.04 STIG versione 1 rilascio 1

**STIG-Build-Linux-Medium versione 2025.2.x**
+ RHEL 7 STIG versione 3 rilascio 15
+ RHEL 8 STIG versione 2 rilascio 3
+ RHEL 9 STIG versione 2 rilascio 4
+ Ubuntu 18.04 STIG versione 2 rilascio 15
+ Ubuntu 20.04 STIG versione 2 rilascio 2
+ Ubuntu 22.04 STIG versione 2 rilascio 4
+ Ubuntu 24.04 STIG versione 1 rilascio 1

**STIG-Build-Linux-High versione 2025.2.x**
+ RHEL 7 STIG versione 3 rilascio 15
+ RHEL 8 STIG versione 2 rilascio 3
+ RHEL 9 STIG versione 2 rilascio 4
+ Ubuntu 18.04 STIG versione 2 rilascio 15
+ Ubuntu 20.04 STIG versione 2 rilascio 2
+ Ubuntu 22.04 STIG versione 2 rilascio 4
+ Ubuntu 24.04 STIG versione 1 rilascio 1

### Modifiche al terzo trimestre 2025 - 11/04/2025:
<a name="2025-q1-linux"></a>

Sono state aggiornate le seguenti versioni di STIG, sono stati applicati STIG per il rilascio del primo trimestre 2025 ed è stato aggiunto il supporto per Ubuntu 24.04:

**STIG-Build-Linux-Low versione 2025.1.x**
+ RHEL 7 STIG versione 3 rilascio 15
+ RHEL 8 STIG versione 2 rilascio 2
+ RHEL 9 STIG versione 2 rilascio 3
+ Ubuntu 18.04 STIG versione 2 rilascio 15
+ Ubuntu 20.04 STIG versione 2 rilascio 2
+ Ubuntu 22.04 STIG versione 2 rilascio 3
+ Ubuntu 24.04 STIG versione 1 rilascio 1

**STIG-Build-Linux-Medium versione 2025.1.x**
+ RHEL 7 STIG versione 3 rilascio 15
+ RHEL 8 STIG versione 2 rilascio 2
+ RHEL 9 STIG versione 2 rilascio 3
+ Ubuntu 18.04 STIG versione 2 rilascio 15
+ Ubuntu 20.04 STIG versione 2 rilascio 2
+ Ubuntu 22.04 STIG versione 2 rilascio 3
+ Ubuntu 24.04 STIG versione 1 rilascio 1

**STIG-Build-Linux-High versione 2025.1.x**
+ RHEL 7 STIG versione 3 rilascio 15
+ RHEL 8 STIG versione 2 rilascio 2
+ RHEL 9 STIG versione 2 rilascio 3
+ Ubuntu 18.04 STIG versione 2 rilascio 15
+ Ubuntu 20.04 STIG versione 2 rilascio 2
+ Ubuntu 22.04 STIG versione 2 rilascio 3
+ Ubuntu 24.04 STIG versione 1 rilascio 1

### Modifiche al quarto trimestre 2024 - 10/12/2024:
<a name="2024-q4-linux"></a>

Sono state aggiornate le seguenti versioni di STIG, sono stati applicati STIG per il rilascio del quarto trimestre 2024 e sono state aggiunte informazioni su due nuovi parametri di input per i componenti Linux:

**STIG-Build-Linux-Low versione 2024.4.x**
+ RHEL 7 STIG versione 3 rilascio 15
+ RHEL 8 STIG versione 2 rilascio 1
+ RHEL 9 STIG versione 2 rilascio 2
+ Ubuntu 18.04 STIG versione 2 rilascio 15
+ Ubuntu 20.04 STIG versione 2 rilascio 1
+ Ubuntu 22.04 STIG versione 2 rilascio 2

**STIG-Build-Linux-Medium versione 2024.4.x**
+ RHEL 7 STIG versione 3 rilascio 15
+ RHEL 8 STIG versione 2 rilascio 1
+ RHEL 9 STIG versione 2 rilascio 2
+ Ubuntu 18.04 STIG versione 2 rilascio 15
+ Ubuntu 20.04 STIG versione 2 rilascio 1
+ Ubuntu 22.04 STIG versione 2 rilascio 2

**STIG-Build-Linux-High versione 2024.4.x**
+ RHEL 7 STIG versione 3 rilascio 15
+ RHEL 8 STIG versione 2 rilascio 1
+ RHEL 9 STIG versione 2 rilascio 2
+ Ubuntu 18.04 STIG versione 2 rilascio 15
+ Ubuntu 20.04 STIG versione 2 rilascio 1
+ Ubuntu 22.04 STIG versione 2 rilascio 2

### Modifiche al terzo trimestre 2024 - 04/10/2024 (nessuna modifica):
<a name="2024-q3-linux"></a>

Non sono state apportate modifiche al componente STIG per Linux per il rilascio del terzo trimestre 2024.

### Modifiche al secondo trimestre 2024 - 10/05/2024:
<a name="2024-q2-linux"></a>

Sono state aggiornate le versioni STIG e sono stati applicati STIG per il rilascio del secondo trimestre 2024. È stato inoltre aggiunto il supporto per RHEL 9, CentOS Stream 9 e Ubuntu 22.04, come segue:

**STIG-Build-Linux-Low versione 2024.2.x**
+ RHEL 7 STIG versione 3 rilascio 14
+ RHEL 8 STIG versione 1 rilascio 14
+ RHEL 9 STIG versione 1 rilascio 3
+ Ubuntu 18.04 STIG versione 2 rilascio 14
+ Ubuntu 20.04 STIG versione 1 rilascio 12
+ Ubuntu 22.04 STIG versione 1 rilascio 1

**STIG-Build-Linux-Medium versione 2024.2.x**
+ RHEL 7 STIG versione 3 rilascio 14
+ RHEL 8 STIG versione 1 rilascio 14
+ RHEL 9 STIG versione 1 rilascio 3
+ Ubuntu 18.04 STIG versione 2 rilascio 14
+ Ubuntu 20.04 STIG versione 1 rilascio 12
+ Ubuntu 22.04 STIG versione 1 rilascio 1

**STIG-Build-Linux-High versione 2024.2.x**
+ RHEL 7 STIG versione 3 rilascio 14
+ RHEL 8 STIG versione 1 rilascio 14
+ RHEL 9 STIG versione 1 rilascio 3
+ Ubuntu 18.04 STIG versione 2 rilascio 14
+ Ubuntu 20.04 STIG versione 1 rilascio 12
+ Ubuntu 22.04 STIG versione 1 rilascio 1

### Modifiche al primo trimestre 2024 - 06/02/2024:
<a name="2024-q1-linux"></a>

Sono state aggiornate le versioni STIG e sono stati applicati STIG per il rilascio del primo trimestre 2024 come segue:

**STIG-Build-Linux-Low versione 2024.1.x**
+ RHEL 7 STIG versione 3 rilascio 14
+ RHEL 8 STIG versione 1 rilascio 13
+ Ubuntu 18.04 STIG versione 2 rilascio 13
+ Ubuntu 20.04 STIG versione 1 rilascio 11

**STIG-Build-Linux-Medium versione 2024.1.x**
+ RHEL 7 STIG versione 3 rilascio 14
+ RHEL 8 STIG versione 1 rilascio 13
+ Ubuntu 18.04 STIG versione 2 rilascio 13
+ Ubuntu 20.04 STIG versione 1 rilascio 11

**STIG-Build-Linux-High versione 2024.1.x**
+ RHEL 7 STIG versione 3 rilascio 14
+ RHEL 8 STIG versione 1 rilascio 13
+ Ubuntu 18.04 STIG versione 2 rilascio 13
+ Ubuntu 20.04 STIG versione 1 rilascio 11

### Modifiche al quarto trimestre 2023 - 07/12/2023:
<a name="2023-q4-linux"></a>

Sono state aggiornate le versioni STIG e sono stati applicati STIG per il rilascio del quarto trimestre 2023 come segue:

**STIG-Build-Linux-Low versione 2023.4.x**
+ RHEL 7 STIG versione 3 rilascio 13
+ RHEL 8 STIG versione 1 rilascio 12
+ Ubuntu 18.04 STIG versione 2 rilascio 12
+ Ubuntu 20.04 STIG versione 1 rilascio 10

**STIG-Build-Linux-Medium versione 2023.4.x**
+ RHEL 7 STIG versione 3 rilascio 13
+ RHEL 8 STIG versione 1 rilascio 12
+ Ubuntu 18.04 STIG versione 2 rilascio 12
+ Ubuntu 20.04 STIG versione 1 rilascio 10

**STIG-Build-Linux-High versione 2023.4.x**
+ RHEL 7 STIG versione 3 rilascio 13
+ RHEL 8 STIG versione 1 rilascio 12
+ Ubuntu 18.04 STIG versione 2 rilascio 12
+ Ubuntu 20.04 STIG versione 1 rilascio 10

### Modifiche al terzo trimestre 2023 - 04/10/2023:
<a name="2023-q3-linux"></a>

Sono state aggiornate le versioni STIG e sono stati applicati STIG per il rilascio del terzo trimestre 2023 come segue:

**STIG-Build-Linux-Low versione 2023.3.x**
+ RHEL 7 STIG versione 3 rilascio 12
+ RHEL 8 STIG versione 1 rilascio 11
+ Ubuntu 18.04 STIG versione 2 rilascio 11
+ Ubuntu 20.04 STIG versione 1 rilascio 9

**STIG-Build-Linux-Medium versione 2023.3.x**
+ RHEL 7 STIG versione 3 rilascio 12
+ RHEL 8 STIG versione 1 rilascio 11
+ Ubuntu 18.04 STIG versione 2 rilascio 11
+ Ubuntu 20.04 STIG versione 1 rilascio 9

**STIG-Build-Linux-High versione 2023.3.x**
+ RHEL 7 STIG versione 3 rilascio 12
+ RHEL 8 STIG versione 1 rilascio 11
+ Ubuntu 18.04 STIG versione 2 rilascio 11
+ Ubuntu 20.04 STIG versione 1 rilascio 9

### Modifiche al secondo trimestre 2023 - 03/05/2023:
<a name="2023-q2-linux"></a>

Sono state aggiornate le versioni STIG e sono stati applicati STIG per il rilascio del secondo trimestre 2023 come segue:

**STIG-Build-Linux-Low versione 2023.2.x**
+ RHEL 7 STIG versione 3 rilascio 11
+ RHEL 8 STIG versione 1 rilascio 10
+ Ubuntu 18.04 STIG versione 2 rilascio 11
+ Ubuntu 20.04 STIG versione 1 rilascio 8

**STIG-Build-Linux-Medium versione 2023.2.x**
+ RHEL 7 STIG versione 3 rilascio 11
+ RHEL 8 STIG versione 1 rilascio 10
+ Ubuntu 18.04 STIG versione 2 rilascio 11
+ Ubuntu 20.04 STIG versione 1 rilascio 8

**STIG-Build-Linux-High versione 2023.2.x**
+ RHEL 7 STIG versione 3 rilascio 11
+ RHEL 8 STIG versione 1 rilascio 10
+ Ubuntu 18.04 STIG versione 2 rilascio 11
+ Ubuntu 20.04 STIG versione 1 rilascio 8

### Modifiche al primo trimestre 2023 - 27/03/2023:
<a name="2023-q1-linux"></a>

Sono state aggiornate le versioni STIG e sono stati applicati STIG per il rilascio del primo trimestre 2023 come segue:

**STIG-Build-Linux-Low versione 2023.1.x**
+ RHEL 7 STIG versione 3 rilascio 10
+ RHEL 8 STIG versione 1 rilascio 9
+ Ubuntu 18.04 STIG versione 2 rilascio 10
+ Ubuntu 20.04 STIG versione 1 rilascio 7

**STIG-Build-Linux-Medium versione 2023.1.x**
+ RHEL 7 STIG versione 3 rilascio 10
+ RHEL 8 STIG versione 1 rilascio 9
+ Ubuntu 18.04 STIG versione 2 rilascio 10
+ Ubuntu 20.04 STIG versione 1 rilascio 7

**STIG-Build-Linux-High versione 2023.1.x**
+ RHEL 7 STIG versione 3 rilascio 10
+ RHEL 8 STIG versione 1 rilascio 9
+ Ubuntu 18.04 STIG versione 2 rilascio 10
+ Ubuntu 20.04 STIG versione 1 rilascio 7

### Modifiche al quarto trimestre 2022 - 01/02/2023:
<a name="2022-q4-linux"></a>

Sono state aggiornate le versioni STIG e sono stati applicati STIG per il rilascio del quarto trimestre 2022 come segue:

**STIG-Build-Linux-Low versione 2022.4.x**
+ RHEL 7 STIG versione 3 rilascio 9
+ RHEL 8 STIG versione 1 rilascio 8
+ Ubuntu 18.04 STIG versione 2 rilascio 9
+ Ubuntu 20.04 STIG versione 1 rilascio 6

**STIG-Build-Linux-Medium versione 2022.4.x**
+ RHEL 7 STIG versione 3 rilascio 9
+ RHEL 8 STIG versione 1 rilascio 8
+ Ubuntu 18.04 STIG versione 2 rilascio 9
+ Ubuntu 20.04 STIG versione 1 rilascio 6

**STIG-Build-Linux-High versione 2022.4.x**
+ RHEL 7 STIG versione 3 rilascio 9
+ RHEL 8 STIG versione 1 rilascio 8
+ Ubuntu 18.04 STIG versione 2 rilascio 9
+ Ubuntu 20.04 STIG versione 1 rilascio 6

### Modifiche al terzo trimestre 2022 - 30/09/2022 (nessuna modifica):
<a name="2022-q3-linux"></a>

Non sono state apportate modifiche al componente STIG per Linux per il rilascio del terzo trimestre 2022.

### Modifiche al secondo trimestre 2022 - 02/08/2022:
<a name="2022-q2-linux"></a>

È stato introdotto il supporto a Ubuntu, sono state aggiornate le versioni STIG e sono stati applicati STIG per il rilascio del secondo trimestre 2022 come segue:

**STIG-Build-Linux-Low versione 2022.2.x**
+ RHEL 7 STIG versione 3 rilascio 7
+ RHEL 8 STIG versione 1 rilascio 6
+ Ubuntu 18.04 STIG versione 2 rilascio 6 (nuova)
+ Ubuntu 20.04 STIG versione 1 rilascio 4 (nuova)

**STIG-Build-Linux-Medium versione 2022.2.x**
+ RHEL 7 STIG versione 3 rilascio 7
+ RHEL 8 STIG versione 1 rilascio 6
+ Ubuntu 18.04 STIG versione 2 rilascio 6 (nuova)
+ Ubuntu 20.04 STIG versione 1 rilascio 4 (nuova)

**STIG-Build-Linux-High versione 2022.2.x**
+ RHEL 7 STIG versione 3 rilascio 7
+ RHEL 8 STIG versione 1 rilascio 6
+ Ubuntu 18.04 STIG versione 2 rilascio 6 (nuova)
+ Ubuntu 20.04 STIG versione 1 rilascio 4 (nuova)

### Modifiche al primo trimestre 2022 - 26/04/2022:
<a name="2022-q1-linux"></a>

Rifattorizzato per includere un migliore supporto per i container. Combinato lo AL2 script precedente con RHEL 7. Sono state aggiornate le versioni STIG e sono stati applicati STIG per il rilascio del primo trimestre 2022 come segue:

**STIG-Build-Linux-Low versione 3.6.x**
+ RHEL 7 STIG versione 3 rilascio 6
+ RHEL 8 STIG versione 1 rilascio 5

**STIG-Build-Linux-Medium versione 3.6.x**
+ RHEL 7 STIG versione 3 rilascio 6
+ RHEL 8 STIG versione 1 rilascio 5

**STIG-Build-Linux-High versione 3.6.x**
+ RHEL 7 STIG versione 3 rilascio 6
+ RHEL 8 STIG versione 1 rilascio 5

### Modifiche al quarto trimestre 2021 - 20/12/2021:
<a name="2021-q4-linux"></a>

Sono state aggiornate le versioni STIG e sono stati applicati STIG per il rilascio del quarto trimestre 2021 come segue:

**STIG-Build-Linux-Low versione 3.5.x**
+ RHEL 7 STIG versione 3 rilascio 5
+ RHEL 8 STIG versione 1 rilascio 4

**STIG-Build-Linux-Medium versione 3.5.x**
+ RHEL 7 STIG versione 3 rilascio 5
+ RHEL 8 STIG versione 1 rilascio 4

**STIG-Build-Linux-High versione 3.5.x**
+ RHEL 7 STIG versione 3 rilascio 5
+ RHEL 8 STIG versione 1 rilascio 4

### Modifiche al terzo trimestre 2021 - 30/09/2021:
<a name="2021-q3-linux"></a>

Sono state aggiornate le versioni STIG e sono stati applicati STIG per il rilascio del terzo trimestre 2021 come segue:

**STIG-Build-Linux-Low versione 3.4.x**
+ RHEL 7 STIG versione 3 rilascio 4
+ RHEL 8 STIG versione 1 rilascio 3

**STIG-Build-Linux-Medium versione 3.4.x**
+ RHEL 7 STIG versione 3 rilascio 4
+ RHEL 8 STIG versione 1 rilascio 3

**STIG-Build-Linux-High versione 3.4.x**
+ RHEL 7 STIG versione 3 rilascio 4
+ RHEL 8 STIG versione 1 rilascio 3

## componente di validazione della conformità SCAP
<a name="scap-compliance"></a>

Il Security Content Automation Protocol (SCAP) è un insieme di standard che i professionisti IT possono utilizzare per identificare le vulnerabilità di sicurezza delle applicazioni ai fini della conformità. Lo SCAP Compliance Checker (SCC) è uno strumento di scansione convalidato dallo SCAP, rilasciato dal Naval Information Warfare Center (NIWC) Atlantic. *Per ulteriori informazioni, vedere [Security Content Automation Protocol (SCAP) Compliance Checker (SCC)](https://www.niwcatlantic.navy.mil/Technology/SCAP/) sul sito web di NIWC Atlantic.*

I `scap-compliance-checker-linux` componenti AWSTOE `scap-compliance-checker-windows` e scaricano e installano lo scanner SCC sulle istanze di compilazione e test della pipeline. Quando lo scanner è in esecuzione, esegue scansioni di configurazione autenticate utilizzando i benchmark DISA SCAP e fornisce un rapporto che include le seguenti informazioni. AWSTOE scrive inoltre le informazioni nei registri delle applicazioni.
+ impostazioni STIG applicate all'istanza.
+ Un punteggio di conformità complessivo per l'istanza.

Ti consigliamo di eseguire la convalida SCAP come fase finale del processo di creazione, per assicurarti di riportare risultati accurati di convalida della conformità.

**Nota**  
È possibile esaminare i report con uno degli strumenti di visualizzazione [STIG](https://public.cyber.mil/stigs/srg-stig-tools/). Questi strumenti sono disponibili online tramite DoD Cyber Exchange.

Le sezioni seguenti descrivono i benchmark inclusi nei componenti di convalida SCAP.

### scap-compliance-checker-windows versione 2024.03.0
<a name="scap-component-windows"></a>

Il `scap-compliance-checker-windows` componente viene eseguito sulle istanze EC2 create da Image Builder per creare e testare l'immagine. AWSTOE registra sia il report che il punteggio prodotto dall'applicazione SCC.

Il componente esegue le seguenti fasi del flusso di lavoro: 

1. Scarica e installa l'applicazione SCC.

1. Importa i benchmark di conformità.

1. Esegue la convalida utilizzando l'applicazione SCC.

1. Salva il rapporto di conformità e il punteggio localmente sul desktop dell'istanza di compilazione.

1. Registra il punteggio di conformità dal rapporto locale ai file di registro dell' AWSTOE applicazione.

**Nota**  
AWSTOE attualmente supporta la convalida della conformità SCAP per Windows Server 2012 R2 MS, 2016, 2019 e 2022.

Il componente di verifica della conformità SCAP per Windows include i seguenti benchmark:

**Versione SCC: 5.10**  
Benchmark del quarto trimestre 2023:
+ U\$1MS\$1Defender\$1Antivirus\$1V2R5\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1 \$1Framework\$14-0\$1V2R2\$1STIG\$1SCAP\$11-2\$1Benchmark DotNet
+ U\$1MS\$1 IE11 \$1V2R6\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$12012\$1and\$12012\$1R2\$1DC\$1V3R5\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$12012\$1and\$12012\$1R2\$1MS\$1V3R5\$1STIG\$1SCAP\$11-2\$1benchmark
+ U\$1MS\$1Windows\$1Defender\$1Firewall\$1V2R3\$1STIG\$1SCAP\$11-2\$1benchmark
+ U\$1MS\$1Windows\$1Server\$12016\$1V2R7\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$1Server\$12019\$1V3R2\$1STIG\$1SCAP\$11-2\$1benchmark
+ U\$1MS\$1Windows\$1Server\$12022\$1V2R2\$1STIG\$1SCAP\$11-2\$1benchmark
+ U\$1CAN\$1Ubuntu\$120-04\$1LTS\$1V1R10\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1RHEL\$17\$1V3R15\$1STIG\$1SCAP\$11-3\$1benchmark
+ U\$1RHEL\$18\$1V1R13\$1STIG\$1SCAP\$11-3\$1benchmark
+ U\$1RHEL\$19\$1V2R1\$1STIG\$1SCAP\$11-3\$1benchmark

### scap-compliance-checker-linux versione 2021.04.0
<a name="scap-component-linux"></a>

Il `scap-compliance-checker-linux` componente viene eseguito sulle istanze EC2 create da Image Builder per creare e testare l'immagine. AWSTOE registra sia il report che il punteggio prodotto dall'applicazione SCC.

Il componente esegue le seguenti fasi del flusso di lavoro:

1. Scarica e installa l'applicazione SCC.

1. Importa i benchmark di conformità.

1. Esegue la convalida utilizzando l'applicazione SCC.

1. Salva il rapporto di conformità e il punteggio localmente, nella seguente posizione sull'istanza di build:. `/opt/scc/SCCResults`

1. Registra il punteggio di conformità dal rapporto locale ai file di registro dell' AWSTOE applicazione.

**Nota**  
AWSTOE attualmente supporta la convalida della conformità SCAP per RHEL 7/8 e Ubuntu 18.04/20.04. L'applicazione SCC attualmente supporta l'architettura x86 per la convalida.

Il componente SCAP Compliance Checker per Linux include i seguenti benchmark:

**Versione SCC: 5.10**  
Benchmark del quarto trimestre 2023:
+ U\$1CAN\$1Ubuntu\$120-04\$1LTS\$1V1R10\$1STIG\$1SCAP\$11-2\$1benchmark
+ U\$1RHEL\$17\$1V3R15\$1STIG\$1SCAP\$11-3\$1benchmark
+ U\$1RHEL\$18\$1V1R13\$1STIG\$1SCAP\$11-3\$1benchmark
+ U\$1RHEL\$19\$1V2R1\$1STIG\$1SCAP\$11-3\$1benchmark
+ U\$1MS\$1Defender\$1Antivirus\$1V2R5\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1 \$1Framework\$14-0\$1V2R2\$1STIG\$1SCAP\$11-2\$1Benchmark DotNet
+ U\$1MS\$1 IE11 \$1V2R6\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$12012\$1and\$12012\$1R2\$1DC\$1V3R5\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$12012\$1and\$12012\$1R2\$1MS\$1V3R5\$1STIG\$1SCAP\$11-2\$1benchmark
+ U\$1MS\$1Windows\$1Defender\$1Firewall\$1V2R3\$1STIG\$1SCAP\$11-2\$1benchmark
+ U\$1MS\$1Windows\$1Server\$12016\$1V2R7\$1STIG\$1SCAP\$11-2\$1Benchmark
+ U\$1MS\$1Windows\$1Server\$12019\$1V3R2\$1STIG\$1SCAP\$11-2\$1benchmark
+ U\$1MS\$1Windows\$1Server\$12022\$1V2R2\$1STIG\$1SCAP\$11-2\$1benchmark

### Cronologia delle versioni di SCAP
<a name="ib-scap-version-hist"></a>

La tabella seguente descrive le modifiche importanti all'ambiente e alle impostazioni SCAP descritte in questo documento.


| Modifica | Descrizione | Data | 
| --- | --- | --- | 
|  Aggiornamenti SCAP del primo trimestre 2025  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/imagebuilder/latest/userguide/ib-stig.html)  | 11 aprile 2025 | 
|  Aggiornamenti SCAP per il quarto trimestre del 2023  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/imagebuilder/latest/userguide/ib-stig.html)  | 20 dicembre 2021 | 
|  Aggiornamenti SCAP per il terzo trimestre del 2023  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/imagebuilder/latest/userguide/ib-stig.html)  | 13 novembre 2023 | 
|  Componenti SCAP aggiunti  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/imagebuilder/latest/userguide/ib-stig.html)  | 20 dicembre 2021 | 

# Sviluppa componenti personalizzati per la tua immagine Image Builder
<a name="create-custom-components"></a>

È possibile creare componenti personalizzati per personalizzare le immagini di Image Builder in base alle specifiche esatte. Utilizza i seguenti passaggi per sviluppare componenti personalizzati per le tue ricette di immagini o contenitori di Image Builder.

1. Se desideri sviluppare il documento del componente e convalidarlo localmente, puoi installare l'applicazione AWS Task Orchestrator and Executor (AWSTOE) e configurarla sul tuo computer locale. Per ulteriori informazioni, consulta [Configurazione manuale per sviluppare componenti personalizzati con AWSTOE](toe-get-started.md).

1. Crea un documento componente che utilizzi il framework dei documenti AWSTOE dei componenti. Per ulteriori informazioni sul framework dei documenti, vedere[Usa il framework AWSTOE dei documenti dei componenti per i componenti personalizzati](toe-use-documents.md).

1. Specificate il documento del componente quando create un componente personalizzato. Per ulteriori informazioni, consulta [Crea un componente personalizzato con Image Builder](create-component.md).

**Topics**
+ [Creare un documento componente YAML per componenti personalizzati in Image Builder](create-component-yaml.md)
+ [Crea un componente personalizzato con Image Builder](create-component.md)

# Creare un documento componente YAML per componenti personalizzati in Image Builder
<a name="create-component-yaml"></a>

Per creare un componente, è necessario fornire un documento relativo al componente dell'applicazione YAML o JSON. Il documento contiene il codice che viene eseguito durante le fasi e i passaggi definiti per personalizzare l'immagine.

Alcuni esempi in questa sezione creano un componente di compilazione che richiama il modulo di `UpdateOS` azione nell'applicazione di gestione dei AWSTOE componenti. Il modulo aggiorna il sistema operativo. Per ulteriori informazioni sul modulo di `UpdateOS` azione, vedere[Aggiorna il sistema operativo](toe-action-modules.md#action-modules-updateos).

L'esempio del sistema operativo macOS utilizza il modulo di `ExecuteBash` azione per installare e verificare l'`wget`utilità. Il modulo di `UpdateOS` azione non supporta macOS. Per ulteriori informazioni sul modulo di `ExecuteBash` azione, consulta[ExecuteBash](toe-action-modules.md#action-modules-executebash). Per ulteriori informazioni sulle fasi, i passaggi e la sintassi dei documenti dei componenti AWSTOE dell'applicazione, consulta [Use documents in AWSTOE](https://docs.aws.amazon.com/imagebuilder/latest/userguide/toe-use-documents.html).

**Nota**  
Image Builder determina il tipo di componente dalle fasi definite nel documento del componente come segue:  
**Build**: questo è il tipo di componente predefinito. Tutto ciò che non è classificato come componente di test è un componente di compilazione. Questo tipo di componente viene eseguito durante la *fase di creazione* dell'immagine. Se questo componente di compilazione ha una `test` fase definita, tale fase viene eseguita durante la *fase di test*.
**Test**: per qualificarsi come componente di test, il documento del componente deve includere solo una fase, denominata`test`. Per i test relativi alle configurazioni dei componenti di compilazione, ti consigliamo di non utilizzare un componente di test autonomo. Piuttosto, usa la `test` fase nel componente di compilazione associato.
Per ulteriori informazioni su come Image Builder utilizza fasi e fasi per gestire il flusso di lavoro dei componenti nel processo di creazione, vedere. [Usa i componenti per personalizzare l'immagine di Image Builder](manage-components.md)

Per creare un documento relativo al componente dell'applicazione YAML per un'applicazione di esempio, seguite i passaggi nella scheda corrispondente al sistema operativo dell'immagine. 

------
#### [ Linux ]

**Crea un file componente YAML**  
Usa uno strumento di modifica dei file per creare il documento componente. Gli esempi di documentazione utilizzano un file denominato`update-linux-os.yaml`, con il seguente contenuto:

```
# Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: MIT-0
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this
# software and associated documentation files (the "Software"), to deal in the Software
# without restriction, including without limitation the rights to use, copy, modify,
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
name: update-linux-os
description: Updates Linux with the latest security updates.
schemaVersion: 1
phases:
  - name: build
    steps:
    - name: UpdateOS
      action: UpdateOS
# Document End
```

**Suggerimento**  
Usa uno strumento come questo [validatore YAML](https://jsonformatter.org/yaml-validator) online o un'estensione YAML lint nel tuo ambiente di codice per verificare che il tuo YAML sia ben formato.

------
#### [ Windows ]

**Crea un file componente YAML**  
Usa uno strumento di modifica dei file per creare il documento componente. Gli esempi di documentazione utilizzano un file denominato`update-windows-os.yaml`, con il seguente contenuto:

```
# Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: MIT-0
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this
# software and associated documentation files (the "Software"), to deal in the Software
# without restriction, including without limitation the rights to use, copy, modify,
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
name: update-windows-os
description: Updates Windows with the latest security updates.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: UpdateOS
        action: UpdateOS
# Document End
```

**Suggerimento**  
Usa uno strumento come questo [validatore YAML](https://jsonformatter.org/yaml-validator) online o un'estensione YAML lint nel tuo ambiente di codice per verificare che il tuo YAML sia ben formato.

------
#### [ macOS ]

**Crea un file componente YAML**  
Usa uno strumento di modifica dei file per creare il documento componente. Gli esempi di documentazione utilizzano un file denominato`wget-macos.yaml`, con il seguente contenuto:

```
name: WgetInstallDocument
description: This is wget installation document.
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: WgetBuildStep
        action: ExecuteBash
        inputs:
          commands:
            - |
              PATH=/usr/local/bin:$PATH
              sudo -u ec2-user brew install wget


  - name: validate
    steps:
      - name: WgetValidateStep
        action: ExecuteBash
        inputs:
          commands:
            - |
              function error_exit {
                echo $1
                echo "{\"failureMessage\":\"$2\"}"
                exit 1
              }

              type wget
              if [ $? -ne 0 ]; then
                error_exit "$stderr" "Wget installation failed!"
              fi

  - name: test
    steps:
      - name: WgetTestStep
        action: ExecuteBash
        inputs:
          commands:
            - wget -h
```

**Suggerimento**  
Usa uno strumento come questo [validatore YAML](https://jsonformatter.org/yaml-validator) online o un'estensione YAML lint nel tuo ambiente di codice per verificare che il tuo YAML sia ben formato.

------

# Crea un componente personalizzato con Image Builder
<a name="create-component"></a>

Dopo aver completato il documento del componente, è possibile utilizzarlo per creare un componente personalizzato utilizzabile nelle ricette di Image Builder. È possibile creare un componente personalizzato dalla console Image Builder, dall'API o SDKs dalla riga di comando. Per ulteriori informazioni su come creare un componente personalizzato con parametri di input e utilizzarlo nelle ricette, vedere[Tutorial: creare un componente personalizzato con parametri di input](tutorial-component-parameters.md).

Le sezioni seguenti mostrano come creare componenti dalla console o da AWS CLI.

**Topics**
+ [Crea un componente personalizzato dalla console](#create-component-ib-console)
+ [Creare un componente personalizzato dal AWS CLI](#create-component-ib-cli)
+ [Importa uno script per creare un componente da AWS CLI](#import-component-cli)
+ [Gestione automatica delle versioni di build](#auto-build-version-management)
+ [Utilizzo dei riferimenti alle versioni](#using-version-references)

## Crea un componente personalizzato dalla console
<a name="create-component-ib-console"></a>

Per creare un componente AWSTOE dell'applicazione dalla console Image Builder, procedi nel seguente modo:

1. Apri la console EC2 Image Builder [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)all'indirizzo.

1. Seleziona **Componenti** dal pannello di navigazione. Quindi seleziona **Crea componente**.

1. Nella pagina **Crea componente**, in **Dettagli del componente**, inserisci quanto segue:

   1. **Image Operating System (OS)**. Specificare il sistema operativo con cui il componente è compatibile.

   1. **Categoria di componenti**. Dal menu a discesa, seleziona il tipo di componente di build o test che stai creando.

   1. **Nome del componente**. Immettete un nome per il componente.

   1. **Versione del componente**. Immettere il numero di versione del componente.

   1. **Descrizione**. Fornisci una descrizione opzionale per aiutarti a identificare il componente.

   1. **Modifica la descrizione**. Fornisci una descrizione facoltativa per aiutarti a comprendere le modifiche apportate a questa versione del componente.

1. Nella sezione **Definizione del documento**, l'opzione predefinita è **Definisci il contenuto del documento**. Il documento del componente definisce le azioni che Image Builder esegue sulle istanze di compilazione e test per creare l'immagine.

   Nella casella **Contenuto**, inserite il contenuto del documento del componente YAML. Per iniziare con un esempio di *Hello World* per Linux, scegli l'opzione **Usa esempio**. Per ulteriori informazioni su come creare un documento componente YAML o per copiare e incollare l'esempio *UpdateOS* da quella pagina, consulta. [Creare un documento componente YAML per componenti personalizzati in Image Builder](create-component-yaml.md)

1. **Dopo aver inserito i dettagli del componente, seleziona Crea componente.**
**Nota**  
Per vedere il nuovo componente quando crei o aggiorni una ricetta, applica il filtro **Owned by me** all'elenco dei componenti di compilazione o test. Il filtro si trova nella parte superiore dell'elenco dei componenti, accanto alla casella di ricerca.

1. Per eliminare un componente, nella pagina **Componenti**, seleziona la casella di controllo accanto al componente che desideri eliminare. Dal menu a discesa **Azioni**, seleziona **Elimina componente**.

**Aggiorna un componente**  
Per creare una nuova versione del componente, procedi nel seguente modo:

1. A seconda di dove inizi:
   + Dalla pagina dell'elenco dei **componenti**: seleziona la casella di controllo accanto al nome del componente, quindi seleziona **Crea nuova versione** dal menu **Azioni**.
   + Dalla pagina dei dettagli del componente: scegli il pulsante **Crea nuova versione** nell'angolo in alto a destra dell'intestazione.

1. Le informazioni sul componente sono già compilate con i valori correnti quando viene visualizzata la pagina **Crea componente**. Segui la procedura di creazione di un componente per aggiornare il componente. Ciò garantisce l'immissione di una versione semantica unica nella **versione Component**. Per ulteriori informazioni sul controllo delle versioni semantiche per le risorse di Image Builder, vedere. [Versionamento semantico in Image Builder](ibhow-semantic-versioning.md)

## Creare un componente personalizzato dal AWS CLI
<a name="create-component-ib-cli"></a>

In questa sezione, imparerete come configurare e utilizzare i comandi di Image Builder AWS CLI per creare un componente AWSTOE dell'applicazione, come segue.
+ Carica il documento del componente YAML in un bucket S3 a cui puoi fare riferimento dalla riga di comando.
+ Crea il componente dell' AWSTOE applicazione con il comando. **create-component**
+ Elenca le versioni dei componenti con il **list-components** comando e un filtro dei nomi per vedere quali versioni esistono già. È possibile utilizzare l'output per determinare quale dovrebbe essere la versione successiva per gli aggiornamenti.

Per creare un componente AWSTOE dell'applicazione da un documento YAML di input, seguite i passaggi corrispondenti alla piattaforma del sistema operativo di immagine.

------
#### [ Linux ]

**Archivia il documento relativo ai componenti dell'applicazione in Amazon S3**

Puoi utilizzare un bucket S3 come repository per il documento sorgente dei componenti AWSTOE dell'applicazione. Per archiviare il documento del componente, procedi nel seguente modo:
+ 

**Carica il documento su Amazon S3**

  *Se il documento è più piccolo di 64 KB, puoi saltare questo passaggio.* I documenti di dimensioni pari o superiori a 64 KB devono essere archiviati in Amazon S3.

  ```
  aws s3 cp update-linux-os.yaml s3://amzn-s3-demo-destination-bucket/my-path/update-linux-os.yaml
  ```

**Crea un componente dal documento YAML**

Per semplificare il **create-component** comando utilizzato in AWS CLI, create un file JSON che contenga tutti i parametri del componente che desiderate passare al comando. Includi la posizione del `update-linux-os.yaml` documento creato in precedenza. La coppia `uri` chiave-valore contiene il riferimento al file.
**Nota**  
La convenzione di denominazione per i valori dei dati nel file JSON segue lo schema specificato per i parametri di richiesta operativa dell'API Image Builder. Per esaminare i parametri di richiesta del comando API, consulta il [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html)comando nel riferimento all'API *EC2 Image Builder*.  
Per fornire i valori dei dati come parametri della riga di comando, fate riferimento ai nomi dei parametri specificati nel *AWS CLI Command* Reference.

1. 

**Creazione di un file JSON di input nella CLI**

   Utilizzate uno strumento di modifica dei file per creare un file denominato`create-update-linux-os-component.json`. Includi i seguenti contenuti:

   ```
   {
   	"name": "update-linux-os",
   	"semanticVersion": "1.1.2",
   	"description": "An example component that updates the Linux operating system",
   	"changeDescription": "Initial version.",
   	"platform": "Linux",
   	"uri": "s3://amzn-s3-demo-destination-bucket/my-path/update-linux-os.yaml",
   	"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/98765432-b123-456b-7f89-0123456f789c",
   	"tags": {
   		"MyTagKey-purpose": "security-updates"
   	}
   }
   ```

1. 

**Crea il componente**

   Utilizzate il seguente comando per creare il componente, facendo riferimento al nome del file JSON creato nel passaggio precedente:

   ```
   aws imagebuilder create-component --cli-input-json file://create-update-linux-os-component.json
   ```
**Nota**  
È necessario includere l'annotazione `file://` all'inizio del percorso del file JSON.
Il percorso del file JSON deve seguire la convenzione appropriata per il sistema operativo di base in cui si esegue il comando. Ad esempio, Windows utilizza la barra rovesciata (\$1) per fare riferimento al percorso della directory, mentre Linux e macOS utilizzano la barra (/).

------
#### [ Windows ]

**Archivia il documento relativo ai componenti dell'applicazione in Amazon S3**

Puoi utilizzare un bucket S3 come repository per il documento sorgente dei componenti AWSTOE dell'applicazione. Per archiviare il documento del componente, procedi nel seguente modo:
+ 

**Carica il documento su Amazon S3**

  *Se il documento è più piccolo di 64 KB, puoi saltare questo passaggio.* I documenti di dimensioni pari o superiori a 64 KB devono essere archiviati in Amazon S3.

  ```
  aws s3 cp update-windows-os.yaml s3://amzn-s3-demo-destination-bucket/my-path/update-windows-os.yaml
  ```

**Crea un componente dal documento YAML**

Per semplificare il **create-component** comando utilizzato in AWS CLI, create un file JSON che contenga tutti i parametri del componente che desiderate passare al comando. Includi la posizione del `update-windows-os.yaml` documento creato in precedenza. La coppia `uri` chiave-valore contiene il riferimento al file.
**Nota**  
La convenzione di denominazione per i valori dei dati nel file JSON segue lo schema specificato per i parametri di richiesta operativa dell'API Image Builder. Per esaminare i parametri di richiesta del comando API, consulta il [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html)comando nel riferimento all'API *EC2 Image Builder*.  
Per fornire i valori dei dati come parametri della riga di comando, fate riferimento ai nomi dei parametri specificati nel *AWS CLI Command* Reference.

1. 

**Creazione di un file JSON di input nella CLI**

   Utilizzate uno strumento di modifica dei file per creare un file denominato`create-update-windows-os-component.json`. Includi i seguenti contenuti:

   ```
   {
   	"name": "update-windows-os",
   	"semanticVersion": "1.1.2",
   	"description": "An example component that updates the Windows operating system.",
   	"changeDescription": "Initial version.",
   	"platform": "Windows",
   	"uri": "s3://amzn-s3-demo-destination-bucket/my-path/update-windows-os.yaml",
   	"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/98765432-b123-456b-7f89-0123456f789c",
   	"tags": {
   		"MyTagKey-purpose": "security-updates"
   	}
   }
   ```
**Nota**  
È necessario includere l'annotazione `file://` all'inizio del percorso del file JSON.
Il percorso del file JSON deve seguire la convenzione appropriata per il sistema operativo di base in cui si esegue il comando. Ad esempio, Windows utilizza la barra rovesciata (\$1) per fare riferimento al percorso della directory, mentre Linux e macOS utilizzano la barra (/).

1. 

**Crea il componente**

   Utilizzate il seguente comando per creare il componente, facendo riferimento al nome del file JSON creato nel passaggio precedente:

   ```
   aws imagebuilder create-component --cli-input-json file://create-update-windows-os-component.json
   ```
**Nota**  
È necessario includere l'annotazione `file://` all'inizio del percorso del file JSON.
Il percorso del file JSON deve seguire la convenzione appropriata per il sistema operativo di base in cui si esegue il comando. Ad esempio, Windows utilizza la barra rovesciata (\$1) per fare riferimento al percorso della directory, mentre Linux e macOS utilizzano la barra (/).

------
#### [ macOS ]

**Archivia il documento relativo ai componenti dell'applicazione in Amazon S3**

Puoi utilizzare un bucket S3 come repository per il documento sorgente dei componenti AWSTOE dell'applicazione. Per archiviare il documento del componente, procedi nel seguente modo:
+ 

**Carica il documento su Amazon S3**

  *Se il documento è più piccolo di 64 KB, puoi saltare questo passaggio.* I documenti di dimensioni pari o superiori a 64 KB devono essere archiviati in Amazon S3.

  ```
  aws s3 cp wget-macos.yaml s3://amzn-s3-demo-destination-bucket/my-path/wget-macos.yaml
  ```

**Crea un componente dal documento YAML**

Per semplificare il **create-component** comando utilizzato in AWS CLI, create un file JSON che contenga tutti i parametri del componente che desiderate passare al comando. Includi la posizione del `wget-macos.yaml` documento creato in precedenza. La coppia `uri` chiave-valore contiene il riferimento al file.
**Nota**  
La convenzione di denominazione per i valori dei dati nel file JSON segue lo schema specificato per i parametri di richiesta operativa dell'API Image Builder. Per esaminare i parametri di richiesta del comando API, consulta il [CreateComponent](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateComponent.html)comando nel riferimento all'API *EC2 Image Builder*.  
Per fornire i valori dei dati come parametri della riga di comando, fate riferimento ai nomi dei parametri specificati nel *AWS CLI Command* Reference.

1. 

**Creazione di un file JSON di input nella CLI**

   Utilizzate uno strumento di modifica dei file per creare un file denominato`install-wget-macos-component.json`. Includi i seguenti contenuti:

   ```
   {
   	"name": "install install-wget-macos-component",
   	"semanticVersion": "1.1.2",
   	"description": "An example component that installs and verifies the wget utility on macOS.",
   	"changeDescription": "Initial version.",
   	"platform": "macOS",
   	"uri": "s3://amzn-s3-demo-destination-bucket/my-path/wget-macos.yaml",
   	"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/98765432-b123-456b-7f89-0123456f789c",
   	"tags": {
   		"MyTagKey-purpose": "install-software"
   	}
   }
   ```

1. 

**Crea il componente**

   Utilizzate il seguente comando per creare il componente, facendo riferimento al nome del file JSON creato nel passaggio precedente:

   ```
   aws imagebuilder create-component --cli-input-json file://install-wget-macos-component.json
   ```
**Nota**  
È necessario includere l'annotazione `file://` all'inizio del percorso del file JSON.
Il percorso del file JSON deve seguire la convenzione appropriata per il sistema operativo di base in cui si esegue il comando. Ad esempio, Windows utilizza la barra rovesciata (\$1) per fare riferimento al percorso della directory, mentre Linux e macOS utilizzano la barra (/).

------

### AWSTOE controllo delle versioni dei componenti per gli aggiornamenti da AWS CLI
<a name="component-update-cli"></a>

AWSTOE i nomi e le versioni dei componenti sono incorporati nell'Amazon Resource Name (ARN) del componente, dopo il prefisso del componente. Ogni nuova versione di un componente ha il proprio ARN univoco. I passaggi per creare una nuova versione sono esattamente gli stessi dei passaggi per creare un nuovo componente, purché la versione semantica sia unica per il nome del componente. Per ulteriori informazioni sul controllo delle versioni semantiche per le risorse di Image Builder, vedere. [Versionamento semantico in Image Builder](ibhow-semantic-versioning.md)

Per assicurarvi di assegnare la versione logica successiva, procuratevi innanzitutto un elenco delle versioni esistenti del componente che desiderate modificare. Utilizzate il **list-components** comando con AWS CLI, e filtrate in base al nome.

In questo esempio, si filtra in base al nome del componente creato negli esempi precedenti di Linux. Per elencare il componente creato, utilizzate il valore del `name` parametro dal file JSON utilizzato nel **create-component** comando.

```
aws imagebuilder list-components --filters name="name",values="update-linux-os"	
{
    "requestId": "123a4567-b890-123c-45d6-ef789ab0cd1e",
    "componentVersionList": [
        {
            "arn": "arn:aws:imagebuilder:us-west-2:1234560087789012:component/update-linux-os/1.0.0",
            "name": "update-linux-os",
            "version": "1.0.0",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "dateCreated": "2020-09-24T16:58:24.444Z"
        },
        {
            "arn": "arn:aws:imagebuilder:us-west-2:1234560087789012:component/update-linux-os/1.0.1",
            "name": "update-linux-os",
            "version": "1.0.1",
            "platform": "Linux",
            "type": "BUILD",
            "owner": "123456789012",
            "dateCreated": "2021-07-10T03:38:46.091Z"
        }
    ]
}
```

In base ai risultati, è possibile determinare quale dovrebbe essere la versione successiva.

## Importa uno script per creare un componente da AWS CLI
<a name="import-component-cli"></a>

Per alcuni scenari, potrebbe essere più semplice iniziare con uno script preesistente. Per questo scenario, è possibile utilizzare l'esempio seguente. 

Questo esempio presuppone che sia presente un file chiamato `import-component.json` (come illustrato). Notate che il file fa riferimento direttamente a uno PowerShell script chiamato `AdminConfig.ps1` che è già stato caricato in`amzn-s3-demo-source-bucket`. Attualmente, `SHELL` è supportato per il componente`format`. 

```
{
"name": "MyImportedComponent",
"semanticVersion": "1.0.0",
"description": "An example of how to import a component",
"changeDescription": "First commit message.",
"format": "SHELL",
"platform": "Windows",
"type": "BUILD",
"uri": "s3://amzn-s3-demo-source-bucket/AdminConfig.ps1",
"kmsKeyId": "arn:aws:kms:us-west-2:123456789012:key/60763706-b131-418b-8f85-3420912f020c"
}
```

Per creare il componente da uno script importato, eseguite il comando seguente.

```
aws imagebuilder import-component --cli-input-json file://import-component.json
```

## Gestione automatica delle versioni di build
<a name="auto-build-version-management"></a>

Quando create un componente con lo stesso nome e la stessa versione semantica di un componente esistente, Image Builder incrementa automaticamente la versione di build (ad esempio, `/1` from `/2` to, `/3` to e così via). Ciò consente di effettuare aggiornamenti iterativi ai componenti senza gestire manualmente i numeri di versione, il che è particolarmente utile nelle pipeline e nelle CI/CD distribuzioni. infrastructure-as-code Se il contenuto del componente è identico alla versione di build precedente, Image Builder torna `ResourceAlreadyExistsException` per evitare che componenti duplicati consumino la quota di servizio. 

## Utilizzo dei riferimenti alle versioni
<a name="using-version-references"></a>

Quando create o recuperate un componente, Image Builder fornisce automaticamente nell'oggetto modelli di versione ARNs precostruiti con caratteri jolly. latestVersionReferences Questi riferimenti semplificano l'utilizzo delle versioni più recenti dei componenti nelle ricette e nelle pipeline senza eseguire l'analisi manuale. ARNs 

**Scelta del riferimento di versione corretto**
+ latestVersionArn (x.x.x): utilizzate sempre la versione più recente in assoluto del componente.
+ atestMajorVersionArn (1.x.x): utilizza le versioni secondarie e le patch più recenti all'interno di una versione principale.
+ latestMinorVersionArn (1.2.x): utilizza solo la versione patch più recente.
+ latestPatchVersionArn (1.2.3) - Fai riferimento a una versione semantica specifica, ma ottieni l'ultima versione di build.

**Nota**  
Per evitare addebiti imprevisti, assicuratevi di ripulire le risorse e le pipeline che avete creato sulla base degli esempi di questa guida. Per ulteriori informazioni sull'eliminazione di risorse in Image Builder, vedere. [Eliminare risorse Image Builder obsolete o inutilizzate](delete-resources.md)

# In che modo Image Builder utilizza l' AWS Task Orchestrator and Executor applicazione per gestire i componenti
<a name="toe-component-manager"></a>

EC2 Image Builder utilizza l'applicazione AWS Task Orchestrator and Executor (AWSTOE) per orchestrare flussi di lavoro complessi, modificare le configurazioni di sistema e testare le immagini senza la necessità di script o codice DevOps aggiuntivi. Questa applicazione gestisce ed esegue componenti che implementano lo schema dichiarativo del documento.

AWSTOE è un'applicazione autonoma che Image Builder installa nelle sue istanze di build e test quando si crea un'immagine. È inoltre possibile installarla manualmente sulle EC2 istanze per creare componenti personalizzati. Non richiede alcuna configurazione aggiuntiva e può essere eseguito anche in locale.

**Topics**
+ [AWSTOE scarica](#toe-downloads)
+ [Regioni supportate](#toe-supported-regions)
+ [AWSTOE riferimento al comando](#toe-commands)
+ [Configurazione manuale per sviluppare componenti personalizzati con AWSTOE](toe-get-started.md)
+ [Usa il framework AWSTOE dei documenti dei componenti per i componenti personalizzati](toe-use-documents.md)
+ [Moduli di azione supportati dal gestore AWSTOE dei componenti](toe-action-modules.md)
+ [Configurare l'input per il comando AWSTOE run](toe-run-config-input.md)

## AWSTOE scarica
<a name="toe-downloads"></a>

Per l'installazione AWSTOE, scegli il link per il download adatto alla tua architettura e piattaforma. Se ti colleghi a un endpoint VPC per il tuo servizio (Image Builder, ad esempio), devi allegare una policy endpoint personalizzata che includa l'accesso al bucket S3 per i download. AWSTOE In caso contrario, le istanze di build e test non saranno in grado di scaricare lo script bootstrap () e installare l'applicazione. `bootstrap.sh` AWSTOE Per ulteriori informazioni, consulta [Crea una policy per gli endpoint VPC per Image Builder](vpc-interface-endpoints.md#vpc-endpoint-policy).

**Importante**  
AWS sta eliminando gradualmente il supporto per le versioni TLS 1.0 e 1.1. Per accedere al bucket S3 per i AWSTOE download, il software client deve utilizzare la versione TLS 1.2 o successiva. Per ulteriori informazioni, consulta questo post sul blog [AWS sulla sicurezza](https://aws.amazon.com/blogs/security/tls-1-2-required-for-aws-endpoints/).


| Architettura | Piattaforma | Collegamento per il download | Esempio | 
| --- | --- | --- | --- | 
| 386 |  AL 2 e 2023 RHEL 7, 8 e 9 Ubuntu 16.04, 18.04, 20.04, 22.04 e 24.04 CentOS 7 e 8 SUSE 12 e 15  | `https://awstoe-<region>.s3.<region>.amazonaws.com/latest/linux/386/awstoe`  | [https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/386/awstoe](https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/386/awstoe) | 
| AMD64 |  AL 2 e 2023 RHEL 7, 8 e 9 Ubuntu 16.04, 18.04, 20.04, 22.04 e 24.04 CentOS 7 e 8 CentOS Stream 8 SUSE 12 e 15  | https://awstoe-<region>.s3.<region>.amazonaws.com/latest/linux/amd64/awstoe | [https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/amd64/awstoe](https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/amd64/awstoe) | 
| AMD64 |  macOS 10.14.x (Mojave), 10.15.x (Catalina), 11.x (Big Sur), 12.x (Monterey)  | https://awstoe-region.s3.region.amazonaws.com/latest/darwin/amd64/awstoe | [https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/darwin/amd64/awstoe](https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/darwin/amd64/awstoe) | 
|  AMD64  |  Windows Server 2012 R2, 2016, 2019 e 2022  |   `https://awstoe-<region>.s3.<region>.amazonaws.com/latest/windows/amd64/awstoe.exe`  | [https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/windows/amd64/awstoe.exe](https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/windows/amd64/awstoe.exe) | 
| ARM64 |  AL 2 e 2023 RHEL 7, 8 e 9 Ubuntu 16.04, 18.04, 20.04, 22.04 e 24.04 CentOS 7 e 8 CentOS Stream 8 SUSE 12 e 15  | https://awstoe-<region>.s3.<region>.amazonaws.com/latest/linux/arm64/awstoe | [https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/arm64/awstoe](https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/arm64/awstoe) | 

## Regioni supportate
<a name="toe-supported-regions"></a>

AWSTOE è supportata come applicazione autonoma nelle seguenti regioni.


| Regione AWS nome | Regione AWS | 
| --- | --- | 
|  Stati Uniti orientali (Ohio)  |  us-east-2  | 
|  US East (N. Virginia)  |  us-east-1  | 
|  AWS GovCloud (Stati Uniti orientali)  |  us-gov-east-1  | 
|  AWS GovCloud (Stati Uniti occidentali)  |  us-gov-west-1  | 
|  US West (N. California)  | us-west-1 | 
|  US West (Oregon)  | us-west-2 | 
|  Africa (Cape Town)  | af-south-1 | 
|  Asia Pacifico (Hong Kong)  | ap-east-1 | 
|  Asia Pacifico (Osaka-Locale)  | ap-northeast-3 | 
|  Asia Pacifico (Seoul)  | ap-northeast-2 | 
|  Asia Pacifico (Mumbai)  | ap-south-1 | 
|  Asia Pacific (Hyderabad)  | ap-south-2 | 
|  Asia Pacific (Singapore)  | ap-southeast-1 | 
|  Asia Pacific (Sydney)  | ap-southeast-2 | 
|  Asia Pacifico (Giacarta)  | ap-southeast-3 | 
|  Asia Pacifico (Tokyo)  | ap-northeast-1 | 
|  Canada (Central)  | ca-central-1 | 
|  Europa (Francoforte)  | eu-central-1 | 
|  Europa (Zurigo)  | eu-central-2 | 
|  Europa (Stoccolma)  | eu-north-1 | 
|  Europa (Milano)  | eu-south-1 | 
|  Europa (Spagna)  | eu-south-2 | 
|  Europa (Irlanda)  | eu-west-1 | 
|  Europe (London)  | eu-west-2 | 
|  Europe (Paris)  | eu-west-3 | 
|  Israele (Tel Aviv)  | il-central-1 | 
|  Medio Oriente (Emirati Arabi Uniti)  | me-central-1 | 
|  Medio Oriente (Bahrein)  | me-south-1 | 
|  Sud America (São Paulo)  | sa-east-1 | 
|  China (Beijing)  | cn-north-1 | 
|  China (Ningxia)  | cn-northwest-1 | 

## AWSTOE riferimento al comando
<a name="toe-commands"></a>

AWSTOE è un'applicazione di gestione dei componenti a riga di comando che viene eseguita su EC2 istanze Amazon. Quando Image Builder avvia un'istanza di EC2 build o di test, viene installata sull'istanza. AWSTOE Quindi esegue AWSTOE i comandi AWS CLI per installare o convalidare i componenti specificati nell'immagine o nella ricetta del contenitore.

**Nota**  
Alcuni moduli di AWSTOE azione richiedono autorizzazioni elevate per essere eseguiti su un server Linux. Per utilizzare autorizzazioni elevate, inserisci come prefisso la sintassi del comando o esegui **sudo** il **sudo su** comando una sola volta quando accedi prima di eseguire i comandi collegati di seguito. Per ulteriori informazioni sui moduli di AWSTOE azione, vedere. [Moduli di azione supportati dal gestore AWSTOE dei componenti](toe-action-modules.md)

***[run](#cmd-run)***  
Utilizzate il **run** comando per eseguire gli script dei documenti YAML per uno o più documenti componenti.

***[validate](#cmd-validate)***  
Esegui il **validate** comando per convalidare la sintassi del documento YAML per uno o più documenti componenti.

### comando awstoe run
<a name="cmd-run"></a>

Questo comando esegue gli script dei documenti dei componenti YAML nell'ordine in cui sono inclusi nel file di configurazione specificato dal `--config` parametro o nell'elenco dei documenti dei componenti specificato dal parametro. `--documents`

**Nota**  
È necessario specificare esattamente uno dei seguenti parametri, mai entrambi:  
--config  
--documenti

#### Sintassi
<a name="run-syntax"></a>

```
awstoe run [--config <file path>] [--cw-ignore-failures <?>] 
      [--cw-log-group <?>] [--cw-log-region us-west-2] [--cw-log-stream <?>] 
      [--document-s3-bucket-owner <owner>] [--documents <file path,file path,...>] 
      [--execution-id <?>] [--log-directory <file path>] 
      [--log-s3-bucket-name <name>] [--log-s3-bucket-owner <owner>] 
      [--log-s3-key-prefix <?>] [--parameters name1=value1,name2=value2...] 
      [--phases <phase name>] [--state-directory <directory path>] [--version <?>] 
      [--help] [--trace]
```

#### Parametri e opzioni
<a name="run-parameters"></a>Parametri

**--config *`./config-example.json`***  
Forma breve: -c *`./config-example.json`*  
Il file di configurazione *(condizionale*). Questo parametro contiene la posizione del file JSON che contiene le impostazioni di configurazione per i componenti in esecuzione con questo comando. Se si specificano le impostazioni dei **run** comandi in un file di configurazione, non è necessario specificare il `--documents` parametro. Per ulteriori informazioni sulla configurazione degli input, vedere[Configurare l'input per il comando AWSTOE run](toe-run-config-input.md).  
Le località valide includono:  
+ Un percorso di file locale (*`./config-example.json`*)
+ Un URI S3 () `s3://bucket/key`

**--cw-ignore-failures**  
Forma breve: N/A  
Ignora gli errori di registrazione nei registri. CloudWatch 

**--cw-log-group**  
Forma breve: N/A  
Il `LogGroup` nome dei registri. CloudWatch 

**--cw-log-region**  
Forma breve: N/A  
La AWS regione che si applica ai registri. CloudWatch 

**--cw-log-stream**  
Forma breve: N/A  
Il `LogStream` nome dei CloudWatch log, che indica AWSTOE dove trasmettere il file. `console.log`

**--document-s3-bucket-owner**  
Forma breve: N/A  
L'ID dell'account del proprietario del bucket per i documenti basati su URI S3.

**--documenti *`./doc-1.yaml`,`./doc-n.yaml`***  
Forma breve: -d, *`./doc-1.yaml`* *`./doc-n`*  
I documenti componenti *(condizionali*). Questo parametro contiene un elenco separato da virgole di posizioni di file per l'esecuzione dei documenti del componente YAML. Se si specificano documenti YAML per il **run** comando utilizzando il `--documents` parametro, non è necessario specificare il parametro. `--config`  
Le posizioni valide includono:  
+ percorsi di file locali (*./component-doc-example.yaml*).
+ S3 URIs (`s3://bucket/key`).
+ Versione di build del componente Image Builder ARNs (arn:aws:imagebuilder:us-west--- /2021.12.02/1). *2:123456789012* *my-example-component*
Non ci sono spazi tra gli elementi nell'elenco, solo virgole.

**--execution-id**  
Forma breve: -i  
Questo è l'ID univoco che si applica all'esecuzione del **run** comando corrente. Questo ID è incluso nei nomi dei file di output e di registro, per identificare in modo univoco tali file e collegarli all'esecuzione corrente del comando. Se questa impostazione viene omessa, AWSTOE genera un GUID.

**--log-directory**  
Forma breve: -l  
La directory di destinazione in cui vengono AWSTOE archiviati tutti i file di registro dell'esecuzione di questo comando. Per impostazione predefinita, questa directory si trova all'interno della seguente directory principale:`TOE_<DATETIME>_<EXECUTIONID>`. Se non si specifica la directory di registro, AWSTOE utilizza la directory di lavoro corrente (`.`).

**--log-s3-bucket-name**  
Forma breve: -b  
Se i log dei componenti sono archiviati in Amazon S3 (consigliato) AWSTOE , carica i log delle applicazioni dei componenti nel bucket S3 indicato in questo parametro.

**--log-s3-bucket-owner**  
Forma breve: N/A  
Se i log dei componenti sono archiviati in Amazon S3 (consigliato), questo è l'ID dell'account proprietario per il bucket AWSTOE in cui vengono scritti i file di registro.

**--log-s3-key-prefix**  
Forma breve: -k  
Se i log dei componenti sono archiviati in Amazon S3 (consigliato), questo è il prefisso della chiave oggetto S3 per la posizione del registro nel bucket.

**--parameters =, =... *name1* *value1* *name2* *value2***  
Forma breve: N/A  
I parametri sono variabili mutabili definite nel documento del componente, con impostazioni che l'applicazione chiamante può fornire in fase di esecuzione.

**--phases**  
Forma breve: -p  
Un elenco separato da virgole che specifica quali fasi eseguire dai documenti del componente YAML. Se un documento componente include fasi aggiuntive, queste non verranno eseguite.

**--state-directory**  
Forma breve: -s  
Il percorso del file in cui sono archiviati i file di tracciamento dello stato.

**--versione**  
Forma breve: -v  
Specifica la versione dell'applicazione del componente.Opzioni

**--help**  
Forma breve: -h  
Visualizza un manuale di aiuto per l'utilizzo delle opzioni dell'applicazione di gestione dei componenti.

**--trace**  
Forma breve: -t  
Abilita la registrazione dettagliata sulla console.

### comando awstoe validate
<a name="cmd-validate"></a>

Quando si esegue questo comando, convalida la sintassi del documento YAML per ciascuno dei documenti componenti specificati dal parametro. `--documents`

#### Sintassi
<a name="validate-syntax"></a>

```
awstoe validate [--document-s3-bucket-owner <owner>] 
      --documents <file path,file path,...> [--help] [--trace]
```

#### Parametri e opzioni
<a name="validate-parameters"></a>Parametri

**--document-s3-bucket-owner**  
Forma breve: N/A  
ID dell'account di origine dei documenti basati sull'URI S3 fornito.

**--documenti *`./doc-1.yaml`,`./doc-n.yaml`***  
Forma breve: -d, *`./doc-1.yaml`* *`./doc-n`*  
I documenti che lo compongono *(obbligatorio).* Questo parametro contiene un elenco separato da virgole delle posizioni dei file in cui eseguire i documenti del componente YAML. Le posizioni valide includono:  
+ percorsi di file locali (*./component-doc-example.yaml*)
+ S3 URIs () `s3://bucket/key`
+ Versione di build del componente Image Builder ARNs (arn:aws:imagebuilder:us-west-527/ /2021.12.02/1) *2:123456789012* *my-example-component*
Non ci sono spazi tra gli elementi nell'elenco, solo virgole.Opzioni

**--help**  
Forma breve: -h  
Visualizza un manuale di aiuto per l'utilizzo delle opzioni dell'applicazione di gestione dei componenti.

**--trace**  
Forma breve: -t  
Abilita la registrazione dettagliata sulla console.

# Configurazione manuale per sviluppare componenti personalizzati con AWSTOE
<a name="toe-get-started"></a>

L'applicazione AWS Task Orchestrator and Executor (AWSTOE) è un'applicazione autonoma che crea, convalida ed esegue comandi all'interno di un framework di definizione dei componenti. AWS i servizi possono essere utilizzati AWSTOE per orchestrare flussi di lavoro, installare software, modificare le configurazioni di sistema e testare le build di immagini.

Segui questi passaggi per installare manualmente l' AWSTOE applicazione e utilizzarla come applicazione autonoma per sviluppare componenti personalizzati. Image Builder si occupa di questi passaggi per voi, se utilizzate la console AWS CLI o i comandi di Image Builder per creare componenti personalizzati. Per ulteriori informazioni, consulta [Crea componenti personalizzati con Image Builder](create-component.md).

# Verifica la firma del download AWSTOE di installazione
<a name="awstoe-verify-sig"></a>

Questa sezione descrive la procedura consigliata per verificare la validità del download dell'installazione per i sistemi operativi basati AWSTOE su Linux, macOS e Windows.

**Topics**
+ [Verifica la firma del download dell' AWSTOE installazione su Linux o macOS](#awstoe-verify-sig-linux)
+ [Verifica la firma del download di AWSTOE installazione su Windows](#awstoe-verify-sig-win)

## Verifica la firma del download dell' AWSTOE installazione su Linux o macOS
<a name="awstoe-verify-sig-linux"></a>

Questo argomento descrive la procedura consigliata per verificare la validità del download dell'installazione per i sistemi operativi basati AWSTOE su Linux o macOS.

Ogni volta che scarichi un'applicazione da Internet, ti consigliamo di autenticare l'identità dell'editore del software. Inoltre, verificate che l'applicazione non sia stata alterata o danneggiata da quando è stata pubblicata. Ciò consente di evitare di installare una versione dell'applicazione contenente un virus o altro malware.

Se, dopo aver eseguito i passaggi descritti in questo argomento, stabilite che il software dell' AWSTOE applicazione è alterato o danneggiato, non eseguite il file di installazione. Contatta invece. Supporto Per ulteriori informazioni sulle opzioni di supporto disponibili, consulta [Supporto](https://aws.amazon.com/premiumsupport/).

AWSTOE i file per i sistemi operativi basati su Linux e macOS sono firmati utilizzando`GnuPG`, un'implementazione open source dello standard Pretty Good Privacy (OpenPGP) per le firme digitali sicure. `GnuPG`(noto anche come`GPG`) fornisce l'autenticazione e il controllo dell'integrità tramite una firma digitale. Amazon EC2 pubblica una chiave pubblica e firme che puoi utilizzare per verificare gli strumenti dell'interfaccia a riga di comando di Amazon EC2 scaricati. Per ulteriori informazioni su `PGP` e `GnuPG` (`GPG`), consulta [http://www.gnupg.org](https://www.gnupg.org/).

La prima fase prevede la verifica dell'affidabilità dell'autore del software. Scarica la chiave pubblica dell'autore del software, controlla l'autenticità di tale proprietario e quindi aggiungi la chiave pubblica al tuo *keyring*. Il keyring è una raccolta di chiavi pubbliche nota. Dopo aver confermato l'autenticità della chiave pubblica, puoi usarla per verificare la firma dell'applicazione.

**Topics**
+ [Installazione degli strumenti GPG](#awstoe-verify-signature-of-binary-download-install-tools)
+ [Autenticazione e importazione della chiave pubblica](#awstoe-verify-signature-of-binary-download-authenticate-import-public-key)
+ [Verifica della firma del pacchetto](#awstoe-verify-signature-of-binary-package)

### Installazione degli strumenti GPG
<a name="awstoe-verify-signature-of-binary-download-install-tools"></a>

Se il tuo sistema operativo è Linux, Unix o macOS, è probabile che gli strumenti GPG siano già installati. Per sapere se gli strumenti sono installati nel sistema, digita **gpg** al prompt dei comandi. Se gli strumenti GPG sono installati, viene visualizzato un prompt dei comandi GPG. Se gli strumenti GPG non sono installati, viene visualizzato un messaggio di errore che indica che il comando non è stato trovato. Puoi installare il pacchetto GnuPG da un repository.

Per installare gli strumenti GPG, seleziona il sistema operativo che corrisponde alla tua istanza.

------
#### [ Debian-based Linux ]

Da un terminale, esegui il comando seguente:

```
apt-get install gnupg
```

------
#### [ Red Hat–based Linux ]

Da un terminale, esegui il comando seguente:

```
yum install gnupg
```

------
#### [ macOS ]

Da un terminale, esegui il comando seguente:

```
brew install gnupg
```

------

### Autenticazione e importazione della chiave pubblica
<a name="awstoe-verify-signature-of-binary-download-authenticate-import-public-key"></a>

La fase successiva del processo consiste nell'autenticare la chiave AWSTOE pubblica e aggiungerla come chiave affidabile nel portachiavi. `GPG`

**Per autenticare e importare la chiave pubblica AWSTOE**

1. Recupera una copia della chiave pubblica `GPG` in uno dei modi seguenti:
   + Scarica la chiave da

      https://awstoe - **<region>** .s3. **<region>**.amazonaws. com/assets/awstoe.gpg. Ad esempio, [https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/assets/awstoe.gpg](https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/assets/awstoe.gpg).
   + Copia la chiave dal seguente testo e incollala in un file denominato `awstoe.gpg`. Assicurati di includere quanto segue:

     ```
     -----BEGIN PGP PUBLIC KEY BLOCK-----
     Version: GnuPG v2
     
     mQENBF8UqwsBCACdiRF2bkZYaFSDPFC+LIkWLwFvtUCRwAHtD8KIwTJ6LVn3fHAU
     GhuK0ZH9mRrqRT2bq/xJjGsnF9VqTj2AJqndGJdDjz75YCZYM+ocZ+r5HSJaeW9i
     S5dykHj7Txti2zHe0G5+W0v7v5bPi2sPHsN7XWQ7+G2AMEPTz8PjxY//I0DvMQns
     Sle3l9hz6wCClz1l9LbBzTyHfSm5ucTXvNe88XX5Gmt37OCDM7vfli0Ctv8WFoLN
     6jbxuA/sV71yIkPm9IYp3+GvaKeT870+sn8/JOOKE/U4sJV1ppbqmuUzDfhrZUaw
     8eW8IN9A1FTIuWiZED/5L83UZuQs1S7s2PjlABEBAAG0GkFXU1RPRSA8YXdzdG9l
     QGFtYXpvbi5jb20+iQE5BBMBCAAjBQJfFKsLAhsDBwsJCAcDAgEGFQgCCQoLBBYC
     AwECHgECF4AACgkQ3r3BVvWuvFJGiwf9EVmrBR77+Qe/DUeXZJYoaFr7If/fVDZl
     6V3TC6p0J0Veme7uXleRUTFOjzbh+7e5sDX19HrnPquzCnzfMiqbp4lSoeUuNdOf
     FcpuTCQH+M+sIEIgPno4PLl0Uj2uE1o++mxmonBl/Krk+hly8hB2L/9n/vW3L7BN
     OMb1Ll9PmgGPbWipcT8KRdz4SUex9TXGYzjlWb3jU3uXetdaQY1M3kVKE1siRsRN
     YYDtpcjmwbhjpu4xm19aFqNoAHCDctEsXJA/mkU3erwIRocPyjAZE2dnlkL9ZkFZ
     z9DQkcIarbCnybDM5lemBbdhXJ6hezJE/b17VA0t1fY04MoEkn6oJg==
     =oyze
     -----END PGP PUBLIC KEY BLOCK-----
     ```

1. Al prompt dei comandi nella directory in cui hai salvato **awstoe.gpg**, usa il seguente comando per importare la chiave pubblica nel tuo portachiavi. AWSTOE 

   ```
   gpg --import awstoe.gpg
   ```

   I risultati restituiti dal comando saranno simili a quanto segue:

   ```
   gpg: key F5AEBC52: public key "AWSTOE <awstoe@amazon.com>" imported
   gpg: Total number processed: 1
   gpg:               imported: 1  (RSA: 1)
   ```

   Annota il valore della chiave. Tale valore verrà usato nel passaggio successivo. Nell'esempio precedente, il valore della chiave è `F5AEBC52`.

1. Verifica l'impronta eseguendo il comando seguente, sostituendo *key-value* con il valore annotato nella fase precedente:

   ```
   gpg --fingerprint key-value
   ```

   Questo comando restituisce risultati simili ai seguenti:

   ```
   pub   2048R/F5AEBC52 2020-07-19
         Key fingerprint = F6DD E01C 869F D639 15E5  5742 DEBD C156 F5AE BC52
   uid       [ unknown] AWSTOE <awstoe@amazon.com>
   ```

   Inoltre, la stringa dell'impronta deve essere uguale al valore `F6DD E01C 869F D639 15E5 5742 DEBD C156 F5AE BC52` riportato nell'esempio precedente. Confronta l'impronta della chiave restituita con quella pubblicata in questa pagina. Le chiavi devono corrispondere. Se non corrispondono, non installate lo script di installazione e contattateci. AWSTOE Supporto

### Verifica della firma del pacchetto
<a name="awstoe-verify-signature-of-binary-package"></a>

Dopo aver installato gli strumenti `GPG`, avere eseguito l'autenticazione, avere importato la chiave pubblica di AWSTOE e avere verificato che la chiave pubblica sia affidabile, puoi verificare la firma dello script di installazione. 

**Per verificare la firma dello script di installazione di**

1. Al prompt dei comandi, esegui il comando seguente per scaricare il file binario dell'applicazione:

   ```
   curl -O https://awstoe-<region>.s3.<region>.amazonaws.com/latest/linux/<architecture>/awstoe
   ```

   Esempio:

   ```
   curl -O https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/amd64/awstoe
   ```

   I valori supportati per **architecture** can be `amd64``386`, e`arm64`.

1. Al prompt dei comandi, esegui il comando seguente per scaricare il file della firma per il file binario dell'applicazione corrispondente dallo stesso percorso del prefisso della chiave S3:

   ```
   curl -O https://awstoe-<region>.s3.<region>.amazonaws.com/latest/linux/<architecture>/awstoe.sig
   ```

   Esempio:

   ```
   curl -O https://awstoe-us-east-1.s3.us-east-1.amazonaws.com/latest/linux/amd64/awstoe.sig
   ```

   I valori supportati per **architecture** can be`amd64`, e`386`. `arm64`

1. Verifica la firma eseguendo il comando seguente al prompt dei comandi nella directory in cui hai salvato `awstoe.sig` e nel file di AWSTOE installazione. Entrambi i file devono essere presenti.

   ```
   gpg --verify ./awstoe.sig ~/awstoe
   ```

   L'output deve essere simile al seguente:

   ```
   gpg: Signature made Mon 20 Jul 2020 08:54:55 AM IST using RSA key ID F5AEBC52
   gpg: Good signature from "AWSTOE awstoe@amazon.com" [unknown]
   gpg: WARNING: This key is not certified with a trusted signature!
   gpg:          There is no indication that the signature belongs to the owner.
   Primary key fingerprint: F6DD E01C 869F D639 15E5 5742 DEBD C156 F5AE BC52
   ```

   Se l'output contiene la frase `Good signature from "AWSTOE <awstoe@amazon.com>"`, significa che la firma è stata verificata correttamente ed è possibile eseguire lo script di installazione di AWSTOE .

   Se l'output include la frase `BAD signature`, controllare di avere eseguito la procedura correttamente. Se continui a ricevere questa risposta, non eseguire il file di installazione scaricato in precedenza e contatta Supporto.

Di seguito sono elencati i dettagli sugli avvisi che potrebbero comparire: 
+ **ATTENZIONE: questa chiave non è certificata con una firma affidabile\$1 Non vi è alcuna indicazione che la firma appartenga al proprietario.** Idealmente, visiteresti un AWS ufficio e riceveresti la chiave di persona. Tuttavia, molto probabilmente lo scaricherai da un sito Web. In questo caso, il sito Web è un AWS sito Web. 
+ **gpg: no ultimately trusted keys found.** Ciò significa che la chiave specifica non è «in ultima analisi considerata affidabile» da te o da altre persone di cui ti fidi.

Per ulteriori informazioni, consulta [http://www.gnupg.org](http://www.gnupg.org).

## Verifica la firma del download di AWSTOE installazione su Windows
<a name="awstoe-verify-sig-win"></a>

In questo argomento viene descritto il processo consigliato per verificare la validità del file di installazione dell' AWS Task Orchestrator and Executor applicazione sui sistemi operativi basati su Windows. 

Quando si esegue il download di un'applicazione da Internet, ti consigliamo di autenticare l'identità dell'autore del software e controllare che l'applicazione non risulti modificata o danneggiata rispetto alla versione pubblicata. Ciò consente di evitare di installare una versione dell'applicazione contenente un virus o altro malware.

Se, dopo aver eseguito i passaggi descritti in questo argomento, si determina che il software dell' AWSTOE applicazione è alterato o danneggiato, non eseguite il file di installazione. Contatta Supporto invece.

Per verificare la validità del file binario awstoe scaricato su sistemi operativi basati su Windows, assicurati che l'impronta digitale del relativo certificato di firma Amazon Services LLC sia uguale a questo valore:

**9D CA 72 17 DA FF B8 2F E4 C4 67 77 36 2F A4 AA C9 08 82 15**

**Nota**  
Durante la finestra di implementazione di un nuovo file binario, il certificato del firmatario potrebbe non corrispondere alla nuova impronta digitale. Se il certificato del firmatario non corrisponde, verifica che il valore dell'impronta digitale sia:   
**BA 81 25 EE AC 64 2E A9 F3 C5 93 CA 6D 3E B7 93 7D 68 75 74**

Per verificare questo valore, esegui la procedura seguente: 

1. Clicca con il pulsante destro del mouse sul file `awstoe.exe`, e apri la finestra **Proprietà**.

1. Scegli la scheda **Firme digitali**.

1. In **Elenco firme** scegli **Amazon Services LLC**, quindi **Dettagli**.

1. Scegli la scheda **Generale**, se non è già selezionata, quindi scegli **Visualizza certificato**.

1. Scegli la scheda **Dettagli**, quindi seleziona **Tutto** nell'elenco a discesa **Mostra**, se non è già selezionato.

1. Scorri fino a visualizzare il campo **Identificazione personale**, quindi scegli **Identificazione personale**. In questo modo viene visualizzato l'intero valore dell'identificazione personale nella finestra inferiore.
   + Se il valore dell'identificazione personale nella finestra inferiore è identico al valore seguente:

     **9D CA72 17 DAF B8 2F E4 C4 67 77 36 2F A4 AA C9 08 82 15**

     allora il file AWSTOE binario scaricato è autentico e può essere installato in sicurezza.
   + Se il valore dell'impronta digitale nella finestra dei dettagli inferiore non è identico al valore precedente, non eseguite. `awstoe.exe`

**Topics**
+ [Verifica la firma del download AWSTOE di installazione](awstoe-verify-sig.md)
+ [Fase 1: Installazione AWSTOE](#toe-start-install)
+ [Fase 2: Impostare AWS le credenziali](#toe-start-credentials)
+ [Fase 3: Sviluppare localmente i documenti dei componenti](#toe-start-develop)
+ [Fase 4: Convalida dei componenti AWSTOE](#toe-start-validate)
+ [Passaggio 5: Esegui i componenti AWSTOE](#toe-start-run)

## Fase 1: Installazione AWSTOE
<a name="toe-start-install"></a>

Per sviluppare componenti localmente, scaricate e installate l' AWSTOE applicazione.

1. 

**Scaricate l' AWSTOE applicazione**

   Per l'installazione AWSTOE, scegli il link di download appropriato per la tua architettura e piattaforma. Per l'elenco completo dei link per il download delle applicazioni, consulta [AWSTOE scarica](toe-component-manager.md#toe-downloads)
**Importante**  
AWS sta eliminando gradualmente il supporto per le versioni TLS 1.0 e 1.1. Per accedere al bucket S3 per i AWSTOE download, il software client deve utilizzare la versione TLS 1.2 o successiva. Per ulteriori informazioni, consulta questo post sul blog [AWS sulla sicurezza](https://aws.amazon.com/blogs/security/tls-1-2-required-for-aws-endpoints/).

1. 

**Verifica la firma**

   I passaggi per la verifica del download dipendono dalla piattaforma server su cui viene eseguita l' AWSTOE applicazione dopo l'installazione. Per verificare il download su un server Linux, consulta[Verifica la firma su Linux o macOS](awstoe-verify-sig.md#awstoe-verify-sig-linux). Per verificare il download su un server Windows, consulta[Verifica la firma su Windows](awstoe-verify-sig.md#awstoe-verify-sig-win).

**Nota**  
AWSTOE viene richiamato direttamente dalla posizione di download. Non è necessaria una fase di installazione separata. Ciò significa anche che AWSTOE può apportare modifiche all'ambiente locale.  
Per assicurarti di isolare le modifiche durante lo sviluppo dei componenti, ti consigliamo di utilizzare un' EC2 istanza per sviluppare e testare AWSTOE i componenti.

## Fase 2: Impostare AWS le credenziali
<a name="toe-start-credentials"></a>

 AWSTOE richiede AWS credenziali per connettersi ad altri Servizi AWS, come Amazon S3 e CloudWatch Amazon, durante l'esecuzione di attività come: 
+ Scaricamento di AWSTOE documenti da un percorso Amazon S3 fornito dall'utente.
+ Moduli in esecuzione `S3Download` o di `S3Upload` azione.
+ Lo streaming si registra su CloudWatch, se abilitato.

Se stai AWSTOE eseguendo un' EC2 istanza, l'esecuzione AWSTOE utilizza le stesse autorizzazioni del ruolo IAM associato all' EC2 istanza.

Per ulteriori informazioni sui ruoli IAM per EC2, consulta [Ruoli IAM per Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html).

Gli esempi seguenti mostrano come impostare AWS le credenziali utilizzando le variabili di `AWS_SECRET_ACCESS_KEY` ambiente `AWS_ACCESS_KEY_ID` e. 

Per impostare queste variabili su Linux, macOS o Unix, usa. `export`

```
export AWS_ACCESS_KEY_ID=your_access_key_id
```

```
export AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

Per impostare queste variabili su Windows utilizzando PowerShell, usa. `$env`

```
$env:AWS_ACCESS_KEY_ID=your_access_key_id
```

```
$env:AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

Per impostare queste variabili su Windows utilizzando il prompt dei comandi, usa`set`.

```
set AWS_ACCESS_KEY_ID=your_access_key_id
```

```
set AWS_SECRET_ACCESS_KEY=your_secret_access_key
```

## Fase 3: Sviluppare localmente i documenti dei componenti
<a name="toe-start-develop"></a>

I componenti sono creati con documenti YAML in testo semplice. Per ulteriori informazioni sulla sintassi dei documenti, vedere. [Usa il framework AWSTOE dei documenti dei componenti per i componenti personalizzati](toe-use-documents.md)

Di seguito sono riportati alcuni esempi di documenti *del componente Hello World* per aiutarti a iniziare.

------
#### [ Linux ]

Alcuni esempi di componenti Linux in questa guida si riferiscono a un file di documento del componente denominato`hello-world-linux.yml`. È possibile utilizzare il seguente documento per iniziare con questi esempi.

```
name: Hello World
description: This is hello world testing document for Linux.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the build phase.'
  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the validate phase.'
  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the test phase.'
```

------
#### [ Windows ]

Alcuni esempi di componenti Windows in questa guida si riferiscono a un file di documento del componente denominato`hello-world-windows.yml`. È possibile utilizzare il seguente documento per iniziare con questi esempi.

```
name: Hello World
description: This is Hello World testing document for Windows.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host 'Hello World from the build phase.'
  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host 'Hello World from the validate phase.'
  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecutePowerShell
        inputs:
          commands:
            - Write-Host 'Hello World from the test phase.'
```

------
#### [ macOS ]

Alcuni esempi di componenti macOS in questa guida si riferiscono a un file di documento del componente denominato. `hello-world-macos.yml` Puoi usare il seguente documento per iniziare con questi esempi.

```
name: Hello World
description: This is hello world testing document for macOS.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the build phase.'
  - name: validate
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the validate phase.'
  - name: test
    steps:
      - name: HelloWorldStep
        action: ExecuteBash
        inputs:
          commands:
            - echo 'Hello World from the test phase.'
```

------

## Fase 4: Convalida dei componenti AWSTOE
<a name="toe-start-validate"></a>

È possibile convalidare la sintassi dei AWSTOE componenti localmente con l'applicazione. AWSTOE Gli esempi seguenti mostrano il `validate` comando AWSTOE application per convalidare la sintassi di un componente senza eseguirlo.

**Nota**  
L' AWSTOE applicazione può convalidare solo la sintassi del componente per il sistema operativo corrente. Ad esempio, quando è in esecuzione `awstoe.exe` su Windows, non è possibile convalidare la sintassi di un documento Linux che utilizza il modulo di azione. `ExecuteBash`

Linux o macOS:

```
awstoe validate --documents /home/user/hello-world.yml
```

Windows

```
awstoe.exe validate --documents C:\Users\user\Documents\hello-world.yml
```

## Passaggio 5: Esegui i componenti AWSTOE
<a name="toe-start-run"></a>

L' AWSTOE applicazione può eseguire una o più fasi di documenti specifici utilizzando l'argomento della `--phases` riga di comando. I valori supportati per `--phases` sono `build``validate`, e`test`. È possibile immettere valori di fase multipli come valori separati da virgole.

Quando si fornisce un elenco di fasi, l' AWSTOE applicazione esegue in sequenza le fasi specificate di ciascun documento. Ad esempio, AWSTOE esegue le `validate` fasi `build` e di`document1.yaml`, seguite dalle `validate` fasi `build` e di`document2.yaml`.

Per garantire che i log siano archiviati in modo sicuro e conservati per la risoluzione dei problemi, consigliamo di configurare lo storage dei log in Amazon S3. In Image Builder, la posizione Amazon S3 per la pubblicazione dei log è specificata nella configurazione dell'infrastruttura. Per ulteriori informazioni sulla configurazione dell'infrastruttura, consulta [Gestione della configurazione dell'infrastruttura Image Builder](manage-infra-config.md)

Se non viene fornito un elenco di fasi, l' AWSTOE applicazione esegue tutte le fasi nell'ordine indicato nel documento YAML.

Per eseguire fasi specifiche in uno o più documenti, utilizzate i seguenti comandi.

Monofase

```
awstoe run --documents hello-world.yml --phases build
```

Fasi multiple

```
awstoe run --documents hello-world.yml --phases build,test
```

**Esecuzione del documento**  
Esegui tutte le fasi in un unico documento

```
awstoe run --documents documentName.yaml
```

Esegui tutte le fasi in più documenti

```
awstoe run --documents documentName1.yaml,documentName2.yaml
```

Inserisci le informazioni di Amazon S3 per caricare AWSTOE i log da un percorso locale definito dall'utente (consigliato)

```
awstoe run --documents documentName.yaml --log-s3-bucket-name amzn-s3-demo-destination-bucket --log-s3-key-prefix S3KeyPrefix --log-s3-bucket-owner S3BucketOwner --log-directory local_path
```

Esegui tutte le fasi in un unico documento e visualizza tutti i log sulla console

```
awstoe run --documents documentName.yaml --trace
```

Comando della di esempio

```
awstoe run --documents s3://bucket/key/doc.yaml --phases build,validate
```

Esegui il documento con un ID univoco

```
awstoe run --documents documentName.yaml --execution-id user-provided-id --phases build,test
```

Fatti aiutare con AWSTOE

```
awstoe --help
```

# Usa il framework AWSTOE dei documenti dei componenti per i componenti personalizzati
<a name="toe-use-documents"></a>

Per creare un componente utilizzando il framework di componenti AWS Task Orchestrator and Executor (AWSTOE), devi fornire un documento basato su YAML che rappresenti le fasi e i passaggi applicabili al componente che crei. Servizi AWS usa il tuo componente quando creano una nuova Amazon Machine Image (AMI) o un'immagine del contenitore.

**Topics**
+ [Flusso di lavoro relativo ai documenti](#component-doc-workflow)
+ [Registrazione dei componenti](#component-logging)
+ [Concatenamento di input e output](#document-chaining)
+ [Schema e definizioni del documento](#document-schema)
+ [Esempi di documenti](#document-example)
+ [Usa le variabili nel tuo documento componente personalizzato](toe-user-defined-variables.md)
+ [Usa costrutti condizionali in AWSTOE](toe-conditional-constructs.md)
+ [Usa gli operatori di confronto nei documenti AWSTOE dei componenti](toe-comparison-operators.md)
+ [Utilizzo di operatori logici nei documenti AWSTOE dei componenti](toe-logical-operators.md)
+ [Usa costrutti a ciclo continuo in AWSTOE](toe-looping-constructs.md)

## Flusso di lavoro relativo ai documenti
<a name="component-doc-workflow"></a>

Il documento del AWSTOE componente utilizza fasi e passaggi per raggruppare le attività correlate e organizzarle in un flusso di lavoro logico per il componente.

**Suggerimento**  
Il servizio che utilizza il componente per creare un'immagine potrebbe implementare regole su quali fasi utilizzare per il processo di creazione e quando tali fasi possono essere eseguite. Questo è importante da considerare quando si progetta il componente.

**Fasi**  
Le fasi rappresentano la progressione del flusso di lavoro attraverso il processo di creazione dell'immagine. Ad esempio, il servizio Image Builder utilizza `validate` le fasi `build` e le fasi durante la *fase di creazione* per le immagini che produce. Utilizza `container-host-test` le fasi `test` and durante la *fase di test* per garantire che l'istantanea dell'immagine o l'immagine del contenitore produca i risultati previsti prima di creare l'AMI finale o distribuire l'immagine del contenitore.

Quando il componente viene eseguito, i comandi associati per ogni fase vengono applicati nell'ordine in cui appaiono nel documento del componente.

**Regole per le fasi**
+ Il nome di ogni fase deve essere univoco all'interno di un documento.
+ È possibile definire molte fasi del documento.
+ È necessario includere almeno una delle seguenti fasi nel documento:
  + **build**: per Image Builder, questa fase viene generalmente utilizzata durante la fase di *creazione*.
  + **validare**: per Image Builder, questa fase viene generalmente utilizzata durante *la* fase di creazione.
  + **test** — per Image Builder, questa fase viene generalmente utilizzata durante la fase di *test*.
+ Le fasi vengono sempre eseguite nell'ordine in cui sono definite nel documento. L'ordine in cui sono specificate per AWSTOE i comandi in non AWS CLI ha effetto.

**Fasi**  
I passaggi sono singole unità di lavoro che definiscono il flusso di lavoro all'interno di ciascuna fase. Le fasi vengono eseguite in ordine sequenziale. Tuttavia, l'input o l'output di una fase possono anche alimentare una fase successiva come input. Questo processo si chiama «concatenamento».

**Regole per i passaggi**
+ Il nome della fase deve essere univoco per la fase.
+ La fase deve utilizzare un'azione supportata (modulo di azione) che restituisca un codice di uscita.

  Per un elenco completo dei moduli di azione supportati, del loro funzionamento, input/output dei valori e degli esempi, consulta[Moduli di azione supportati dal gestore AWSTOE dei componenti](toe-action-modules.md).

## Registrazione dei componenti
<a name="component-logging"></a>

AWSTOE crea una nuova cartella di registro sulle istanze EC2 che vengono utilizzate per creare e testare una nuova immagine, ogni volta che il componente viene eseguito. Per le immagini del contenitore, la cartella di registro viene archiviata nel contenitore.

Per facilitare la risoluzione dei problemi in caso di problemi durante il processo di creazione dell'immagine, il documento di input e tutti i file di output AWSTOE creati durante l'esecuzione del componente vengono archiviati nella cartella di registro.

Il nome della cartella di registro è composto dalle seguenti parti:

1. **Directory di log**: quando un servizio esegue un AWSTOE componente, questo passa nella directory di log, insieme ad altre impostazioni per il comando. Per gli esempi seguenti, mostriamo il formato di file di registro utilizzato da Image Builder.
   + **Linux e macOS:** `/var/lib/amazon/toe/`
   + **Windows**: `$env:ProgramFiles\Amazon\TaskOrchestratorAndExecutor\`

1. **Prefisso del file**: si tratta di un prefisso standard utilizzato per tutti i componenti: "». `TOE_`

1. **Ora di esecuzione**: si tratta di un timestamp in formato \$1HH-MM-SS\$1UTC-0. YYYY-MM-DD

1. **ID di esecuzione: è il GUID** assegnato quando vengono eseguiti uno o più componenti. AWSTOE 

Ad esempio: `/var/lib/amazon/toe/TOE_2021-07-01_12-34-56_UTC-0_a1bcd2e3-45f6-789a-bcde-0fa1b2c3def4`

AWSTOE memorizza i seguenti file principali nella cartella di registro:

**File di input**
+ **document.yaml** — Il documento utilizzato come input per il comando. Dopo l'esecuzione del componente, questo file viene memorizzato come artefatto.

**File di output**
+ **application.log**: il registro dell'applicazione contiene informazioni a livello di debug con data e ora AWSTOE relative a ciò che accade durante l'esecuzione del componente.
+ **detailedoutput.json**: questo file JSON contiene informazioni dettagliate sullo stato di esecuzione, gli input, gli output e gli errori per tutti i documenti, le fasi e i passaggi relativi al componente durante l'esecuzione.
+ **console.log** — Il registro della console contiene tutte le informazioni sullo standard out (stdout) e sugli errori standard (stderr) che vengono scritte sulla console mentre il componente è in esecuzione. AWSTOE 
+ **chaining.json: questo file JSON** rappresenta le ottimizzazioni applicate per risolvere le espressioni di concatenamento. AWSTOE 

**Nota**  
La cartella di registro potrebbe contenere anche altri file temporanei che non sono trattati qui.

## Concatenamento di input e output
<a name="document-chaining"></a>

L'applicazione AWSTOE di gestione della configurazione fornisce una funzionalità per concatenare input e output scrivendo riferimenti nei seguenti formati:

`{{ phase_name.step_name.inputs/outputs.variable }}`

or

`{{ phase_name.step_name.inputs/outputs[index].variable }}`

La funzione di concatenamento consente di riciclare il codice e migliorare la manutenibilità del documento.

**Regole per il concatenamento**
+ Le espressioni di concatenamento possono essere utilizzate solo nella sezione degli input di ogni passaggio.
+ Le dichiarazioni con espressioni concatenate devono essere racchiuse tra virgolette. Esempio:
  + **Espressione non valida:** `echo {{ phase.step.inputs.variable }}`
  + **Espressione valida**: `"echo {{ phase.step.inputs.variable }}"`
  + **Espressione valida**: `'echo {{ phase.step.inputs.variable }}'`
+ Le espressioni concatenate possono fare riferimento a variabili di altri passaggi e fasi dello stesso documento. Tuttavia, il servizio di chiamata potrebbe avere regole che richiedono che le espressioni concatenate funzionino solo nel contesto di una singola fase. Ad esempio, Image Builder non supporta il concatenamento dalla fase di *compilazione alla fase* di *test, poiché esegue ogni fase* in modo indipendente.
+ Gli indici nelle espressioni concatenate seguono l'indicizzazione a base zero. L'indice inizia con zero (0) per fare riferimento al primo elemento.

**Esempi**

Per fare riferimento alla variabile source nella seconda voce del passaggio di esempio seguente, lo schema di concatenamento è`{{ build.SampleS3Download.inputs[1].source }}`.

```
phases:
  - name: 'build'
    steps:
      - name: SampleS3Download
        action: S3Download
        timeoutSeconds: 60
        onFailure: Abort
        maxAttempts: 3
        inputs:
          - source: 's3://sample-bucket/sample1.ps1'
            destination: 'C:\sample1.ps1'
          - source: 's3://sample-bucket/sample2.ps1'
            destination: 'C:\sample2.ps1'
```

Per fare riferimento alla variabile di output (uguale a «Hello») del seguente passaggio di esempio, lo schema di concatenamento è. `{{ build.SamplePowerShellStep.outputs.stdout }}`

```
phases:
  - name: 'build'
    steps:
      - name: SamplePowerShellStep
        action: ExecutePowerShell
        timeoutSeconds: 120
        onFailure: Abort
        maxAttempts: 3
        inputs:
          commands:
            - 'Write-Host "Hello"'
```

## Schema e definizioni del documento
<a name="document-schema"></a>

Di seguito è riportato lo schema YAML per un documento.

```
name: (optional)
description: (optional)
schemaVersion: "string"

phases:
  - name: "string"
    steps:
      - name: "string"
        action: "string"
        timeoutSeconds: integer
        onFailure: "Abort|Continue|Ignore"
        maxAttempts: integer
        inputs:
```

Le definizioni dello schema per un documento sono le seguenti.


| Campo | Description | Tipo | Richiesto | 
| --- | --- | --- | --- | 
| nome | Nome del documento. | Stringa | No | 
| description | Descrizione del documento. | Stringa |  No  | 
| schemaVersion | Versione dello schema del documento, attualmente 1.0. | Stringa |  Sì  | 
| phases | Un elenco di fasi con i relativi passaggi. |  List  |  Sì  | 

Le definizioni dello schema per una fase sono le seguenti.


| Campo | Description | Tipo | Richiesto | 
| --- | --- | --- | --- | 
| nome | Nome della fase. | Stringa | Sì | 
| steps | Elenco delle fasi della fase. | List  |  Sì  | 

Le definizioni dello schema per una fase sono le seguenti.


| Campo | Description | Tipo | Richiesto | Valore predefinito | 
| --- | --- | --- | --- | --- | 
| nome | Nome definito dall'utente per il passo. | Stringa |  |  | 
| operazione | Parola chiave relativa al modulo che esegue il passaggio. | Stringa |  |  | 
| timeoutSeconds |  Numero di secondi di esecuzione del passaggio prima di fallire o riprovare.  Inoltre, supporta il valore -1, che indica un timeout infinito. 0 e altri valori negativi non sono consentiti.  | Numero intero |  No  | 7.200 sec (120 minuti) | 
| onFailure |  Specifica cosa deve fare la fase in caso di errore. I valori validi sono:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/imagebuilder/latest/userguide/toe-use-documents.html)  |  Stringa  |  No  | Interruzione | 
| maxAttempts | Numero massimo di tentativi consentiti prima di fallire il passaggio. | Numero intero |  No  | 1 | 
| inputs | Contiene i parametri richiesti dal modulo di azione per eseguire il passaggio. | Dict |  Sì  |  | 

## Esempi di documenti
<a name="document-example"></a>

Gli esempi seguenti mostrano i documenti dei AWSTOE componenti che eseguono attività per il sistema operativo di destinazione.

------
#### [ Linux ]

**Esempio 1: eseguire un file binario personalizzato**  
Di seguito è riportato un documento di esempio che scarica ed esegue un file binario personalizzato su un'istanza Linux.

```
name: LinuxBin
description: Download and run a custom Linux binary file.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: Download
        action: S3Download
        inputs:
          - source: s3://<replaceable>amzn-s3-demo-source-bucket</replaceable>/<replaceable>myapplication</replaceable>
            destination: /tmp/<replaceable>myapplication</replaceable>
      - name: Enable
        action: ExecuteBash
        onFailure: Continue
        inputs:
          commands:
            - 'chmod u+x {{ build.Download.inputs[0].destination }}'
      - name: Install
        action: ExecuteBinary
        onFailure: Continue
        inputs:
          path: '{{ build.Download.inputs[0].destination }}'
          arguments:
            - '--install'
      - name: Delete
        action: DeleteFile
        inputs:
          - path: '{{ build.Download.inputs[0].destination }}'
```

------
#### [ Windows ]

**Esempio 1: installare gli aggiornamenti di Windows**  
Di seguito è riportato un documento di esempio che installa tutti gli aggiornamenti di Windows disponibili, esegue uno script di configurazione, convalida le modifiche prima della creazione dell'AMI e verifica le modifiche dopo la creazione dell'AMI.

```
name: RunConfig_UpdateWindows
description: 'This document will install all available Windows updates and run a config script. It will then validate the changes before an AMI is created. Then after AMI creation, it will test all the changes.'
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: DownloadConfigScript
        action: S3Download
        timeoutSeconds: 60
        onFailure: Abort
        maxAttempts: 3
        inputs:
          - source: 's3://customer-bucket/config.ps1'
            destination: 'C:\config.ps1'

      - name: RunConfigScript
        action: ExecutePowerShell
        timeoutSeconds: 120
        onFailure: Abort
        maxAttempts: 3
        inputs:
          file: '{{build.DownloadConfigScript.inputs[0].destination}}'

      - name: Cleanup
        action: DeleteFile
        onFailure: Abort
        maxAttempts: 3
        inputs:
          - path: '{{build.DownloadConfigScript.inputs[0].destination}}'

      - name: RebootAfterConfigApplied
        action: Reboot
        inputs:
          delaySeconds: 60

      - name: InstallWindowsUpdates
        action: UpdateOS

  - name: validate
    steps:
      - name: DownloadTestConfigScript
        action: S3Download
        timeoutSeconds: 60
        onFailure: Abort
        maxAttempts: 3
        inputs:
          - source: 's3://customer-bucket/testConfig.ps1'
            destination: 'C:\testConfig.ps1'

      - name: ValidateConfigScript
        action: ExecutePowerShell
        timeoutSeconds: 120
        onFailure: Abort
        maxAttempts: 3
        inputs:
          file: '{{validate.DownloadTestConfigScript.inputs[0].destination}}'

      - name: Cleanup
        action: DeleteFile
        onFailure: Abort
        maxAttempts: 3
        inputs:
          - path: '{{validate.DownloadTestConfigScript.inputs[0].destination}}'

  - name: test
    steps:
      - name: DownloadTestConfigScript
        action: S3Download
        timeoutSeconds: 60
        onFailure: Abort
        maxAttempts: 3
        inputs:
          - source: 's3://customer-bucket/testConfig.ps1'
            destination: 'C:\testConfig.ps1'

      - name: ValidateConfigScript
        action: ExecutePowerShell
        timeoutSeconds: 120
        onFailure: Abort
        maxAttempts: 3
        inputs:
          file: '{{test.DownloadTestConfigScript.inputs[0].destination}}'
```

**Esempio 2: installalo AWS CLI su un'istanza di Windows**  
Di seguito è riportato un documento di esempio che installa AWS CLI su un'istanza di Windows, utilizzando il file di installazione.

```
name: InstallCLISetUp
description: Install &CLI; using the setup file
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: Download
        action: S3Download
        inputs:
          - source: s3://aws-cli/AWSCLISetup.exe
            destination: C:\Windows\temp\AWSCLISetup.exe
      - name: Install
        action: ExecuteBinary
        onFailure: Continue
        inputs:
          path: '{{ build.Download.inputs[0].destination }}'
          arguments:
            - '/install'
            - '/quiet'
            - '/norestart'
      - name: Delete
        action: DeleteFile
        inputs:
          - path: '{{ build.Download.inputs[0].destination }}'
```

**Esempio 3: installare il file AWS CLI con il programma di installazione MSI**  
Di seguito è riportato un documento di esempio che installa il AWS CLI con il programma di installazione MSI.

```
name: InstallCLIMSI
description: Install &CLI; using the MSI installer
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: Download
        action: S3Download
        inputs:
          - source: s3://aws-cli/AWSCLI64PY3.msi
            destination: C:\Windows\temp\AWSCLI64PY3.msi
      - name: Install
        action: ExecuteBinary
        onFailure: Continue
        inputs:
          path: 'C:\Windows\System32\msiexec.exe'
          arguments:
            - '/i'
            - '{{ build.Download.inputs[0].destination }}'
            - '/quiet'
            - '/norestart'
      - name: Delete
        action: DeleteFile
        inputs:
          - path: '{{ build.Download.inputs[0].destination }}'
```

------
#### [ macOS ]

**Esempio 1: eseguire un file binario macOS personalizzato**  
Di seguito è riportato un documento di esempio che scarica ed esegue un file binario personalizzato su un'istanza macOS.

```
name: macOSBin
description: Download and run a binary file on macOS.
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: Download
        action: S3Download
        inputs:
          - source: s3://<replaceable>amzn-s3-demo-source-bucket</replaceable>/<replaceable>myapplication</replaceable>
            destination: /tmp/<replaceable>myapplication</replaceable>
      - name: Enable
        action: ExecuteBash
        onFailure: Continue
        inputs:
          commands:
            - 'chmod u+x {{ build.Download.inputs[0].destination }}'
      - name: Install
        action: ExecuteBinary
        onFailure: Continue
        inputs:
          path: '{{ build.Download.inputs[0].destination }}'
          arguments:
            - '--install'
      - name: Delete
        action: DeleteFile
        inputs:
          - path: '{{ build.Download.inputs[0].destination }}'
```

------

# Usa le variabili nel tuo documento componente personalizzato
<a name="toe-user-defined-variables"></a>

Le variabili forniscono un modo per etichettare i dati con nomi significativi che possono essere utilizzati in un'applicazione. È possibile definire variabili personalizzate con formati semplici e leggibili per flussi di lavoro complessi e farvi riferimento nel documento del componente dell'applicazione YAML per un componente. AWSTOE 

Questa sezione fornisce informazioni per aiutarvi a definire le variabili per il AWSTOE componente nel documento del componente dell'applicazione YAML, tra cui sintassi, vincoli di nome ed esempi.

## Costanti
<a name="user-defined-vars-constants"></a>

Le costanti sono variabili immutabili che non possono essere modificate o sovrascritte una volta definite. Le costanti possono essere definite utilizzando i valori nella sezione di un documento. `constants` AWSTOE 

**Regole per i nomi delle costanti**
+ La lunghezza del nome deve essere compresa tra 3 e 128 caratteri.
+ Il nome può contenere solo caratteri alfanumerici (a-z, A-Z, 0-9), trattini (-) o caratteri di sottolineatura (\$1).
+ Il nome deve essere univoco all'interno del documento.
+ Il nome deve essere specificato come stringa YAML.

**Sintassi**

```
constants:
  - <name>:
      type: <constant type>
      value: <constant value>
```


| Nome chiave | Richiesto | Descrizione | 
| --- | --- | --- | 
|  `name`  |  Sì  | Nome della costante. Deve essere univoco per il documento (non deve essere uguale a nessun altro nome di parametro o costante). | 
| `value` | Sì | Valore della costante. | 
| `type` | Sì | Tipo di costante. Il tipo supportato èstring. | 

**Valori costanti di riferimento in un documento**  
Puoi fare riferimento alle costanti negli input step o loop all'interno del tuo documento YAML, come segue:
+ I riferimenti alle costanti fanno distinzione tra maiuscole e minuscole e il nome deve corrispondere esattamente.
+ Il nome deve essere racchiuso tra parentesi doppie arricciate. `{{` *MyConstant* `}}`
+ Gli spazi all'interno delle parentesi arricciate sono consentiti e vengono tagliati automaticamente. Ad esempio, tutti i seguenti riferimenti sono validi:

  `{{ MyConstant }}`, `{{ MyConstant}}`, `{{MyConstant }}`, `{{MyConstant}}`
+ Il riferimento nel documento YAML deve essere specificato come stringa (racchiusa tra virgolette singole o doppie).

  Ad esempio: non `- {{ MyConstant }}` è valido, in quanto non è identificato come stringa.

  Tuttavia, i seguenti riferimenti sono entrambi validi: `- '{{ MyConstant }}'` e`- "{{ MyConstant }}"`.

**Esempi**  
Costante a cui si fa riferimento negli ingressi Step

```
name: Download AWS CLI version 2
schemaVersion: 1.0
constants:
  - Source:
      type: string
      value: https://awscli.amazonaws.com/AWSCLIV2.msi
phases:
  - name: build
    steps:
      - name: Download
        action: WebDownload
        inputs:
          - source: '{{ Source }}'
            destination: 'C:\Windows\Temp\AWSCLIV2.msi'
```

Costante referenziata negli ingressi in loop

```
name: PingHosts
schemaVersion: 1.0
constants:
  - Hosts:
      type: string
      value: 127.0.0.1,amazon.com
phases:
  - name: build
    steps:
      - name: Ping
        action: ExecuteBash
        loop:
          forEach:
            list: '{{ Hosts }}'
            delimiter: ','
        inputs:
          commands:
            - ping -c 4 {{ loop.value }}
```

## Parameters
<a name="user-defined-vars-parameters"></a>

I parametri sono variabili mutabili, con impostazioni che l'applicazione chiamante può fornire in fase di esecuzione. È possibile definire i parametri nella `Parameters` sezione del documento YAML.

**Regole per i nomi dei parametri**
+ La lunghezza del nome deve essere compresa tra 3 e 128 caratteri.
+ Il nome può contenere solo caratteri alfanumerici (a-z, A-Z, 0-9), trattini (-) o caratteri di sottolineatura (\$1).
+ Il nome deve essere univoco all'interno del documento.
+ Il nome deve essere specificato come stringa YAML.

### Sintassi
<a name="vars-parameters-syntax"></a>

```
parameters:
  - <name>:
      type: <parameter type>
      default: <parameter value>
      description: <parameter description>
```


| Nome chiave | Richiesto | Descrizione | 
| --- | --- | --- | 
| `name` | Sì | Nome del parametro. Deve essere univoco per il documento (non deve essere uguale a nessun altro nome di parametro o costante). | 
| `type` | Sì | Il tipo di dati del parametro. I tipi supportati includono:`string`. | 
| `default` | No | Il valore predefinito per il parametro. | 
| `description` | No | Descrive il parametro. | 

### Valori dei parametri di riferimento in un documento
<a name="vars-parameters-referencing"></a>

Puoi fare riferimento ai parametri negli input step o loop all'interno del tuo documento YAML, come segue:
+ I riferimenti ai parametri fanno distinzione tra maiuscole e minuscole e il nome deve corrispondere esattamente.
+ Il nome deve essere racchiuso tra parentesi graffe doppie. `{{` *MyParameter* `}}`
+ Gli spazi all'interno delle parentesi arricciate sono consentiti e vengono tagliati automaticamente. Ad esempio, tutti i seguenti riferimenti sono validi:

  `{{ MyParameter }}`, `{{ MyParameter}}`, `{{MyParameter }}`, `{{MyParameter}}`
+ Il riferimento nel documento YAML deve essere specificato come stringa (racchiusa tra virgolette singole o doppie).

  Ad esempio: non `- {{ MyParameter }}` è valido, in quanto non è identificato come stringa.

  Tuttavia, i seguenti riferimenti sono entrambi validi: `- '{{ MyParameter }}'` e`- "{{ MyParameter }}"`.

**Esempi**  
Gli esempi seguenti mostrano come utilizzare i parametri nel documento YAML:
+ Fate riferimento a un parametro in Step Inputs:

  ```
  name: Download AWS CLI version 2
  schemaVersion: 1.0
  parameters:
    - Source:
        type: string
        default: 'https://awscli.amazonaws.com/AWSCLIV2.msi'
        description: The AWS CLI installer source URL.
  phases:
    - name: build
      steps:
        - name: Download
          action: WebDownload
          inputs:
            - source: '{{ Source }}'
              destination: 'C:\Windows\Temp\AWSCLIV2.msi'
  ```
+ Fate riferimento a un parametro negli ingressi del loop:

  ```
  name: PingHosts
  schemaVersion: 1.0
  parameters:
    - Hosts:
        type: string
        default: 127.0.0.1,amazon.com
        description: A comma separated list of hosts to ping.
  phases:
    - name: build
      steps:
        - name: Ping
          action: ExecuteBash
          loop:
            forEach:
              list: '{{ Hosts }}'
              delimiter: ','
          inputs:
            commands:
              - ping -c 4 {{ loop.value }}
  ```

### Sostituisci i parametri in fase di esecuzione
<a name="vars-parameters-set-at-runtime"></a>

È possibile utilizzare l'`--parameters`opzione AWS CLI con una coppia chiave-valore per impostare il valore di un parametro in fase di esecuzione.
+ <name><value>Specificate la coppia chiave-valore del parametro come nome e valore, separati da un segno di uguale (=).
+ Più parametri devono essere separati da una virgola.
+ I nomi dei parametri che non si trovano nel documento del componente YAML vengono ignorati.
+ Il nome e il valore del parametro sono entrambi obbligatori.

**Importante**  
I parametri dei componenti sono valori di testo semplice e vengono registrati. AWS CloudTrail Ti consigliamo di utilizzare Gestione dei segreti AWS o il AWS Systems Manager Parameter Store per archiviare i tuoi segreti. Per ulteriori informazioni su Secrets Manager, vedi [Cos'è Secrets Manager?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) nella *Guida Gestione dei segreti AWS per l'utente*. Per ulteriori informazioni su AWS Systems Manager Parameter Store, vedere [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) nella *Guida AWS Systems Manager per l'utente*.

#### Sintassi
<a name="vars-runtime-parameters-syntax"></a>

```
--parameters name1=value1,name2=value2...
```


| Opzione CLI | Richiesto | Description | 
| --- | --- | --- | 
| --parameters *name* =*value*,... | No | Questa opzione accetta l'elenco delle coppie chiave-valore, con il nome del parametro come chiave. | 

**Esempi**  
Gli esempi seguenti mostrano come utilizzare i parametri nel documento YAML:
+ La coppia chiave-valore del parametro specificata in questa `--parameter` opzione non è valida:

  ```
  --parameters ntp-server=
  ```
+ Imposta una coppia chiave-valore di parametro con l'opzione in`--parameter`: AWS CLI

  ```
  --parameters ntp-server=ntp-server-windows-qe.us-east1.amazon.com
  ```
+ Imposta più coppie chiave-valore di parametri con l'opzione in`--parameter`: AWS CLI

  ```
  --parameters ntp-server=ntp-server.amazon.com,http-url=https://internal-us-east1.amazon.com
  ```

## Usa i parametri del Parameter Store di Systems Manager
<a name="toe-ssm-parameters"></a>

È possibile fare riferimento ai parametri AWS Systems Manager Parameter Store (parametri SSM) nei documenti dei componenti aggiungendo alle variabili il prefisso. `aws:ssm` Ad esempio, 

`{{ aws:ssm:/my/param }}`si risolve al valore del parametro SSM. `/my/param`

Questa funzionalità supporta i seguenti tipi di parametri SSM:
+ Stringa: esegue il mapping al tipo di AWSTOE stringa.
+ StringList — Esegue il mapping al AWSTOE `stringList` tipo.
+ SecureString — Esegue il mapping al tipo di AWSTOE stringa.

Per ulteriori informazioni sull'archivio dei parametri, vedere [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) nella *Guida AWS Systems Manager per l'utente*.

Puoi anche fare riferimento ai Gestione dei segreti AWS segreti utilizzando un parametro `SecureString` SSM. Ad esempio: `{{ aws:ssm:/aws/reference/secretsmanager/test/test-secret }}`. Per ulteriori informazioni, vedere [Riferimento ai Gestione dei segreti AWS segreti dai parametri del Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/integration-ps-secretsmanager.html).

**Importante**  
Image Builder esclude la risoluzione `SecureString` dei parametri dai suoi registri. Tuttavia, l'utente è anche responsabile di garantire che le informazioni riservate non vengano registrate tramite i comandi immessi nel documento del componente. Ad esempio, se si utilizza il `echo` comando con una stringa sicura, il comando scrive un valore in chiaro nel registro.

### Autorizzazioni IAM richieste
<a name="toe-ssm-parameters-permissions"></a>

Per utilizzare i parametri Systems Manager nei componenti, il ruolo dell'istanza deve disporre dell'`ssm:GetParameter`autorizzazione per la risorsa parametrica ARN. Esempio:

------
#### [ JSON ]

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Effect": "Allow",
			"Action": "ssm:GetParameter",
			"Resource": "arn:aws:ssm:*:111122223333:parameter/ImageBuilder-*"
		}
	]
}
```

------

Per accedere ai valori crittografati, sono inoltre necessarie le seguenti autorizzazioni:
+ Aggiungi `kms:Decrypt` per `SecureString` parametri o Gestione dei segreti AWS valori crittografati con un servizio gestito AWS KMS key dal cliente.
+ Aggiungi `secretsmanager:GetSecretValue` se fai riferimento a un segreto di Secrets Manager.

### Fai riferimento a un parametro SSM in un documento componente
<a name="toe-ssm-parameters-example"></a>

L'esempio seguente mostra come fare riferimento a un parametro Systems Manager Parameter Store dei parametri di Systems Manager in un componente:

```
name: UseSSMParameterVariable
description: This is a sample component document that prints out the value of an SSM Parameter. Never do this for a SecureString parameter.
schemaVersion: 1.0

phases:
  - name: verify
    steps:
      - name: EchoParameterValue
        action: ExecuteBash
        inputs:
          commands:
            - echo "Log SSM parameter name: /my/test/param, value {{ aws:ssm:/my/test/param }}."
```

### Risoluzione variabile dinamica di runtime per i parametri SSM
<a name="toe-dynamic-vars"></a>

AWSTOE fornisce la seguente funzione integrata che è possibile utilizzare all'interno dei riferimenti alle variabili per manipolare o trasformare i valori in fase di esecuzione.

#### funzione di risoluzione
<a name="toe-function-resolve"></a>

La `resolve` funzione risolve un riferimento a una variabile all'interno di un altro riferimento a una variabile, consentendo il riferimento dinamico al nome della variabile. Ciò è utile quando si lavora con parametri SSM in cui parte del percorso del parametro può essere variabile e passata come parametro del documento.

La `resolve` funzione supporta solo la risoluzione dinamica della parte relativa al nome di un parametro SSM.

##### Sintassi
<a name="toe-function-resolve-syntax"></a>

L'`dynamic_variable`esempio seguente rappresenta il nome di un parametro SSM e deve essere uno dei seguenti:
+ Un riferimento a un parametro SSM (ad esempio,) `aws:ssm:/my/param`
+ Un riferimento a un parametro del documento componente (ad esempio,`parameter-name`)

```
{{ aws:ssm:resolve(dynamic_variable) }}
```

##### Esempio: risolvi un parametro SSM in fase di esecuzione
<a name="toe-function-resolve-examples"></a>

L'esempio seguente mostra come utilizzare la `resolve` funzione in un documento del componente YAML:

```
name: SsmParameterTest
description: This component verifies an SSM parameter variable reference with the echo command.
schemaVersion: 1.0

parameters:
  - parameter-name:
      type: string
      description: "test"

phases:
  - name: validate
    steps:
      - name: PrintDynamicVariable
        action: ExecuteBash
        inputs:
          commands:
            - echo "{{ aws:ssm:resolve(parameter-name) }}"
```

# Usa costrutti condizionali in AWSTOE
<a name="toe-conditional-constructs"></a>

I costrutti condizionali eseguono azioni diverse nel documento del componente a seconda che l'espressione condizionale specificata restituisca o meno. `true` `false` È possibile utilizzare il `if` costrutto per controllare il flusso di esecuzione nel documento componente.

## if Construct
<a name="toe-conditional-if"></a>

È possibile utilizzare il `if` costrutto per valutare se un passaggio deve essere eseguito o meno. Per impostazione predefinita, quando l'espressione `if` condizionale restituisce`true`, AWSTOE esegue il passaggio e quando la condizione restituisce a`false`, AWSTOE salta il passaggio. Se un passaggio viene saltato, viene considerato come un passaggio riuscito quando si AWSTOE valuta se la fase e il documento sono stati eseguiti correttamente.

**Nota**  
Un'`if`istruzione viene valutata solo una volta, anche se il passaggio attiva un riavvio. Se un passaggio si riavvia, riconosce che l'`if`istruzione è già stata valutata e continua da dove era stata interrotta.

### Sintassi
<a name="toe-conditional-if-syntax"></a>

```
if:
  - <conditional expression>:
      [then: <step action>]
      [else: <step action>]
```


| Nome chiave | Richiesto | Description | 
| --- | --- | --- | 
| espressione condizionale | Sì |  L'espressione condizionale può contenere esattamente uno dei seguenti tipi di operatori al livello superiore. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/imagebuilder/latest/userguide/toe-conditional-constructs.html) Se l'espressione deve soddisfare più condizioni, utilizzate un operatore logico per specificare le condizioni.  | 
| poi | No |  Definisce l'azione da intraprendere se l'espressione condizionale restituisce. `true`  | 
| altro | No |  Definisce l'azione da intraprendere se l'espressione condizionale restituisce un risultato. `false`  | 
| azione graduale | Condizionale |  Quando si utilizza `then` o`else`, è necessario specificare una delle seguenti azioni di fase: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/imagebuilder/latest/userguide/toe-conditional-constructs.html)  | 

**Esempio 1: pacchetto di installazione**  
I seguenti passaggi di esempio tratti da un documento relativo a un AWSTOE componente utilizzano operatori logici per testare il valore di un parametro ed eseguire i comandi appropriati del gestore di pacchetti per installare un'applicazione se il pacchetto è decompresso.

```
    - name: InstallUnzipAptGet
      action: ExecuteBash
      if:
        and:
            - binaryExists: 'apt-get'
            - not:
                binaryExists: 'unzip'
      inputs:
        commands:
            - sudo apt-get update
            - sudo apt-get install -y unzip

    - name: InstallUnzipYum
      action: ExecuteBash
      if:
        and:
            - binaryExists: 'yum'
            - not:
                binaryExists: 'unzip'
      inputs:
        commands:
            - sudo yum install -y unzip

    - name: InstallUnzipZypper
      action: ExecuteBash
      if:
        and:
            - binaryExists: 'zypper'
            - not:
                binaryExists: 'unzip'
      inputs:
        commands:
            - sudo zypper refresh
            - sudo zypper install -y unzip
```

**Esempio 2: saltare un passaggio**  
L'esempio seguente mostra due modi per saltare un passaggio. Uno utilizza un operatore logico e l'altro utilizza un operatore di confronto con l'azione del `Skip` passaggio.

```
# Creates a file if it does not exist using not
- name: CreateMyConfigFile-1
  action: ExecuteBash
  if:
    not:
      fileExists: '/etc/my_config'
  inputs:
    commands:
      - echo "Hello world" > '/etc/my_config'

# Creates a file if it does not exist using then and else
- name: CreateMyConfigFile-2
  action: ExecuteBash
  if:
    fileExists: '/etc/my_config'
    then: Skip
    else: Execute
  inputs:
    commands:
      - echo "Hello world" > '/etc/my_config'
```

# Usa gli operatori di confronto nei documenti AWSTOE dei componenti
<a name="toe-comparison-operators"></a>

È possibile utilizzare i seguenti operatori di confronto con il modulo di **[Affermare](toe-action-modules.md#action-modules-assertion)** azione e con le espressioni condizionali che utilizzano il[if ConstructSintassi](toe-conditional-constructs.md#toe-conditional-if). Un operatore di confronto può operare su un singolo valore, ad esempio`stringIsEmpty`, oppure confrontare un valore di base con un secondo valore (valore variabile) per determinare se l'espressione condizionale restituisce o. `true` `false`

Se il confronto opera su due valori, il secondo valore può essere una variabile di concatenamento.

Quando si confrontano valori di tipo diverso, prima del confronto possono verificarsi le seguenti conversioni di valore:
+ Per i confronti numerici, se il valore della variabile è una stringa, AWSTOE converte la stringa in un numero prima della valutazione. Se la conversione non è possibile, viene restituito il confronto. `false` Ad esempio, se il valore della variabile è`"1.0"`, la conversione funziona, ma se il valore della variabile è `"a10"` la conversione fallisce.
+ Per i confronti tra stringhe, se il valore della variabile è un numero, lo AWSTOE converte in una stringa prima della valutazione.

## Confronta le stringhe
<a name="toe-compare-strings"></a>

I seguenti operatori di confronto utilizzano le stringhe per confrontare valori, verificare la presenza di spazi o una stringa vuota o confrontare un valore di input con un modello regex. I confronti tra stringhe non fanno distinzione tra maiuscole e minuscole e non tagliano gli spazi dall'inizio o dalla fine degli input di stringa.

**Operatori di confronto tra stringhe**
+ [stringIsEmpty](#stringIsEmpty)
+ [stringIsWhitespace](#stringIsWhitespace)
+ [stringEquals](#stringEquals)
+ [stringLessThan](#stringLessThan)
+ [stringLessThanEquals](#stringLessThanEquals)
+ [stringGreaterThan](#stringGreaterThan)
+ [stringGreaterThanEquals](#stringGreaterThanEquals)
+ [patternMatches](#patternMatches)

**stringIsEmpty**  
L'`stringIsEmpty`operatore restituisce `true` se la stringa specificata non contiene caratteri. Esempio:  

```
# Evaluates to true
stringIsEmpty: ""

# Evaluates to false
stringIsEmpty: " "
				
# Evaluates to false
stringIsEmpty: "Hello."
```

**stringIsWhitespace**  
Verifica se la stringa specificata per `stringIsWhitespace` contiene solo spazi. Esempio:  

```
# Evaluates to true
stringIsWhitespace: "   "

# Evaluates to false
stringIsWhitespace: ""
				
# Evaluates to false
stringIsWhitespace: " Hello?"
```

**StringEquals**  
Verifica se la stringa specificata per `stringEquals` corrisponde esattamente alla stringa specificata nel parametro. `value` Esempio:  

```
# Evaluates to true
stringEquals: 'Testing, testing...'
value: 'Testing, testing...'

# Evaluates to false
stringEquals: 'Testing, testing...'
value: 'Hello again.'

# Evaluates to false
stringEquals: 'Testing, testing...'
value: 'TESTING, TESTING....'

# Evaluates to false
stringEquals: 'Testing, testing...'
value: '   Testing, testing...'
				
# Evaluates to false
stringEquals: 'Testing, testing...'
value: 'Testing, testing...   '
```

**stringLessThan**  
Verifica se la stringa specificata per `stringLessThan` è inferiore alla stringa specificata nel `value` parametro. Esempio:  

```
# Evaluates to true
# This comparison operator isn't case sensitive
stringlessThan: 'A'
value: 'a'

# Evaluates to true - 'a' is less than 'b'
stringlessThan: 'b'
value: 'a'

# Evaluates to true
# Numeric strings compare as less than alphabetic strings
stringlessThan: 'a'
value: '0'

# Evaluates to false
stringlessThan: '0'
value: 'a'
```

**stringLessThanUguale a**  
Verifica se la stringa specificata per `stringLessThanEquals` è minore o uguale alla stringa specificata nel `value` parametro. Esempio:  

```
# Evaluates to true - 'a' is equal to 'a'
stringLessThanEquals: 'a'
value: 'a'

# Evaluates to true - since the comparison isn't case sensitive, 'a' is equal to 'A'
stringLessThanEquals: 'A'
value: 'a'

# Evaluates to true - 'a' is less than 'b'
stringLessThanEquals: 'b'
value: 'a'

# Evaluates to true - '0' is less than 'a'
stringLessThanEquals: 'a'
value: '0'

# Evaluates to false - 'a' is greater than '0'
stringLessThanEquals: '0'
value: 'a'
```

**stringGreaterThan**  
Verifica se la stringa specificata per `stringGreaterThan` è maggiore della stringa specificata nel `value` parametro. Esempio:  

```
# Evaluates to false - since the comparison isn't case sensitive, 'A' is equal to 'a'
stringGreaterThan: 'a'
value: 'A'

# Evaluates to true - 'b' is greater than 'a'
stringGreaterThan: 'a'
value: 'b'

# Evaluates to true - 'a' is greater than '0'
stringGreaterThan: '0'
value: 'a'

# Evaluates to false - '0' is less than 'a'
stringGreaterThan: 'a'
value: '0'
```

**stringGreaterThanUguale a**  
Verifica se la stringa specificata per `stringGreaterThanEquals` è maggiore o uguale alla stringa specificata nel `value` parametro. Esempio:  

```
# Evaluates to true - 'a' is equal to 'A'
stringGreaterThanEquals: 'A'
value: 'a'

# Evaluates to true - 'b' is greater than 'a'
stringGreaterThanEquals: 'a'
value: 'b'

# Evaluates to true - 'a' is greater than '0'
stringGreaterThanEquals: '0'
value: 'a'

# Evaluates to false - '0' is less than 'a'
stringGreaterThanEquals: 'a'
value: '0'
```

**Pattern Matches**  
Verifica se la stringa specificata nel `value` parametro corrisponde al modello regex specificato per. `patternMatches` Il confronto utilizza il [pacchetto Golang regexp](https://pkg.go.dev/regexp), che è conforme alla sintassi. RE2 Per ulteriori informazioni sulle RE2 regole, consulta il repository [google/re2](https://github.com/google/re2/wiki/Syntax) in. *GitHub*  
L'esempio seguente mostra un pattern match che restituisce: `true`  

```
patternMatches: '^[a-z]+$'
value: 'ThisIsValue'
```

## Confronta i numeri
<a name="toe-compare-numbers"></a>

I seguenti operatori di confronto funzionano con i numeri. I valori forniti per questi operatori devono essere di uno dei seguenti tipi, in base alla specifica YAML. Il supporto per i confronti numerici utilizza l'operatore di confronto di pacchetti golang big, ad esempio: [func (](https://pkg.go.dev/math/big#Float.Cmp)\$1Float) Cmp.
+ Numero intero
+ Float (basato su float64, che supporta numeri da -1.7e\$1308 a \$11.7e\$1308)
+ Una stringa che corrisponde al seguente schema regex: `^[-+]?([0-9]+[.])?[0-9]+$`

**Operatori di confronto numerico**
+ [numberEquals](#numberEquals)
+ [numberLessThan](#numberLessThan)
+ [numberLessThanEquals](#numberLessThanEquals)
+ [numberGreaterThan](#numberGreaterThan)
+ [numberGreaterThanEquals](#numberGreaterThanEquals)

**Numero uguale a**  
Verifica se il numero specificato per `numberEquals` è uguale al numero specificato nel parametro. `value` Tutti i seguenti esempi di confronto restituiscono`true`:  

```
# Values provided as a positive number
numberEquals: 1
value: 1

# Comparison value provided as a string
numberEquals: '1'
value: 1

# Value provided as a string
numberEquals: 1
value: '1'

# Values provided as floats
numberEquals: 5.0
value: 5.0

# Values provided as a negative number
numberEquals: -1
value: -1
```

**numberLessThan**  
Verifica se il numero specificato per `numberLessThan` è inferiore al numero specificato nel `value` parametro. Esempio:  

```
# Evaluates to true
numberLessThan: 2
value: 1

# Evaluates to true
numberLessThan: 2
value: 1.9

# Evaluates to false
numberLessThan: 2
value: '2'
```

**numberLessThanUguale a**  
Verifica se il numero specificato per `numberLessThanEquals` è inferiore o uguale al numero specificato nel `value` parametro. Esempio:  

```
# Evaluates to true
numberLessThanEquals: 2
value: 1

# Evaluates to true
numberLessThanEquals: 2
value: 1.9

# Evaluates to true
numberLessThanEquals: 2
value: '2'

# Evaluates to false
numberLessThanEquals: 2
value: 2.1
```

**numberGreaterThan**  
Verifica se il numero specificato per `numberGreaterThan` è maggiore del numero specificato nel `value` parametro. Esempio:  

```
# Evaluates to true
numberGreaterThan: 1
value: 2

# Evaluates to true
numberGreaterThan: 1
value: 1.1

# Evaluates to false
numberGreaterThan: 1
value: '1'
```

**numberGreaterThanUguale a**  
Verifica se il numero specificato per `numberGreaterThanEquals` è maggiore o uguale al numero specificato nel `value` parametro. Esempio:  

```
# Evaluates to true
numberGreaterThanEquals: 1
value: 2

# Evaluates to true
numberGreaterThanEquals: 1
value: 1.1

# Evaluates to true
numberGreaterThanEquals: 1
value: '1'

# Evaluates to false
numberGreaterThanEquals: 1
value: 0.8
```

## Controlla i file
<a name="toe-check-files"></a>

I seguenti operatori di confronto controllano l'hash del file o controllano se esiste un file o una cartella.

**Operatori di file e cartelle**
+ [binaryExists](#binaryExists)
+ [fileExists](#fileExists)
+ [folderExists](#folderExists)
+ [fileMD5Equals](#fileMD5Equals)
+ [fileSHA1Equals](#fileSHA1Equals)
+ [fileSHA256Equals](#fileSHA256Equals)
+ [fileSHA512Equals](#fileSHA512Equals)

**Il binario esiste**  
Verifica se un'applicazione è disponibile nel percorso corrente. Esempio:  

```
binaryExists: 'foo'
```
Sui sistemi Linux e macOS, per un'applicazione denominata*foo*, funziona come il seguente comando bash:**type *foo* >/dev/null 2>&1**, dove **\$1? == 0** indica un confronto riuscito.  
Sui sistemi Windows, per un'applicazione denominata*foo*, funziona come il PowerShell comando **& C:\$1Windows\$1System32\$1where.exe /Q *foo*** dove **\$1LASTEXITCODE = 0** indica un confronto riuscito.

**Il file esiste**  
Verifica se un file esiste nel percorso specificato. È possibile fornire un percorso assoluto o relativo. Se la posizione specificata esiste ed è un file, il confronto restituisce. `true` Esempio:  

```
fileExists: '/path/to/file'
```
Sui sistemi Linux e macOS, funziona come il seguente comando bash:**-d */path/to/file***, dove **\$1? == 0** indica un confronto riuscito.  
Sui sistemi Windows, funziona come il PowerShell comando. **Test-Path -Path '*C:\$1path\$1to\$1file*' -PathType 'Leaf'**

**La cartella esiste**  
Verifica se esiste una cartella nel percorso specificato. È possibile fornire un percorso assoluto o relativo. Se la posizione specificata esiste ed è una cartella, il confronto restituisce. `true` Esempio:  

```
folderExists: '/path/to/folder'
```
Sui sistemi Linux e macOS, funziona come il seguente comando bash:**-d */path/to/folder***, dove **\$1? == 0** indica un confronto riuscito.  
Sui sistemi Windows, funziona come il PowerShell comando. **Test-Path -Path '*C:\$1path\$1to\$1folder*' -PathType 'Container'**

**file è uguale MD5 a**  
Verifica se l' MD5 hash di un file è uguale a un valore specificato. Esempio:  

```
fileMD5Equals: '<MD5Hash>'
path: '/path/to/file'
```

**file è uguale a SHA1**  
Verifica se l' SHA1 hash di un file è uguale a un valore specificato. Esempio:  

```
fileSHA1Equals: '<SHA1Hash>'
path: '/path/to/file'
```

**file è uguale a SHA256**  
Verifica se l' SHA256 hash di un file è uguale a un valore specificato. Esempio:  

```
fileSHA256Equals: '<SHA256Hash>'
path: '/path/to/file'
```

**file è uguale a SHA512**  
Verifica se l' SHA512 hash di un file è uguale a un valore specificato. Esempio:  

```
fileSHA512Equals: '<SHA512Hash>'
path: '/path/to/file'
```

# Utilizzo di operatori logici nei documenti AWSTOE dei componenti
<a name="toe-logical-operators"></a>

È possibile utilizzare i seguenti operatori logici per aggiungere o modificare espressioni condizionali nel documento componente. AWSTOE valuta le espressioni condizionali nell'ordine in cui sono specificate le condizioni. Per ulteriori informazioni sugli operatori di confronto per i documenti dei componenti, vedere. [Usa gli operatori di confronto nei documenti AWSTOE dei componenti](toe-comparison-operators.md)

** e **  
Con l'`and`operatore, è possibile valutare due o più confronti come un'unica espressione. L'espressione restituisce `true` quando tutte le condizioni dell'elenco sono vere. In caso contrario, l'espressione restituisce. `false`  
**Esempi:**  
L'esempio seguente esegue due confronti: una stringa e un numero. Entrambi i confronti sono veri, quindi l'espressione restituisce vero.

```
and:
  - stringEquals: 'test_string'
    value: 'test_string'
  - numberEquals: 1
    value: 1
```
L'esempio seguente esegue anche due confronti. Il primo confronto è falso, a quel punto la valutazione si interrompe e il secondo confronto viene saltato. L'espressione restituisce. `false`  

```
and:
  - stringEquals: 'test_string'
    value: 'Hello world!'
  - numberEquals: 1
    value: 1
```

**oppure**  
Con l'`or`operatore, è possibile valutare due o più confronti come un'unica espressione. L'espressione restituisce `true` quando uno dei confronti specificati è vero. Se nessuno dei confronti specificati restituisce un risultato positivo`true`, l'espressione restituisce lo stesso risultato. `false`  
**Esempi:**  
L'esempio seguente esegue due confronti: una stringa e un numero. Il primo confronto è vero, quindi l'espressione restituisce un risultato `true` e il secondo confronto viene saltato.

```
or:
  - stringEquals: 'test_string'
    value: 'test_string'
  - numberEquals: 1
    value: 3
```
L'esempio seguente esegue anche due confronti. Il primo confronto è falso e la valutazione continua. Il secondo confronto è vero, quindi l'espressione restituisce come. `true`  

```
or:
  - stringEquals: 'test_string'
    value: 'Hello world!'
  - numberEquals: 1
    value: 1
```
Nell'ultimo esempio, entrambi i confronti sono falsi, quindi l'espressione restituisce come. `false`  

```
or:
  - stringEquals: 'test_string'
    value: 'Hello world!'
  - numberEquals: 1
    value: 3
```

**non**  
Con l'`not`operatore, puoi annullare un singolo confronto. L'espressione restituisce `true` se il confronto è falso. Se il confronto è vero, l'espressione restituisce. `false`  
**Esempi:**  
L'esempio seguente esegue un confronto tra stringhe. Il confronto è falso, quindi l'espressione restituisce come risultato. `true`

```
not:
  - stringEquals: 'test_string'
    value: 'Hello world!'
```
L'esempio seguente esegue anche un confronto tra stringhe. Il confronto è vero, quindi l'espressione restituisce. `false`  

```
not:
  - stringEquals: 'test_string'
    value: 'test_string'
```

# Usa costrutti a ciclo continuo in AWSTOE
<a name="toe-looping-constructs"></a>

Questa sezione fornisce informazioni per aiutarvi a creare costrutti ciclici in. AWSTOE I costrutti di looping definiscono una sequenza ripetuta di istruzioni. È possibile utilizzare i seguenti tipi di costrutti di loop in: AWSTOE
+ `for`costrutti: esegue l'iterazione su una sequenza limitata di numeri interi.
+ `forEach`costrutti
  + `forEach`loop with input list — Itera su una raccolta finita di stringhe. 
  + `forEach`loop con elenco delimitato — Itera su una raccolta finita di stringhe unite da un delimitatore.

**Nota**  
I costrutti di looping supportano solo i tipi di dati di tipo stringa.

**Topics**
+ [Variabili di iterazione di riferimento](#toe-loop-iteration-variables)
+ [Tipi di costrutti a ciclo continuo](#toe-loop-types)
+ [Campi Step](#toe-loop-step-fields)
+ [Uscite di fase e iterazione](#toe-loop-step-output)

## Variabili di iterazione di riferimento
<a name="toe-loop-iteration-variables"></a>

Per fare riferimento all'indice e al valore della variabile di iterazione corrente, l'espressione di riferimento `{{ loop.* }}` deve essere utilizzata all'interno del corpo di input di un passaggio che contiene un costrutto ciclico. Questa espressione non può essere utilizzata per fare riferimento alle variabili di iterazione del costrutto di looping di un altro passaggio.

L'espressione di riferimento è composta dai seguenti membri:
+ `{{ loop.index }}`— La posizione ordinale dell'iterazione corrente, indicizzata in. `0` 
+ `{{ loop.value }}`— Il valore associato alla variabile di iterazione corrente. 

### Nomi dei loop
<a name="toe-loop-iteration-variables-names"></a>

 Tutti i costrutti in loop hanno un campo nome opzionale per l'identificazione. Se viene fornito un nome di ciclo, può essere utilizzato per fare riferimento alle variabili di iterazione nel corpo di input del passaggio. Per fare riferimento agli indici di iterazione e ai valori di un ciclo denominato, utilizzate `{{ <loop_name>.* }}` with `{{ loop.* }}` nel corpo di input del passaggio. Questa espressione non può essere utilizzata per fare riferimento al costrutto di looping denominato di un altro passaggio. 

L'espressione di riferimento è composta dai seguenti membri:
+ `{{ <loop_name>.index }}`— La posizione ordinale dell'iterazione corrente del ciclo denominato, indicizzata in. `0`
+ `{{ <loop_name>.value }}`— Il valore associato alla variabile di iterazione corrente del ciclo denominato.

### Risolve le espressioni di riferimento
<a name="toe-loop-iteration-variables-expressions"></a>

 AWSTOE Risolve le espressioni di riferimento come segue: 
+ `{{ <loop_name>.* }}`— AWSTOE risolve questa espressione utilizzando la logica seguente:
  + Se il ciclo del passaggio attualmente in esecuzione corrisponde al `<loop_name>` valore, l'espressione di riferimento si risolve nel costrutto di loop del passaggio attualmente in esecuzione.
  + `<loop_name>`si risolve nel costrutto di looping denominato se appare nella fase attualmente in esecuzione.
+ `{{ loop.* }}`— AWSTOE risolve l'espressione utilizzando il costrutto di looping definito nella fase attualmente in esecuzione.

Se le espressioni di riferimento vengono utilizzate all'interno di un passaggio che non contiene un ciclo, non AWSTOE risolve le espressioni e vengono visualizzate nel passaggio senza alcuna sostituzione. 

**Nota**  
Le espressioni di riferimento devono essere racchiuse tra virgolette doppie per essere interpretate correttamente dal compilatore YAML.

## Tipi di costrutti a ciclo continuo
<a name="toe-loop-types"></a>

Questa sezione fornisce informazioni ed esempi sui tipi di costrutti di looping che possono essere utilizzati in. AWSTOE

**Topics**
+ [`for`ciclo](#toe-loop-types-for)
+ [`forEach`loop con elenco di input](#toe-loop-types-foreach)
+ [`forEach`ciclo con elenco delimitato](#toe-loop-types-foreach-delimited)

### `for`ciclo
<a name="toe-loop-types-for"></a>

Il `for` ciclo itera su un intervallo di numeri interi specificato all'interno di un limite delineato dall'inizio e dalla fine delle variabili. I valori di iterazione sono inclusi nel set `[start, end]` e includono i valori limite.

AWSTOE verifica i `updateBy` valori `start``end`, e per garantire che la combinazione non produca un ciclo infinito.

`for`schema ad anello

```
  - name: "StepName"
    action: "ActionModule"
    loop:
      name: "string"
      for:
        start: int
        end: int
        updateBy: int
inputs:
  ...
```


**`for`ingresso in loop**  

| Campo | Description | Tipo | Obbligatorio | Predefinita | 
| --- | --- | --- | --- | --- | 
|  `name`  | Nome univoco del ciclo. Deve essere univoco rispetto ad altri nomi di loop nella stessa fase. |  Stringa  |  No  |  ""  | 
|  `start`  | Valore iniziale dell'iterazione. Non accetta espressioni concatenate.  |  Numero intero  |  Sì  |  N/A  | 
| `end` | Valore finale dell'iterazione. Non accetta espressioni concatenate.  | Numero intero | Sì | N/A | 
| `updateBy` | Differenza in base alla quale un valore iterativo viene aggiornato tramite addizione. Deve essere un valore negativo o positivo diverso da zero. Non accetta espressioni concatenate.  | Numero intero | Sì | N/A | 

`for`esempio di input in loop

```
  - name: "CalculateFileUploadLatencies"
    action: "ExecutePowerShell"
    loop:
      for:
        start: 100000
        end: 1000000
        updateBy: 100000
    inputs:
      commands:
        - |
          $f = new-object System.IO.FileStream c:\temp\test{{ loop.index }}.txt, Create, ReadWrite
          $f.SetLength({{ loop.value }}MB)
          $f.Close()
        - c:\users\administrator\downloads\latencyTest.exe --file c:\temp\test{{ loop.index }}.txt
        - AWS s3 cp c:\users\administrator\downloads\latencyMetrics.json s3://bucket/latencyMetrics.json
        - |
          Remove-Item -Path c:\temp\test{{ loop.index }}.txt
          Remove-Item -Path c:\users\administrator\downloads\latencyMetrics.json
```

### `forEach`loop con elenco di input
<a name="toe-loop-types-foreach"></a>

Il `forEach` ciclo itera su un elenco esplicito di valori, che può essere costituito da stringhe ed espressioni concatenate. 

`forEach`ciclo con schema di elenco di input

```
  - name: "StepName"
    action: "ActionModule"
    loop:
      name: "string"
      forEach:
        - "string"
    inputs:
  ...
```


**`forEach`loop con immissione della lista di input**  

| Campo | Description | Tipo | Obbligatorio | Predefinita | 
| --- | --- | --- | --- | --- | 
|  `name`  | Nome univoco del ciclo. Deve essere univoco rispetto ad altri nomi di loop nella stessa fase. |  Stringa  |  No  |  ""  | 
|  Elenco di stringhe di loop `forEach`  |  Elenco di stringhe per l'iterazione. Accetta espressioni concatenate come stringhe nell'elenco. Le espressioni concatenate devono essere racchiuse tra virgolette doppie affinché il compilatore YAML le interpreti correttamente.  |  Elenco di stringhe  |  Sì  |  N/A  | 

`forEach`ciclo con elenco di input (esempio 1)

```
  - name: "ExecuteCustomScripts"
    action: "ExecuteBash"
    loop:
      name: BatchExecLoop
      forEach:
        - /tmp/script1.sh
        - /tmp/script2.sh
        - /tmp/script3.sh
    inputs:
      commands:
        - echo "Count {{ BatchExecLoop.index }}"
        - sh "{{ loop.value }}"
        - |
          retVal=$?
          if [ $retVal -ne 0 ]; then
            echo "Failed"
          else
            echo "Passed"
         fi
```

`forEach`ciclo con elenco di input (esempio 2)

```
  - name: "RunMSIWithDifferentArgs"
    action: "ExecuteBinary"
    loop:
      name: MultiArgLoop
      forEach:
        - "ARG1=C:\Users ARG2=1"
        - "ARG1=C:\Users"
        - "ARG1=C:\Users ARG3=C:\Users\Administrator\Documents\f1.txt"
    inputs:
      commands:
        path: "c:\users\administrator\downloads\runner.exe"
        args:
          - "{{ MultiArgLoop.value }}"
```

`forEach`ciclo con elenco di input (esempio 3)

```
  - name: "DownloadAllBinaries"
    action: "S3Download"
    loop:
      name: MultiArgLoop
      forEach:
        - "bin1.exe"
        - "bin10.exe"
        - "bin5.exe"
    inputs:
      - source: "s3://bucket/{{ loop.value }}"
        destination: "c:\temp\{{ loop.value }}"
```

### `forEach`ciclo con elenco delimitato
<a name="toe-loop-types-foreach-delimited"></a>

Il ciclo scorre su una stringa contenente valori separati da un delimitatore. Per iterare sui componenti della stringa, AWSTOE utilizza il delimitatore per dividere la stringa in un array adatto all'iterazione. 

`forEach`ciclo con schema a elenco delimitato

```
  - name: "StepName"
    action: "ActionModule"
    loop:
      name: "string"
      forEach:
        list: "string"
        delimiter: ".,;:\n\t -_"
    inputs:
  ...
```


**`forEach`ciclo con inserimento di un elenco delimitato**  

| Campo | Description | Tipo | Obbligatorio | Predefinita | 
| --- | --- | --- | --- | --- | 
|  `name`  | Nome univoco assegnato al ciclo. Dovrebbe essere unico se confrontato con altri nomi di loop nella stessa fase. |  Stringa  |  No  |  ""  | 
|  `list`  | Una stringa composta da stringhe costituenti unite da un carattere delimitatore comune. Accetta anche espressioni concatenate. In caso di espressioni concatenate, assicuratevi che siano racchiuse tra virgolette doppie per una corretta interpretazione da parte del compilatore YAML. | Stringa |  Sì  |  N/A  | 
| `delimiter` | Carattere usato per separare le stringhe all'interno di un blocco. L'impostazione predefinita è il carattere virgola. È consentito un solo carattere delimitatore dall'elenco fornito: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/imagebuilder/latest/userguide/toe-looping-constructs.html) Le espressioni concatenate non possono essere utilizzate. | Stringa | No | Virgola: "," | 

**Nota**  
Il valore di `list` viene considerato come una stringa immutabile. Se l'origine di `list` viene modificata durante l'esecuzione, non verrà riflessa durante l'esecuzione.

`forEach`ciclo con elenco delimitato (esempio 1)

Questo esempio utilizza il seguente modello di espressione concatenata per fare riferimento all'output di un altro passaggio:. `<phase_name>.<step_name>.[inputs | outputs].<var_name>`

```
  - name: "RunMSIs"
    action: "ExecuteBinary"
    loop:
      forEach:
        list: "{{ build.GetAllMSIPathsForInstallation.outputs.stdout }}"
        delimiter: "\n"
    inputs:
      commands:
        path: "{{ loop.value }}"
```

`forEach`ciclo con elenco delimitato (esempio 2)

```
  - name: "UploadMetricFiles"
    action: "S3Upload"
    loop:
      forEach:
        list: "/tmp/m1.txt,/tmp/m2.txt,/tmp/m3.txt,..."
    inputs:
      commands:
        - source: "{{ loop.value }}"
          destination: "s3://bucket/key/{{ loop.value }}"
```

## Campi Step
<a name="toe-loop-step-fields"></a>

I loop fanno parte di un passaggio. Qualsiasi campo relativo all'esecuzione di un passaggio non viene applicato alle singole iterazioni. I campi della fase si applicano solo a livello di fase, come segue:
+ *TimeoutSeconds*: tutte le iterazioni del ciclo devono essere eseguite entro il periodo di tempo specificato in questo campo. Se l'esecuzione del ciclo scade, AWSTOE esegue la politica di riprova del passaggio e reimposta il parametro di timeout per ogni nuovo tentativo. Se l'esecuzione del ciclo supera il valore di timeout dopo aver raggiunto il numero massimo di tentativi, il messaggio di errore della fase indica che l'esecuzione del ciclo è scaduta. 
+ *OnFailure*: la gestione degli errori viene applicata alla fase nel modo seguente:
  + Se *OnFailure* è impostato su`Abort`, AWSTOE esce dal ciclo e riprova il passaggio in base alla politica di ripetizione dei tentativi. Dopo il numero massimo di tentativi, AWSTOE contrassegna il passaggio corrente come fallito e interrompe l'esecuzione del processo.

    AWSTOE imposta il codice di stato per la fase principale e il documento su`Failed`.
**Nota**  
Nessun altro passaggio viene eseguito dopo il passaggio fallito.
  + Se *OnFailure* è impostato su`Continue`, AWSTOE esce dal ciclo e riprova il passaggio in base alla politica di ripetizione dei tentativi. Dopo il numero massimo di tentativi, AWSTOE contrassegna il passaggio corrente come fallito e continua a eseguire il passaggio successivo.

    AWSTOE imposta il codice di stato per la fase principale e il documento su`Failed`.
  + Se *OnFailure* è impostato su`Ignore`, AWSTOE esce dal ciclo e riprova il passaggio in base alla politica di ripetizione dei tentativi. Dopo il numero massimo di tentativi, AWSTOE contrassegna il passaggio corrente come `IgnoredFailure` e continua a eseguire il passaggio successivo.

    AWSTOE imposta il codice di stato per la fase principale e il documento su`SuccessWithIgnoredFailure`.
**Nota**  
Viene comunque considerata un'esecuzione riuscita, ma include informazioni che indicano che uno o più passaggi non sono riusciti e sono stati ignorati.
+ *MaxAttempts*: per ogni nuovo tentativo, l'intero passaggio e tutte le iterazioni vengono eseguiti dall'inizio.
+ *status: lo* stato generale dell'esecuzione di un passaggio. `status`non rappresenta lo stato delle singole iterazioni. Lo stato di un passaggio con loop è determinato come segue:
  + Se una singola iterazione non viene eseguita, lo stato di un passaggio indica un errore.
  + Se tutte le iterazioni hanno esito positivo, lo stato di un passaggio indica un successo.
+ *startTime*: l'ora di inizio complessiva dell'esecuzione di un passaggio. Non rappresenta l'ora di inizio delle singole iterazioni.
+ *EndTime*: l'ora di fine complessiva dell'esecuzione di un passaggio. Non rappresenta l'ora di fine delle singole iterazioni.
+ *FailureMessage*: include gli indici di iterazione che hanno avuto esito negativo in caso di errori diversi dal timeout. In caso di errori di timeout, il messaggio indica che l'esecuzione del ciclo non è riuscita. Non vengono forniti messaggi di errore individuali per ogni iterazione per ridurre al minimo la dimensione dei messaggi di errore.

## Uscite di fase e iterazione
<a name="toe-loop-step-output"></a>

Ogni iterazione contiene un output. Alla fine di un ciclo, AWSTOE consolida tutti gli output di iterazione riusciti in. `detailedOutput.json` Gli output consolidati sono una raccolta di valori che appartengono alle chiavi di output corrispondenti, come definito nello schema di output del modulo di azione. L'esempio seguente mostra come vengono consolidati gli output:

**Output di `ExecuteBash` per l'iterazione 1**

```
{
	"stdout":"Hello"
}
```

**Output di `ExecuteBash` per l'iterazione 2**

```
{
	"stdout":"World"
}
```

**Output di `ExecuteBash` for Step**

```
{
	"stdout":"Hello\nWorld"
}
```

Ad esempio `ExecuteBash``ExecutePowerShell`, e `ExecuteBinary` sono moduli di azione che restituiscono `STDOUT` come output del modulo di azione. `STDOUT`i messaggi vengono uniti al nuovo carattere di riga per produrre l'output complessivo dello step in`detailedOutput.json`.

AWSTOE non consoliderà i risultati delle iterazioni non riuscite.

# Moduli di azione supportati dal gestore AWSTOE dei componenti
<a name="toe-action-modules"></a>

I servizi di creazione di immagini, come EC2 Image Builder AWSTOE , utilizzano moduli di azione per facilitare la configurazione delle istanze EC2 utilizzate per creare e testare immagini di macchine personalizzate. Questa sezione descrive le funzionalità dei moduli di AWSTOE azione di uso comune e come configurarli, inclusi alcuni esempi.

I componenti sono creati con documenti YAML in testo semplice. Per ulteriori informazioni sulla sintassi dei documenti, vedere. [Usa il framework AWSTOE dei documenti dei componenti per i componenti personalizzati](toe-use-documents.md)

**Nota**  
Tutti i moduli di azione utilizzano lo stesso account dell'agente Systems Manager quando vengono eseguiti, ovvero `root` su Linux e `NT Authority\SYSTEM` su Windows.

Il seguente riferimento incrociato classifica i moduli di azione in base al tipo di azioni che eseguono.

 

**Esecuzione generale**
+ [Assert (Linux, Windows, macOS)](#action-modules-assertion)
+ [ExecuteBash (Linux, macOS)](#action-modules-executebash)
+ [ExecuteBinary (Linux, Windows, macOS)](#action-modules-executebinary)
+ [ExecuteDocument (Linux, Windows, macOS)](#action-modules-executedocument)
+ [ExecutePowerShell (Windows)](#action-modules-executepowershell)

 

**Scaricamento e caricamento di file**
+ [Scarica S3 (Linux, Windows, macOS)](#action-modules-s3download)
+ [Caricamento S3 (Linux, Windows, macOS)](#action-modules-s3upload)
+ [WebDownload (Linux, Windows, macOS)](#action-modules-webdownload)

 

**Operazioni del file system**
+ [AppendFile (Linux, Windows, macOS)](#action-modules-appendfile)
+ [CopyFile (Linux, Windows, macOS)](#action-modules-copyfile)
+ [CopyFolder (Linux, Windows, macOS)](#action-modules-copyfolder)
+ [CreateFile (Linux, Windows, macOS)](#action-modules-createfile)
+ [CreateFolder (Linux, Windows, macOS)](#action-modules-createfolder)
+ [CreateSymlink (Linux, Windows, macOS)](#action-modules-createsymlink)
+ [DeleteFile (Linux, Windows, macOS)](#action-modules-deletefile)
+ [DeleteFolder (Linux, Windows, macOS)](#action-modules-deletefolder)
+ [ListFiles (Linux, Windows, macOS)](#action-modules-listfiles)
+ [MoveFile (Linux, Windows, macOS)](#action-modules-movefile)
+ [MoveFolder (Linux, Windows, macOS)](#action-modules-movefolder)
+ [ReadFile (Linux, Windows, macOS)](#action-modules-readfile)
+ [SetFileEncoding (Linux, Windows, macOS)](#action-modules-setfileencoding)
+ [SetFileOwner (Linux, Windows, macOS)](#action-modules-setfileowner)
+ [SetFolderOwner (Linux, Windows, macOS)](#action-modules-setfolderowner)
+ [SetFilePermissions (Linux, Windows, macOS)](#action-modules-setfilepermissions)
+ [SetFolderPermissions (Linux, Windows, macOS)](#action-modules-setfolderpermissions)

 

**Azioni di installazione del software**
+ [Installa MSI (Windows)](#action-modules-install-msi)
+ [Disinstalla MSI (Windows)](#action-modules-uninstall-msi)

 

**Azioni di sistema**
+ [Riavvio (Linux, Windows)](#action-modules-reboot)
+ [SetRegistry (Windows)](#action-modules-setregistry)
+ [UpdateOS (Linux, Windows)](#action-modules-updateos)

## Moduli di esecuzione generali
<a name="action-modules-general-execution"></a>

La sezione seguente contiene dettagli sui moduli di azione che eseguono comandi e controllano il flusso di lavoro di esecuzione.

**Topics**
+ [Assert (Linux, Windows, macOS)](#action-modules-assertion)
+ [ExecuteBash (Linux, macOS)](#action-modules-executebash)
+ [ExecuteBinary (Linux, Windows, macOS)](#action-modules-executebinary)
+ [ExecuteDocument (Linux, Windows, macOS)](#action-modules-executedocument)
+ [ExecutePowerShell (Windows)](#action-modules-executepowershell)

### Assert (Linux, Windows, macOS)
<a name="action-modules-assertion"></a>

Il modulo di azione **Assert** esegue confronti di valori utilizzando [Operatori di confronto](toe-comparison-operators.md) o [Operatori logici](toe-logical-operators.md) come input. Il risultato dell'espressione dell'operatore (vero o falso) indica lo stato complessivo di successo o di fallimento della fase.

Se l'espressione dell'operatore logico o di confronto restituisce un risultato positivo`true`, il passaggio viene contrassegnato come`Success`. In caso contrario, il passaggio viene contrassegnato come`Failed`. Se il passaggio fallisce, il `onFailure` parametro decide il risultato del passaggio.


**Input**  

| Nome chiave | Description | Tipo | Richiesto | 
| --- | --- | --- | --- | 
| input | Contiene un singolo operatore logico o di confronto. Nota, gli operatori logici possono contenere più di un operatore di confronto. | Questo valore è variabile, a seconda dell'operatore | Sì | 

**Esempio di input: un semplice confronto utilizzando l'operatore di `stringEquals` confronto**

Questo esempio restituisce. `true`

```
- name: StringComparison
  action: Assert
  inputs:
    stringEquals: '2.1.1'
    value: '{{ validate.ApplicationVersion.outputs.stdout }}'
```

**Esempio di input: confronti Regex utilizzando l'operatore di confronto `patternMatches`**

Tutti questi esempi restituiscono. `true`

```
- name: Letters only
  action: Assert
  inputs:
    patternMatches: '^[a-zA-Z]+$'
    value: 'ThisIsOnlyLetters'

- name: Letters and spaces only
  action: Assert
  inputs:
    patternMatches: '^[a-zA-Z\s]+$'
    value: 'This text contains spaces'
  
- name: Numbers only
  action: Assert
  inputs:
    patternMatches: '^[0-9]+$'
    value: '1234567890'
```

**Esempio di input: confronti annidati con operatori logici e variabili concatenate**

L'esempio seguente illustra i confronti annidati con operatori logici che utilizzano confronti con variabili concatenate. Viene `Assert` restituito `true` se una delle seguenti condizioni è vera:
+ Il `ApplicationVersion` è maggiore `2.0` e `CPUArchitecture` uguale `arm64` a.
+ Gli `CPUArchitecture` uguali. `x86_64`

```
- name: NestedComparisons
  action: Assert
  inputs:
    or: # <- first level deep
      - and: # <- second level deep
          - numberGreaterThan: 2.0 # <- third level deep
            value: '{{ validate.ApplicationVersion.outputs.stdout }}'
          - stringEquals: 'arm64'
            value: '{{ validate.CPUArchitecture.outputs.stdout }}'
      - stringEquals: 'x86_64'
        value: '{{ validate.CPUArchitecture.outputs.stdout }}'
```

**Output:**

Il risultato di un `Assert` è il successo o il fallimento della fase.

### ExecuteBash (Linux, macOS)
<a name="action-modules-executebash"></a>

Il modulo **ExecuteBash**action consente di eseguire script bash con codice/comandi di shell in linea. Questo modulo supporta Linux. 

Tutti i comandi e le istruzioni specificati nel blocco dei comandi vengono convertiti in un file (ad esempio`input.sh`) ed eseguiti con la shell bash. Il risultato dell'esecuzione del file shell è il codice di uscita del passaggio. 

Il **ExecuteBash**modulo gestisce i riavvii del sistema se lo script esce con un codice di uscita di. `194` Una volta avviata, l'applicazione esegue una delle seguenti azioni:
+ L'applicazione consegna il codice di uscita al chiamante se viene eseguita dall'agente Systems Manager. Systems Manager Agent gestisce il riavvio del sistema ed esegue lo stesso passaggio che ha avviato il riavvio, come descritto in [Riavvio di un'istanza gestita dagli script](https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-reboot.html).
+ L'applicazione salva la versione corrente`executionstate`, configura un trigger di riavvio per rieseguire l'applicazione e riavvia il sistema.

Dopo il riavvio del sistema, l'applicazione esegue lo stesso passaggio che ha avviato il riavvio. Se è necessaria questa funzionalità, è necessario scrivere script idempotenti in grado di gestire più invocazioni dello stesso comando di shell.


**Input**  

| Nome chiave | Description | Tipo | Richiesto | 
| --- | --- | --- | --- | 
| commands | Contiene un elenco di istruzioni o comandi da eseguire secondo la sintassi di bash. È consentito lo standard YAML multilinea. | List | Sì | 

**Esempio di input: prima e dopo il riavvio**

```
name: ExitCode194Example
description: This shows how the exit code can be used to restart a system with ExecuteBash
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: RestartTrigger
        action: ExecuteBash
        inputs:
          commands:
            - |
              REBOOT_INDICATOR=/var/tmp/reboot-indicator
              if [ -f "${REBOOT_INDICATOR}" ]; then
                echo 'The reboot file exists. Deleting it and exiting with success.'
                rm "${REBOOT_INDICATOR}"
                exit 0
              fi
              echo 'The reboot file does not exist. Creating it and triggering a restart.'
              touch "${REBOOT_INDICATOR}"
              exit 194
```


**Output**  

| Campo | Description | Tipo | 
| --- | --- | --- | 
| stdout | Output standard dell'esecuzione del comando. | stringa | 

Se avvii un riavvio e restituisci il codice di uscita `194` come parte del modulo di azione, la compilazione riprenderà dalla stessa fase del modulo di azione che ha avviato il riavvio. Se avvii un riavvio senza il codice di uscita, il processo di compilazione potrebbe non riuscire.

**Esempio di output: prima del riavvio (prima lettura del documento)**

```
{
	“stdout”: “The reboot file does not exist. Creating it and triggering a restart."
}
```

**Esempio di output: dopo il riavvio, (seconda volta nel documento)**

```
{
	“stdout”: “The reboot file exists. Deleting it and exiting with success."
}
```

### ExecuteBinary (Linux, Windows, macOS)
<a name="action-modules-executebinary"></a>

Il modulo di **ExecuteBinary**azione consente di eseguire file binari con un elenco di argomenti della riga di comando.

Il **ExecuteBinary**modulo gestisce i riavvii del sistema se il file binario esce con un codice di uscita `194` (Linux) o `3010` (Windows). Quando ciò accade, l'applicazione esegue una delle seguenti azioni:
+ L'applicazione consegna il codice di uscita al chiamante se viene eseguita dall'agente Systems Manager. Systems Manager Agent gestisce il riavvio del sistema ed esegue lo stesso passaggio che ha avviato il riavvio, come descritto in [Riavvio](https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-reboot.html) di un'istanza gestita dagli script.
+ L'applicazione salva la versione corrente`executionstate`, configura un trigger di riavvio per rieseguire l'applicazione e riavvia il sistema.

Dopo il riavvio del sistema, l'applicazione esegue lo stesso passaggio che ha avviato il riavvio. Se è necessaria questa funzionalità, è necessario scrivere script idempotenti in grado di gestire più invocazioni dello stesso comando di shell.


**Input**  

| Nome chiave | Description | Tipo | Richiesto | 
| --- | --- | --- | --- | 
| path | Il percorso del file binario per l'esecuzione. | Stringa | Sì | 
| arguments | Contiene un elenco di argomenti della riga di comando da utilizzare durante l'esecuzione del file binario. | Elenco di stringhe | No | 

**Esempio di input: installare.NET**

```
  - name: "InstallDotnet"
    action: ExecuteBinary
    inputs:
      path: C:\PathTo\dotnet_installer.exe
      arguments:
        - /qb
        - /norestart
```


**Output**  

| Campo | Description | Tipo | 
| --- | --- | --- | 
| stdout | Output standard dell'esecuzione del comando. | stringa | 

**Esempio di output**

```
{
	"stdout": "success"
}
```

### ExecuteDocument (Linux, Windows, macOS)
<a name="action-modules-executedocument"></a>

Il modulo di **ExecuteDocument**azione aggiunge il supporto per i documenti di componenti annidati, eseguendo più documenti componenti da un unico documento. AWSTOE convalida il documento passato nel parametro di input in fase di esecuzione.

**Restrizioni**
+ Questo modulo di azione viene eseguito una sola volta, senza che siano consentiti nuovi tentativi e senza alcuna opzione per impostare limiti di timeout. **ExecuteDocument**imposta i seguenti valori predefiniti e restituisce un errore se si tenta di modificarli.
  + `timeoutSeconds`: -1
  + `maxAttempts`: 1
**Nota**  
È possibile lasciare vuoti questi valori e AWSTOE utilizzare i valori predefiniti.
+ L'annidamento dei documenti è consentito, fino a tre livelli di profondità, ma non di più. Tre livelli di nidificazione si traducono in quattro livelli di documento, poiché il livello superiore non è nidificato. In questo scenario, il documento di livello più basso non deve richiamare nessun altro documento.
+ L'esecuzione ciclica dei documenti dei componenti non è consentita. Qualsiasi documento che richiama se stesso al di fuori di un costrutto a ciclo continuo o che richiama un altro documento più in alto nella catena di esecuzione corrente avvia un ciclo che può generare un ciclo infinito. Quando AWSTOE rileva un'esecuzione ciclica, interrompe l'esecuzione e registra l'errore.

![\[Restrizioni a livello di nidificazione per il modulo di azione ExecuteDocument .\]](http://docs.aws.amazon.com/it_it/imagebuilder/latest/userguide/images/toe-component-document-nesting.png)


Se un documento componente tenta di eseguirsi da solo o di eseguire uno dei documenti componenti che si trovano più in alto nella catena di esecuzione corrente, l'esecuzione fallisce.

**Input**


| Nome chiave | Description | Tipo | Richiesto | 
| --- | --- | --- | --- | 
| document |  Percorso del documento componente. Le opzioni valide includono: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/imagebuilder/latest/userguide/toe-action-modules.html)  | Stringa | Sì | 
| document-s3-bucket-owner |  L'ID dell'account del proprietario del bucket S3 per il bucket S3 in cui sono archiviati i documenti dei componenti. *(Consigliato se utilizzi S3 URIs nel documento del componente.)*  | Stringa | No | 
| phases |  Fasi da eseguire nel documento del componente, espresse come elenco separato da virgole. Se non viene specificata alcuna fase, vengono eseguite tutte le fasi.  | Stringa | No | 
| parameters |  Parametri di input che vengono passati al documento del componente in fase di esecuzione come coppie chiave-valore.  | Elenco delle mappe dei parametri | No | 

**Inserimento della mappa dei parametri**


| Nome chiave | Description | Tipo | Richiesto | 
| --- | --- | --- | --- | 
| name |  Il nome del parametro di input da passare al documento del componente che il modulo di **ExecuteDocument**azione è in esecuzione.  | Stringa | Sì | 
| value |  Il valore del parametro di input.  | Stringa | Sì | 

**Esempi di input**  
Gli esempi seguenti mostrano le variazioni degli input per il documento del componente, a seconda del percorso di installazione.

**Esempio di input: percorso del documento locale**

```
# main.yaml
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: ExecuteNestedDocument
        action: ExecuteDocument
        inputs:
          document: Sample-1.yaml
          phases: build
          parameters:
            - name: parameter-1
              value: value-1
            - name: parameter-2
              value: value-2
```

**Esempio di input: URI S3 come percorso del documento**

```
# main.yaml
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: ExecuteNestedDocument
        action: ExecuteDocument
        inputs:
          document: s3://my-bucket/Sample-1.yaml
          document-s3-bucket-owner: 123456789012
          phases: build,validate
          parameters:
            - name: parameter-1
              value: value-1
            - name: parameter-2
              value: value-2
```

**Esempio di input: ARN del componente EC2 Image Builder come percorso del documento**

```
# main.yaml
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: ExecuteNestedDocument
        action: ExecuteDocument
        inputs:
          document: arn:aws:imagebuilder:us-west-2:aws:component/Sample-Test/1.0.0
          phases: test
          parameters:
            - name: parameter-1
              value: value-1
            - name: parameter-2
              value: value-2
```

**Utilizzo di un ForEach ciclo per eseguire documenti**

```
# main.yaml
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: ExecuteNestedDocument
        action: ExecuteDocument
        loop:
          name: 'myForEachLoop'
          forEach:
            - Sample-1.yaml
            - Sample-2.yaml
        inputs:
          document: "{{myForEachLoop.value}}"
          phases: test
          parameters:
            - name: parameter-1
              value: value-1
            - name: parameter-2
              value: value-2
```

**Utilizzo di un ciclo For per eseguire documenti**

```
# main.yaml
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: ExecuteNestedDocument
        action: ExecuteDocument
        loop:
          name: 'myForLoop'
          for:
            start: 1
            end: 2
            updateBy: 1
        inputs:
          document: "Sample-{{myForLoop.value}}.yaml"
          phases: test
          parameters:
            - name: parameter-1
              value: value-1
            - name: parameter-2
              value: value-2
```

**Output**  
AWSTOE crea un file di output chiamato `detailedoutput.json` ogni volta che viene eseguito. Il file contiene dettagli su ogni fase e passaggio di ogni documento componente che viene richiamato durante l'esecuzione. Per il modulo **ExecuteDocument**d'azione, è possibile trovare un breve riepilogo del runtime nel `outputs` campo e dettagli sulle fasi, i passaggi e i documenti in cui viene eseguito. `detailedOutput`

```
{
	\"executedStepCount\":1,\"executionId\":\"97054e22-06cc-11ec-9b14-acde48001122\",\"failedStepCount\":0,\"failureMessage\":\"\",\"ignoredFailedStepCount\":0,\"logUrl\":\"\",\"status\":\"success\"
}",
```

L'oggetto di riepilogo dell'output di ogni documento componente contiene i seguenti dettagli, come illustrato di seguito, con valori di esempio:
+ executedStepCount«:1
+ «ID esecuzione» :"12345a67-89bc-01de-2f34-abcd56789012"
+ failedStepCount««:0
+ «FailureMessage»: "»
+ «Conteggio»: 0 ignoredFailedStep
+ «logUrl»: "»
+ «status»: «successo»

**Esempio di output**  
L'esempio seguente mostra l'output del modulo di **ExecuteDocument**azione quando si verifica un'esecuzione annidata. In questo esempio, il documento `main.yaml` componente esegue correttamente il documento del `Sample-1.yaml` componente.

```
{
    "executionId": "12345a67-89bc-01de-2f34-abcd56789012",
    "status": "success",
    "startTime": "2021-08-26T17:20:31-07:00",
    "endTime": "2021-08-26T17:20:31-07:00",
    "failureMessage": "",
    "documents": [
        {
            "name": "",
            "filePath": "main.yaml",
            "status": "success",
            "description": "",
            "startTime": "2021-08-26T17:20:31-07:00",
            "endTime": "2021-08-26T17:20:31-07:00",
            "failureMessage": "",
            "phases": [
                {
                    "name": "build",
                    "status": "success",
                    "startTime": "2021-08-26T17:20:31-07:00",
                    "endTime": "2021-08-26T17:20:31-07:00",
                    "failureMessage": "",
                    "steps": [
                        {
                            "name": "ExecuteNestedDocument",
                            "status": "success",
                            "failureMessage": "",
                            "timeoutSeconds": -1,
                            "onFailure": "Abort",
                            "maxAttempts": 1,
                            "action": "ExecuteDocument",
                            "startTime": "2021-08-26T17:20:31-07:00",
                            "endTime": "2021-08-26T17:20:31-07:00",
                            "inputs": "[{\"document\":\"Sample-1.yaml\",\"document-s3-bucket-owner\":\"\",\"phases\":\"\",\"parameters\":null}]",
                            "outputs": "[{\"executedStepCount\":1,\"executionId\":\"98765f43-21ed-09cb-8a76-fedc54321098\",\"failedStepCount\":0,\"failureMessage\":\"\",\"ignoredFailedStepCount\":0,\"logUrl\":\"\",\"status\":\"success\"}]",
                            "loop": null,
                            "detailedOutput": [
                                {
                                    "executionId": "98765f43-21ed-09cb-8a76-fedc54321098",
                                    "status": "success",
                                    "startTime": "2021-08-26T17:20:31-07:00",
                                    "endTime": "2021-08-26T17:20:31-07:00",
                                    "failureMessage": "",
                                    "documents": [
                                        {
                                            "name": "",
                                            "filePath": "Sample-1.yaml",
                                            "status": "success",
                                            "description": "",
                                            "startTime": "2021-08-26T17:20:31-07:00",
                                            "endTime": "2021-08-26T17:20:31-07:00",
                                            "failureMessage": "",
                                            "phases": [
                                                {
                                                    "name": "build",
                                                    "status": "success",
                                                    "startTime": "2021-08-26T17:20:31-07:00",
                                                    "endTime": "2021-08-26T17:20:31-07:00",
                                                    "failureMessage": "",
                                                    "steps": [
                                                        {
                                                            "name": "ExecuteBashStep",
                                                            "status": "success",
                                                            "failureMessage": "",
                                                            "timeoutSeconds": 7200,
                                                            "onFailure": "Abort",
                                                            "maxAttempts": 1,
                                                            "action": "ExecuteBash",
                                                            "startTime": "2021-08-26T17:20:31-07:00",
                                                            "endTime": "2021-08-26T17:20:31-07:00",
                                                            "inputs": "[{\"commands\":[\"echo \\\"Hello World!\\\"\"]}]",
                                                            "outputs": "[{\"stdout\":\"Hello World!\"}]",
                                                            "loop": null,
                                                            "detailedOutput": null
                                                        }]
                                                }]
                                        }]
                                }]
                        }]
                
                }]
        }]
}
```

### ExecutePowerShell (Windows)
<a name="action-modules-executepowershell"></a>

Il modulo di **ExecutePowerShell**azione consente di eseguire PowerShell script con codice/comandi di shell in linea. Questo modulo supporta la piattaforma Windows e Windows. PowerShell

Tutto ciò che è commands/instructions specificato nel blocco dei comandi viene convertito in un file di script (ad esempio`input.ps1`) ed eseguito utilizzando WindowsPowerShell. Il risultato dell'esecuzione del file shell è il codice di uscita.

Il **ExecutePowerShell**modulo gestisce i riavvii del sistema se il comando shell esce con un codice di uscita di. `3010` Una volta avviata, l'applicazione esegue una delle seguenti azioni: 
+ Fornisce il codice di uscita al chiamante se eseguito dall'agente Systems Manager. Systems Manager Agent gestisce il riavvio del sistema ed esegue lo stesso passaggio che ha avviato il riavvio, come descritto in [Riavvio di un'istanza gestita dagli script](https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-reboot.html).
+ Salva la versione corrente`executionstate`, configura un trigger di riavvio per rieseguire l'applicazione e riavvia il sistema.

Dopo il riavvio del sistema, l'applicazione esegue lo stesso passaggio che ha avviato il riavvio. Se è necessaria questa funzionalità, è necessario scrivere script idempotenti in grado di gestire più invocazioni dello stesso comando di shell.


**Input**  

| Nome chiave | Description | Tipo | Richiesto | 
| --- | --- | --- | --- | 
| commands | Contiene un elenco di istruzioni o comandi da eseguire secondo la sintassi. PowerShell È consentito il formato YAML multilinea. | Elenco di stringhe | Sì. È necessario specificare `commands` o `file` non entrambi.  | 
| file | Contiene il percorso di un file di PowerShell script. PowerShell verrà eseguito su questo file utilizzando l'argomento della riga di -file comando. Il percorso deve puntare a un .ps1 file. | Stringa | Sì. È necessario specificare `commands` o `file` non entrambi.  | 

**Esempio di input: prima e dopo il riavvio**

```
name: ExitCode3010Example
description: This shows how the exit code can be used to restart a system with ExecutePowerShell
schemaVersion: 1.0
phases:
  - name: build
    steps:
      - name: RestartTrigger
        action: ExecutePowerShell
        inputs:
          commands:
            - |
              $rebootIndicator = Join-Path -Path $env:SystemDrive -ChildPath 'reboot-indicator'
              if (Test-Path -Path $rebootIndicator) {
                Write-Host 'The reboot file exists. Deleting it and exiting with success.'
                Remove-Item -Path $rebootIndicator -Force | Out-Null
                [System.Environment]::Exit(0)
              }
              Write-Host 'The reboot file does not exist. Creating it and triggering a restart.'
              New-Item -Path $rebootIndicator -ItemType File | Out-Null
              [System.Environment]::Exit(3010)
```


**Output**  

| Campo | Description | Tipo | 
| --- | --- | --- | 
| stdout | Output standard dell'esecuzione del comando. | stringa | 

Se esegui un riavvio e restituisci il codice di uscita `3010` come parte del modulo di azione, la compilazione riprenderà dalla stessa fase del modulo di azione che ha avviato il riavvio. Se esegui un riavvio senza il codice di uscita, il processo di compilazione potrebbe non riuscire.

**Esempio di output: prima del riavvio (prima lettura del documento)**

```
{
	“stdout”: “The reboot file does not exist. Creating it and triggering a restart."
}
```

**Esempio di output: dopo il riavvio, (seconda volta nel documento)**

```
{
	“stdout”: “The reboot file exists. Deleting it and exiting with success."
}
```

## Moduli per il download e il caricamento dei file
<a name="action-modules-download-upload"></a>

La sezione seguente contiene dettagli sui moduli di azione che caricano o scaricano file.

**Topics**
+ [Scarica S3 (Linux, Windows, macOS)](#action-modules-s3download)
+ [Caricamento S3 (Linux, Windows, macOS)](#action-modules-s3upload)
+ [WebDownload (Linux, Windows, macOS)](#action-modules-webdownload)

### Scarica S3 (Linux, Windows, macOS)
<a name="action-modules-s3download"></a>

Con il modulo di `S3Download` azione, puoi scaricare un oggetto Amazon S3, o un set di oggetti, in un file o una cartella locale che specifichi con il `destination` percorso. Se esiste già un file nella posizione specificata e il `overwrite` flag è impostato su true, `S3Download` sovrascrive il file.

La tua `source` posizione può puntare a un oggetto specifico in Amazon S3 oppure puoi utilizzare un prefisso chiave con un asterisco wildcard `*` () per scaricare un set di oggetti che corrispondono al percorso del prefisso chiave. Quando specificate un prefisso chiave nella vostra `source` posizione, il modulo di `S3Download` azione scarica tutto ciò che corrisponde al prefisso (file e cartelle inclusi). Assicurati che il prefisso della chiave termini con una barra, seguita da un asterisco (`/*`), in modo da scaricare tutto ciò che corrisponde al prefisso. Ad esempio: `s3://my-bucket/my-folder/*`.

Se l'`S3Download`azione per uno specifico key prefix fallisce durante un download, il contenuto della cartella non viene ripristinato allo stato precedente all'errore. La cartella di destinazione rimane com'era al momento dell'errore.

**Casi di utilizzo supportati**  
Il modulo di `S3Download` azione supporta i seguenti casi d'uso:
+ L'oggetto Amazon S3 viene scaricato in una cartella locale, come specificato nel percorso di download.
+ Gli oggetti Amazon S3 (con un prefisso chiave nel percorso del file Amazon S3) vengono scaricati nella cartella locale specificata, che copia in modo ricorsivo tutti gli oggetti Amazon S3 che corrispondono al prefisso della chiave nella cartella locale.

**Requisiti IAM**  
Il ruolo IAM associato al profilo dell'istanza deve disporre delle autorizzazioni per eseguire il modulo di `S3Download` azione. Le seguenti politiche IAM devono essere associate al ruolo IAM associato al profilo dell'istanza:
+ **File singolo**: `s3:GetObject` contro bucket/object (ad esempio,`arn:aws:s3:::BucketName/*`).
+ **File multipli**: `s3:ListBucket` contro bucket/object (ad esempio,`arn:aws:s3:::BucketName`) e `s3:GetObject` contro bucket/object (ad esempio,`arn:aws:s3:::BucketName/*`).


**Input**  

|  Chiave  |  Description  |  Tipo  |  Obbligatorio  |  Predefinita  | 
| --- | --- | --- | --- | --- | 
|  `source`  |  Il bucket Amazon S3 che è la fonte per il download. Potete specificare un percorso per un oggetto specifico o utilizzare un prefisso chiave che termina con una barra, seguita da un asterisco wildcard (`/*`), per scaricare un set di oggetti che corrispondono al prefisso della chiave.  |  Stringa  |  Sì  |  N/D  | 
|  `destination`  |  Il percorso locale in cui vengono scaricati gli oggetti Amazon S3. Per scaricare un singolo file, devi specificare il nome del file come parte del percorso. Ad esempio, `/myfolder/package.zip`.  |  Stringa  |  Sì  |  N/D  | 
|  `expectedBucketOwner`  |  ID dell'account proprietario previsto del bucket fornito nel `source` percorso. Ti consigliamo di verificare la proprietà del bucket Amazon S3 specificato nel codice sorgente.  |  Stringa  |  No  |  N/D  | 
|  `overwrite`  |  Se impostato su true, se un file con lo stesso nome esiste già nella cartella di destinazione per il percorso locale specificato, il file scaricato sovrascrive il file locale. Se impostato su false, il file esistente nel sistema locale è protetto dalla sovrascrittura e il modulo di azione ha esito negativo e restituisce un errore di download. Ad esempio, `Error: S3Download: File already exists and "overwrite" property for "destination" file is set to false. Cannot download.`  |  Boolean  |  No  |  true  | 

**Nota**  
Per gli esempi seguenti, il percorso della cartella Windows può essere sostituito con un percorso Linux. Ad esempio, `C:\myfolder\package.zip` può essere sostituito con`/myfolder/package.zip`.

**Esempio di input: copia un oggetto Amazon S3 in un file locale**  
L'esempio seguente mostra come copiare un oggetto Amazon S3 in un file locale.

```
  - name: DownloadMyFile
    action: S3Download
    inputs:
      - source: s3://amzn-s3-demo-source-bucket/path/to/package.zip
        destination: C:\myfolder\package.zip
        expectedBucketOwner: 123456789022
        overwrite: false
      - source: s3://amzn-s3-demo-source-bucket/path/to/package.zip
        destination: C:\myfolder\package.zip
        expectedBucketOwner: 123456789022
        overwrite: true
      - source: s3://amzn-s3-demo-source-bucket/path/to/package.zip
        destination: C:\myfolder\package.zip
        expectedBucketOwner: 123456789022
```

**Esempio di input: copia tutti gli oggetti Amazon S3 in un bucket Amazon S3 con prefisso chiave in una cartella locale**  
L'esempio seguente mostra come copiare tutti gli oggetti Amazon S3 in un bucket Amazon S3 con il prefisso chiave in una cartella locale. Amazon S3 non ha il concetto di cartella, pertanto tutti gli oggetti che corrispondono al prefisso del key vengono copiati. Il numero massimo di oggetti che possono essere scaricati è 1000.

```
  - name: MyS3DownloadKeyprefix
    action: S3Download
    maxAttempts: 3
    inputs:
      - source: s3://amzn-s3-demo-source-bucket/path/to/*
        destination: C:\myfolder\
        expectedBucketOwner: 123456789022
        overwrite: false
      - source: s3://amzn-s3-demo-source-bucket/path/to/*
        destination: C:\myfolder\
        expectedBucketOwner: 123456789022
        overwrite: true
      - source: s3://amzn-s3-demo-source-bucket/path/to/*
        destination: C:\myfolder\
        expectedBucketOwner: 123456789022
```

**Output**  
Nessuna.

### Caricamento S3 (Linux, Windows, macOS)
<a name="action-modules-s3upload"></a>

Con il modulo di azione **S3Upload**, puoi caricare un file da un file o una cartella di origine in una posizione Amazon S3. Puoi utilizzare un carattere jolly (`*`) nel percorso specificato per la posizione di origine per caricare tutti i file il cui percorso corrisponde al modello dei caratteri jolly.

Se l'azione **ricorsiva S3Upload** fallisce, tutti i file che sono già stati caricati rimarranno nel bucket Amazon S3 di destinazione.

**Casi di utilizzo supportati**
+ File locale su oggetto Amazon S3.
+ File locali nella cartella (con wildcard) nel prefisso chiave di Amazon S3.
+ Copia la cartella locale (deve essere `recurse` impostata su`true`) nel prefisso chiave di Amazon S3.

**Requisiti IAM**  
Il ruolo IAM associato al profilo dell'istanza deve disporre delle autorizzazioni per eseguire il modulo di `S3Upload` azione. La seguente policy IAM deve essere associata al ruolo IAM associato al profilo dell'istanza. La policy deve concedere `s3:PutObject` le autorizzazioni al bucket Amazon S3 di destinazione. Ad esempio, `arn:aws:s3:::BucketName/*`.


**Input**  

|  Chiave  |  Description  |  Tipo  |  Obbligatorio  |  Predefinita  | 
| --- | --- | --- | --- | --- | 
|  `source`  |  Il percorso locale da cui proviene l'origine. files/folders `source`Supporta un asterisco wildcard ()`*`.  |  Stringa  |  Sì  |  N/D  | 
|  `destination`  |  Il percorso del bucket Amazon S3 di destinazione in cui vengono caricati i file/le cartelle di origine.  |  Stringa  |  Sì  |  N/D  | 
|  `recurse`  |  **Se impostato su, esegue S3Upload in modo `true` ricorsivo.**  |  Stringa  |  No  |  `false`  | 
|  `expectedBucketOwner`  |  L'ID dell'account proprietario previsto per il bucket Amazon S3 specificato nel percorso di destinazione. Ti consigliamo di verificare la proprietà del bucket Amazon S3 specificato nella destinazione.  |  Stringa  |  No  |  N/D  | 

**Esempio di input: copia un file locale su un oggetto Amazon S3**  
L'esempio seguente mostra come copiare un file locale su un oggetto Amazon S3.

```
  - name: MyS3UploadFile
    action: S3Upload
    onFailure: Abort
    maxAttempts: 3
    inputs:
      - source: C:\myfolder\package.zip
        destination: s3://amzn-s3-demo-destination-bucket/path/to/package.zip
        expectedBucketOwner: 123456789022
```

**Esempio di input: copia tutti i file in una cartella locale in un bucket Amazon S3 con prefisso chiave**  
L'esempio seguente mostra come copiare tutti i file nella cartella locale in un bucket Amazon S3 con key prefix. Questo esempio non copia le sottocartelle o il loro contenuto perché non `recurse` è specificato e l'impostazione predefinita è. `false`

```
  - name: MyS3UploadMultipleFiles
    action: S3Upload
    onFailure: Abort
    maxAttempts: 3
    inputs:
      - source: C:\myfolder\*
        destination: s3://amzn-s3-demo-destination-bucket/path/to/
        expectedBucketOwner: 123456789022
```

**Esempio di input: copia ricorsivamente tutti i file e le cartelle da una cartella locale a un bucket Amazon S3**  
L'esempio seguente mostra come copiare tutti i file e le cartelle in modo ricorsivo da una cartella locale a un bucket Amazon S3 con prefisso chiave.

```
  - name: MyS3UploadFolder
    action: S3Upload
    onFailure: Abort
    maxAttempts: 3
    inputs:
      - source: C:\myfolder\*
        destination: s3://amzn-s3-demo-destination-bucket/path/to/
        recurse: true
        expectedBucketOwner: 123456789022
```

**Output**  
Nessuna.

### WebDownload (Linux, Windows, macOS)
<a name="action-modules-webdownload"></a>

Il modulo di **WebDownload**azione consente di scaricare file e risorse da una postazione remota tramite il HTTP/HTTPS protocollo (*si consiglia HTTPS*). Non ci sono limiti al numero o alla dimensione dei download. Questo modulo gestisce la logica dei tentativi e del backoff esponenziale. 

A ogni operazione di download vengono assegnati un massimo di 5 tentativi di successo in base agli input dell'utente. Questi tentativi sono diversi da quelli specificati nel `maxAttempts` campo del documento`steps`, che sono correlati agli errori del modulo di azione.

Questo modulo di azione gestisce implicitamente i reindirizzamenti. Tutti i codici di stato HTTP, ad eccezione di`200`, generano un errore.


**Input**  

| Nome chiave | Description | Tipo | Obbligatorio | Predefinita | 
| --- | --- | --- | --- | --- | 
| source | L' HTTP/HTTPS URL valido (si consiglia HTTPS), che segue lo standard RFC 3986. Le espressioni concatenate sono consentite. | Stringa |  Sì  | N/D | 
| destination | Un percorso di file o cartella assoluto o relativo nel sistema locale. I percorsi delle cartelle devono terminare con/. Se non terminano con/, verranno trattati come percorsi di file. Il modulo crea qualsiasi file o cartella necessario per il corretto download. Le espressioni concatenate sono consentite. | Stringa | Sì | N/D | 
| overwrite | Se abilitata, sovrascrive qualsiasi file esistente sul sistema locale con il file o la risorsa scaricati. Se non è abilitata, i file esistenti sul sistema locale non vengono sovrascritti e il modulo di azione si interrompe e restituisce un errore. Quando la sovrascrittura è abilitata e vengono specificati il checksum e l'algoritmo, il modulo di azione scarica il file solo se il checksum e l'hash dei file preesistenti non corrispondono.  | Boolean | No | true | 
| checksum | Quando si specifica il checksum, questo viene confrontato con l'hash del file scaricato generato con l'algoritmo fornito. Affinché la verifica dei file sia abilitata, è necessario fornire sia il checksum che l'algoritmo. Le espressioni concatenate sono consentite.  | Stringa | No | N/D | 
| algorithm | L'algoritmo utilizzato per calcolare il checksum. Le opzioni sonoMD5, SHA1 SHA256, e SHA512. Per abilitare la verifica dei file, è necessario fornire sia il checksum che l'algoritmo. Le espressioni concatenate sono consentite.  | Stringa | No | N/D | 
| ignoreCertificateErrors | La convalida del certificato SSL viene ignorata se abilitata. | Boolean | No | false | 


**Output**  

| Nome chiave | Description | Tipo | 
| --- | --- | --- | 
| destination | Stringa di nuova riga delimitata da caratteri che specifica il percorso di destinazione in cui sono archiviati i file o le risorse scaricati. | Stringa | 

**Esempio di input: scarica il file remoto nella destinazione locale**

```
  - name: DownloadRemoteFile
    action: WebDownload
    maxAttempts: 3
    inputs:
      - source: https://testdomain/path/to/java14.zip
        destination: C:\testfolder\package.zip
```

**Output:**

```
{
	"destination": "C:\\testfolder\\package.zip"
}
```

**Esempio di input: scaricare più di un file remoto su più di una destinazione locale**

```
  - name: DownloadRemoteFiles
    action: WebDownload
    maxAttempts: 3
    inputs:
      - source: https://testdomain/path/to/java14.zip
        destination: /tmp/java14_renamed.zip
      - source: https://testdomain/path/to/java14.zip
        destination: /tmp/create_new_folder_and_add_java14_as_zip/
```

**Output:**

```
{
	"destination": "/tmp/create_new_folder/java14_renamed.zip\n/tmp/create_new_folder_and_add_java14_as_zip/java14.zip"
}
```

**Esempio di input: scarica un file remoto senza sovrascrivere la destinazione locale e scarica un altro file remoto con la verifica del file**

```
  - name: DownloadRemoteMultipleProperties
    action: WebDownload
    maxAttempts: 3
    inputs:
      - source: https://testdomain/path/to/java14.zip
        destination: C:\create_new_folder\java14_renamed.zip
        overwrite: false
      - source: https://testdomain/path/to/java14.zip
        destination: C:\create_new_folder_and_add_java14_as_zip\
        checksum: ac68bbf921d953d1cfab916cb6120864
        algorithm: MD5
        overwrite: true
```

**Output:**

```
{
	"destination": "C:\\create_new_folder\\java14_renamed.zip\nC:\\create_new_folder_and_add_java14_as_zip\\java14.zip"
}
```

**Esempio di input: scarica il file remoto e ignora la convalida della certificazione SSL**

```
  - name: DownloadRemoteIgnoreValidation
    action: WebDownload
    maxAttempts: 3
    inputs:
      - source: https://www.bad-ssl.com/resource
        destination: /tmp/downloads/
        ignoreCertificateErrors: true
```

**Output:**

```
{
	"destination": "/tmp/downloads/resource"
}
```

## Moduli operativi del file system
<a name="action-modules-file-system-operations"></a>

La sezione seguente contiene dettagli sui moduli di azione che eseguono operazioni sul file system.

**Topics**
+ [AppendFile (Linux, Windows, macOS)](#action-modules-appendfile)
+ [CopyFile (Linux, Windows, macOS)](#action-modules-copyfile)
+ [CopyFolder (Linux, Windows, macOS)](#action-modules-copyfolder)
+ [CreateFile (Linux, Windows, macOS)](#action-modules-createfile)
+ [CreateFolder (Linux, Windows, macOS)](#action-modules-createfolder)
+ [CreateSymlink (Linux, Windows, macOS)](#action-modules-createsymlink)
+ [DeleteFile (Linux, Windows, macOS)](#action-modules-deletefile)
+ [DeleteFolder (Linux, Windows, macOS)](#action-modules-deletefolder)
+ [ListFiles (Linux, Windows, macOS)](#action-modules-listfiles)
+ [MoveFile (Linux, Windows, macOS)](#action-modules-movefile)
+ [MoveFolder (Linux, Windows, macOS)](#action-modules-movefolder)
+ [ReadFile (Linux, Windows, macOS)](#action-modules-readfile)
+ [SetFileEncoding (Linux, Windows, macOS)](#action-modules-setfileencoding)
+ [SetFileOwner (Linux, Windows, macOS)](#action-modules-setfileowner)
+ [SetFolderOwner (Linux, Windows, macOS)](#action-modules-setfolderowner)
+ [SetFilePermissions (Linux, Windows, macOS)](#action-modules-setfilepermissions)
+ [SetFolderPermissions (Linux, Windows, macOS)](#action-modules-setfolderpermissions)

### AppendFile (Linux, Windows, macOS)
<a name="action-modules-appendfile"></a>

Il modulo di **AppendFile**azione aggiunge il contenuto specificato al contenuto preesistente di un file.

Se il valore di codifica del file è diverso dal valore di codifica predefinito (`utf-8`), è possibile specificare il valore di codifica del file utilizzando l'opzione. `encoding` Per impostazione predefinita, `utf-16` si presume che utilizzino la `utf-32` codifica little-endian. 

Il modulo di azione restituisce un errore quando si verifica quanto segue:
+ Il file specificato non esiste in fase di esecuzione.
+ Non disponi delle autorizzazioni di scrittura per modificare il contenuto del file.
+ Il modulo rileva un errore durante l'operazione sul file.


**Input**  

| Nome chiave | Description | Tipo | Richiesto | Valore predefinito | Valori accettabili | Supportato su tutte le piattaforme | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Il percorso del file. | Stringa | Sì | N/D | N/D | Sì | 
| content | Il contenuto da aggiungere al file. | Stringa | No | Stringa vuota | N/D | Sì | 
| encoding | Lo standard di codifica. | Stringa | No | utf8 | utf8,utf-8,utf16,utf-16,utf16-LE, utf-16-LE utf16-BEutf-16-BE,utf32,utf-32,utf32-LE, utf-32-LEutf32-BE, e utf-32-BE. Il valore dell'opzione di codifica non fa distinzione tra maiuscole e minuscole. | Sì | 

**Esempio di input: aggiungi file senza codifica (Linux)**

```
  - name: AppendingFileWithOutEncodingLinux
    action: AppendFile
    inputs:
      - path: ./Sample.txt
        content: "The string to be appended to the file"
```

**Esempio di input: aggiungi file senza codifica (Windows)**

```
  - name: AppendingFileWithOutEncodingWindows
    action: AppendFile
    inputs:
      - path: C:\MyFolder\MyFile.txt
        content: "The string to be appended to the file"
```

**Esempio di input: aggiungi file con codifica (Linux)**

```
  - name: AppendingFileWithEncodingLinux
    action: AppendFile
    inputs:
      - path: /FolderName/SampleFile.txt
        content: "The string to be appended to the file"
        encoding: UTF-32
```

**Esempio di input: aggiungi file con codifica (Windows)**

```
  - name: AppendingFileWithEncodingWindows
    action: AppendFile
    inputs:
      - path: C:\MyFolderName\SampleFile.txt
        content: "The string to be appended to the file"
        encoding: UTF-32
```

**Esempio di input: aggiungi un file con una stringa vuota (Linux)**

```
  - name: AppendingEmptyStringLinux
    action: AppendFile
    inputs:
      - path: /FolderName/SampleFile.txt
```

**Esempio di input: aggiungi un file con una stringa vuota (Windows)**

```
  - name: AppendingEmptyStringWindows
    action: AppendFile
    inputs:
      - path: C:\MyFolderName\SampleFile.txt
```

**Output**  
Nessuna.

### CopyFile (Linux, Windows, macOS)
<a name="action-modules-copyfile"></a>

Il modulo di **CopyFile**azione copia i file dall'origine specificata alla destinazione specificata. Per impostazione predefinita, il modulo crea in modo ricorsivo la cartella di destinazione se non esiste in fase di esecuzione.

Se un file con il nome specificato esiste già nella cartella specificata, il modulo di azione, per impostazione predefinita, sovrascrive il file esistente. È possibile ignorare questo comportamento predefinito impostando l'opzione di sovrascrittura su. `false` Quando l'opzione di sovrascrittura è impostata su e nella posizione specificata è già presente un file con il nome specificato, il modulo di azione restituirà un errore. `false` Questa opzione funziona come il `cp` comando in Linux, che per impostazione predefinita sovrascrive.

Il nome del file sorgente può includere un wildcard ()`*`. I caratteri jolly sono accettati solo dopo l'ultimo separatore di percorso del file (`/`o). `\` Se nel nome del file di origine sono inclusi caratteri jolly, tutti i file che corrispondono ai caratteri jolly vengono copiati nella cartella di destinazione. Se desiderate spostare più di un file utilizzando un carattere jolly, l'input dell'`destination`opzione deve terminare con un separatore del percorso del file (`/`o`\`), che indica che l'input di destinazione è una cartella.

Se il nome del file di destinazione è diverso dal nome del file di origine, è possibile specificare il nome del file di destinazione utilizzando l'`destination`opzione. Se non si specifica un nome di file di destinazione, il nome del file di origine viene utilizzato per creare il file di destinazione. Qualsiasi testo che segue il separatore (`/`o`\`) dell'ultimo percorso del file viene considerato come nome del file. Se si desidera utilizzare lo stesso nome di file del file di origine, l'input dell'`destination`opzione deve terminare con un separatore di percorso del file (`/`o`\`). 

Il modulo di azione restituisce un errore quando si verifica quanto segue:
+ Non sei autorizzato a creare un file nella cartella specificata.
+ I file di origine non esistono in fase di esecuzione.
+ Esiste già una cartella con il nome di file specificato e l'`overwrite`opzione è impostata su`false`.
+ Il modulo di azione rileva un errore durante l'esecuzione dell'operazione.


**Input**  

| Nome chiave | Description | Tipo | Richiesto | Valore predefinito | Valori accettabili | Supportato su tutte le piattaforme | 
| --- | --- | --- | --- | --- | --- | --- | 
| source | Il percorso del file sorgente. | Stringa | Sì | N/D | N/D | Sì | 
| destination | Il percorso del file di destinazione. | Stringa | Sì | N/D | N/D | Sì | 
| overwrite | Se impostato su false, i file di destinazione non verranno sostituiti quando nella posizione specificata è già presente un file con il nome specificato. | Boolean | No | true | N/D | Sì | 

**Esempio di input: copia un file (Linux)**

```
  - name: CopyingAFileLinux
    action: CopyFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/destinationFile.txt
```

**Esempio di input: copiare un file (Windows)**

```
  - name: CopyingAFileWindows
    action: CopyFile
    inputs:
      - source: C:\MyFolder\Sample.txt
        destination: C:\MyFolder\destinationFile.txt
```

**Esempio di input: copia un file usando il nome del file sorgente (Linux)**

```
  - name: CopyingFileWithSourceFileNameLinux
    action: CopyFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/
```

**Esempio di input: copiare un file utilizzando il nome del file sorgente (Windows)**

```
  - name: CopyingFileWithSourceFileNameWindows
    action: CopyFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder\
```

**Esempio di input: copia un file usando il carattere jolly (Linux)**

```
  - name: CopyingFilesWithWildCardLinux
    action: CopyFile
    inputs:
      - source: /Sample/MyFolder/Sample*
        destination: /MyFolder/
```

**Esempio di input: copia un file usando il carattere jolly (Windows)**

```
  - name: CopyingFilesWithWildCardWindows
    action: CopyFile
    inputs:
      - source: C:\Sample\MyFolder\Sample*
        destination: C:\MyFolder\
```

**Esempio di input: copiare un file senza sovrascriverlo (Linux)**

```
  - name: CopyingFilesWithoutOverwriteLinux
    action: CopyFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/destinationFile.txt
        overwrite: false
```

**Esempio di input: copiare un file senza sovrascriverlo (Windows)**

```
  - name: CopyingFilesWithoutOverwriteWindows
    action: CopyFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder\destinationFile.txt
        overwrite: false
```

**Output**  
Nessuna.

### CopyFolder (Linux, Windows, macOS)
<a name="action-modules-copyfolder"></a>

Il modulo di **CopyFolder**azione copia una cartella dall'origine specificata alla destinazione specificata. L'input per l'`source`opzione è la cartella da copiare e l'input per l'`destination`opzione è la cartella in cui viene copiato il contenuto della cartella di origine. Per impostazione predefinita, il modulo crea in modo ricorsivo la cartella di destinazione se non esiste in fase di esecuzione.

Se una cartella con il nome specificato esiste già nella cartella specificata, il modulo di azione, per impostazione predefinita, sovrascrive la cartella esistente. È possibile ignorare questo comportamento predefinito impostando l'opzione di sovrascrittura su. `false` Quando l'opzione di sovrascrittura è impostata su e nella posizione specificata è già presente una cartella con il nome specificato, il modulo di azione restituirà un errore. `false`

Il nome della cartella di origine può includere un carattere jolly ()`*`. I caratteri jolly sono accettati solo dopo l'ultimo separatore di percorso del file (`/`o). `\` Se nel nome della cartella di origine sono inclusi caratteri jolly, tutte le cartelle che corrispondono al carattere jolly vengono copiate nella cartella di destinazione. Se desiderate copiare più di una cartella utilizzando un carattere jolly, l'input dell'`destination`opzione deve terminare con un separatore del percorso del file (`/`o`\`), che indica che l'input di destinazione è una cartella.

Se il nome della cartella di destinazione è diverso dal nome della cartella di origine, è possibile specificare il nome della cartella di destinazione utilizzando l'`destination`opzione. Se non si specifica un nome per la cartella di destinazione, per creare la cartella di destinazione viene utilizzato il nome della cartella di origine. Qualsiasi testo che segue il separatore (`/`o`\`) dell'ultimo percorso del file viene considerato come nome della cartella. Se si desidera utilizzare lo stesso nome di cartella della cartella di origine, l'immissione dell'`destination`opzione deve terminare con un separatore del percorso del file (`/`o`\`). 

Il modulo di azione restituisce un errore quando si verifica quanto segue:
+ Non sei autorizzato a creare una cartella nella cartella specificata.
+ Le cartelle di origine non esistono in fase di esecuzione.
+ Esiste già una cartella con il nome specificato e l'`overwrite`opzione è impostata su`false`.
+ Il modulo di azione rileva un errore durante l'esecuzione dell'operazione.


**Input**  

| Nome chiave | Description | Tipo | Richiesto | Valore predefinito | Valori accettabili | Supportato su tutte le piattaforme | 
| --- | --- | --- | --- | --- | --- | --- | 
| source | Il percorso della cartella di origine. | Stringa | Sì | N/D | N/D | Sì | 
| destination | Il percorso della cartella di destinazione. | Stringa | Sì | N/D | N/D | Sì | 
| overwrite | Se impostato su false, le cartelle di destinazione non verranno sostituite se nella posizione specificata è già presente una cartella con il nome specificato. | Boolean | No | true | N/D | Sì | 

**Esempio di input: copia una cartella (Linux)**

```
  - name: CopyingAFolderLinux
    action: CopyFolder
    inputs:
      - source: /Sample/MyFolder/SampleFolder
        destination: /MyFolder/destinationFolder
```

**Esempio di input: copiare una cartella (Windows)**

```
  - name: CopyingAFolderWindows
    action: CopyFolder
    inputs:
      - source: C:\Sample\MyFolder\SampleFolder
        destination: C:\MyFolder\destinationFolder
```

**Esempio di input: copia una cartella usando il nome della cartella di origine (Linux)**

```
  - name: CopyingFolderSourceFolderNameLinux
    action: CopyFolder
    inputs:
      - source: /Sample/MyFolder/SourceFolder
        destination: /MyFolder/
```

**Esempio di input: copia una cartella usando il nome della cartella di origine (Windows)**

```
  - name: CopyingFolderSourceFolderNameWindows
    action: CopyFolder
    inputs:
      - source: C:\Sample\MyFolder\SampleFolder
        destination: C:\MyFolder\
```

**Esempio di input: copia una cartella usando il carattere jolly (Linux)**

```
  - name: CopyingFoldersWithWildCardLinux
    action: CopyFolder
    inputs:
      - source: /Sample/MyFolder/Sample*
        destination: /MyFolder/
```

**Esempio di input: copia una cartella usando il carattere jolly (Windows)**

```
  - name: CopyingFoldersWithWildCardWindows
    action: CopyFolder
    inputs:
      - source: C:\Sample\MyFolder\Sample*
        destination: C:\MyFolder\
```

**Esempio di input: copia una cartella senza sovrascriverla (Linux)**

```
  - name: CopyingFoldersWithoutOverwriteLinux
    action: CopyFolder
    inputs:
      - source: /Sample/MyFolder/SourceFolder
        destination: /MyFolder/destinationFolder
        overwrite: false
```

**Esempio di input: copiare una cartella senza sovrascriverla (Windows)**

```
  - name: CopyingFoldersWithoutOverwrite
    action: CopyFolder
    inputs:
      - source: C:\Sample\MyFolder\SourceFolder
        destination: C:\MyFolder\destinationFolder
        overwrite: false
```

**Output**  
Nessuna.

### CreateFile (Linux, Windows, macOS)
<a name="action-modules-createfile"></a>

Il modulo di **CreateFile**azione crea un file in una posizione specificata. Per impostazione predefinita, se necessario, il modulo crea anche in modo ricorsivo le cartelle principali.

Se il file esiste già nella cartella specificata, il modulo di azione, per impostazione predefinita, tronca o sovrascrive il file esistente. È possibile ignorare questo comportamento predefinito impostando l'opzione di sovrascrittura su. `false` Quando l'opzione di sovrascrittura è impostata su e nella posizione specificata è già presente un file con il nome specificato, il modulo di azione restituirà un errore. `false`

Se il valore di codifica del file è diverso dal valore di codifica predefinito (`utf-8`), è possibile specificare il valore di codifica del file utilizzando l'opzione. `encoding` Per impostazione predefinita, `utf-16` si presume che utilizzino la `utf-32` codifica little-endian. 

`owner`, e sono ingressi `group` opzionali. `permissions` L'input per `permissions` deve essere un valore di stringa. I file vengono creati con valori predefiniti quando non vengono forniti. Queste opzioni non sono supportate sulle piattaforme Windows. Questo modulo di azione convalida e restituisce un errore se le `permissions` opzioni `owner``group`, e vengono utilizzate sulle piattaforme Windows.

Questo modulo di azione può creare un file con autorizzazioni definite dal `umask` valore predefinito del sistema operativo. È necessario impostare il `umask` valore se si desidera sovrascrivere il valore predefinito.

Il modulo di azione restituisce un errore quando si verifica quanto segue:
+ Non sei autorizzato a creare un file o una cartella nella cartella principale specificata.
+ Il modulo di azione rileva un errore durante l'esecuzione dell'operazione.


**Input**  

| Nome chiave | Description | Tipo | Richiesto | Valore predefinito | Valori accettabili | Supportato su tutte le piattaforme | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Il percorso del file. | Stringa | Sì | N/D | N/D | Sì | 
| content | Il contenuto testuale del file. | Stringa | No | N/D | N/D | Sì | 
| encoding | Lo standard di codifica. | Stringa | No | utf8 | utf8,utf-8,utf16,utf-16,utf16-LE, utf-16-LE utf16-BEutf-16-BE,utf32,utf-32,utf32-LE, utf-32-LEutf32-BE, e utf-32-BE. Il valore dell'opzione di codifica non fa distinzione tra maiuscole e minuscole. | Sì | 
| owner | Il nome utente o l'ID. | Stringa | No | N/D | N/D | Non supportato su Windows. | 
| group | Il nome o l'ID del gruppo. | Stringa | No | L'utente corrente. | N/D | Non supportato su Windows. | 
| permissions | Le autorizzazioni relative ai file. | Stringa | No | 0666 | N/D | Non supportato su Windows. | 
| overwrite | Se il nome del file specificato esiste già, impostando questo valore per false evitare che il file venga troncato o sovrascritto per impostazione predefinita. | Boolean | No | true | N/D | Sì | 

**Esempio di input: crea un file senza sovrascrivere (Linux)**

```
  - name: CreatingFileWithoutOverwriteLinux
    action: CreateFile
    inputs:
      - path: /home/UserName/Sample.txt
        content: The text content of the sample file.
        overwrite: false
```

**Esempio di input: crea un file senza sovrascrivere (Windows)**

```
  - name: CreatingFileWithoutOverwriteWindows
    action: CreateFile
    inputs:
      - path: C:\Temp\Sample.txt
        content: The text content of the sample file.
        overwrite: false
```

**Esempio di input: creare un file con le proprietà del file**

```
  - name: CreatingFileWithFileProperties
    action: CreateFile
    inputs:
      - path: SampleFolder/Sample.txt
        content: The text content of the sample file.
        encoding: UTF-16
        owner: Ubuntu
        group: UbuntuGroup
        permissions: 0777
     - path: SampleFolder/SampleFile.txt
        permissions: 755
      - path: SampleFolder/TextFile.txt
        encoding: UTF-16
        owner: root
        group: rootUserGroup
```

**Esempio di input: creare un file senza proprietà del file**

```
  - name: CreatingFileWithoutFileProperties
    action: CreateFile
    inputs:
      - path: ./Sample.txt
      - path: Sample1.txt
```

**Esempio di input: crea un file vuoto per saltare una sezione dello script di pulizia di Linux**

```
  - name: CreateSkipCleanupfile
    action: CreateFile
    inputs:
      - path: <skip section file name>
```

Per ulteriori informazioni, consulta [Sostituisci lo script di pulizia di Linux](security-best-practices.md#override-linux-cleanup-script)

**Output**  
Nessuna.

### CreateFolder (Linux, Windows, macOS)
<a name="action-modules-createfolder"></a>

Il modulo di **CreateFolder**azione crea una cartella in una posizione specificata. Per impostazione predefinita, se necessario, il modulo crea anche in modo ricorsivo le cartelle principali.

Se la cartella esiste già nella cartella specificata, il modulo di azione, per impostazione predefinita, tronca o sovrascrive la cartella esistente. È possibile ignorare questo comportamento predefinito impostando l'opzione di sovrascrittura su. `false` Quando l'opzione di sovrascrittura è impostata su e nella posizione specificata è già presente una cartella con il nome specificato, il modulo di azione restituirà un errore. `false`

`owner``group`, e `permissions` sono input opzionali. L'input per `permissions` deve essere un valore di stringa. Queste opzioni non sono supportate sulle piattaforme Windows. Questo modulo di azione convalida e restituisce un errore se le `permissions` opzioni `owner``group`, e vengono utilizzate sulle piattaforme Windows.

Questo modulo di azione può creare una cartella con autorizzazioni definite dal `umask` valore predefinito del sistema operativo. È necessario impostare il `umask` valore se si desidera sovrascrivere il valore predefinito.

Il modulo di azione restituisce un errore quando si verifica quanto segue:
+ Non sei autorizzato a creare una cartella nella posizione specificata.
+ Il modulo di azione rileva un errore durante l'esecuzione dell'operazione.


**Input**  

| Nome chiave | Description | Tipo | Richiesto | Valore predefinito | Valori accettabili | Supportato su tutte le piattaforme | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Il percorso della cartella. | Stringa | Sì | N/D | N/D | Sì | 
| owner | Il nome utente o l'ID. | Stringa | No | L'utente corrente. | N/D | Non supportato su Windows. | 
| group | Il nome o l'ID del gruppo. | Stringa | No | Il gruppo dell'utente corrente. | N/D | Non supportato su Windows. | 
| permissions | Le autorizzazioni della cartella. | Stringa | No | 0777 | N/D | Non supportato su Windows. | 
| overwrite | Se il nome del file specificato esiste già, impostando questo valore per false evitare che il file venga troncato o sovrascritto per impostazione predefinita. | Boolean | No | true | N/D | Sì | 

**Esempio di input: creare una cartella (Linux)**

```
  - name: CreatingFolderLinux
    action: CreateFolder
    inputs:
      - path: /Sample/MyFolder/
```

**Esempio di input: creare una cartella (Windows)**

```
  - name: CreatingFolderWindows
    action: CreateFolder
    inputs:
      - path: C:\MyFolder
```

**Esempio di input: creare una cartella specificando le proprietà della cartella**

```
  - name: CreatingFolderWithFolderProperties
    action: CreateFolder
    inputs:
      - path: /Sample/MyFolder/Sample/
        owner: SampleOwnerName
        group: SampleGroupName
        permissions: 0777
      - path: /Sample/MyFolder/SampleFoler/
        permissions: 777
```

**Esempio di input: crea una cartella che sovrascriva la cartella esistente, se presente.**

```
  - name: CreatingFolderWithOverwrite
    action: CreateFolder
    inputs:
      - path: /Sample/MyFolder/Sample/
        overwrite: true
```

**Output**  
Nessuna.

### CreateSymlink (Linux, Windows, macOS)
<a name="action-modules-createsymlink"></a>

Il modulo di **CreateSymlink**azione crea collegamenti simbolici o file che contengono un riferimento a un altro file. Questo modulo non è supportato sulle piattaforme Windows. 

L'input per le `target` opzioni `path` and può essere un percorso assoluto o relativo. Se l'input per l'`path`opzione è un percorso relativo, viene sostituito con il percorso assoluto al momento della creazione del collegamento.

Per impostazione predefinita, quando un link con il nome specificato esiste già nella cartella specificata, il modulo di azione restituisce un errore. È possibile ignorare questo comportamento predefinito impostando l'`force`opzione su`true`. Quando l'`force`opzione è impostata su`true`, il modulo sovrascriverà il link esistente.

Se non esiste una cartella principale, il modulo di azione crea la cartella in modo ricorsivo, per impostazione predefinita.

Il modulo di azione restituisce un errore quando si verifica quanto segue:
+ Il file di destinazione non esiste in fase di esecuzione.
+ Esiste già un file di collegamento non simbolico con il nome specificato.
+ Il modulo di azione rileva un errore durante l'esecuzione dell'operazione.


**Input**  

| Nome chiave | Description | Tipo | Richiesto | Valore predefinito | Valori accettabili | Supportato su tutte le piattaforme | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Il percorso del file. | Stringa | Sì | N/D | N/D | Non supportato su Windows. | 
| target | Il percorso del file di destinazione a cui punta il link simbolico. | Stringa | Sì | N/D | N/D | Non supportato in Windows. | 
| force | Forza la creazione di un collegamento quando esiste già un collegamento con lo stesso nome. | Boolean | No | false | N/D | Non supportato in Windows. | 

**Esempio di input: crea un link simbolico che forza la creazione di un link**

```
  - name: CreatingSymbolicLinkWithForce
    action: CreateSymlink
    inputs:
      - path: /Folder2/Symboliclink.txt
        target: /Folder/Sample.txt
        force: true
```

**Esempio di input: crea un link simbolico che non imponga la creazione di un link**

```
  - name: CreatingSymbolicLinkWithOutForce
    action: CreateSymlink
    inputs:
      - path: Symboliclink.txt
        target: /Folder/Sample.txt
```

**Output**  
Nessuna.

### DeleteFile (Linux, Windows, macOS)
<a name="action-modules-deletefile"></a>

Il modulo di **DeleteFile**azione elimina uno o più file in una posizione specificata.

L'input di `path` deve essere un percorso di file valido o un percorso di file con un carattere wild card (`*`) nel nome del file. Quando nel nome del file vengono specificati caratteri jolly, tutti i file all'interno della stessa cartella che corrispondono al carattere jolly verranno eliminati. 

Il modulo di azione restituisce un errore quando si verifica quanto segue:
+ Non sei autorizzato a eseguire operazioni di eliminazione.
+ Il modulo di azione rileva un errore durante l'esecuzione dell'operazione.


**Input**  

| Nome chiave | Description | Tipo | Richiesto | Valore predefinito | Valori accettabili | Supportato su tutte le piattaforme | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Il percorso del file. | Stringa | Sì | N/D | N/D | Sì | 

**Esempio di input: eliminare un singolo file (Linux)**

```
  - name: DeletingSingleFileLinux
    action: DeleteFile
    inputs:
      - path: /SampleFolder/MyFolder/Sample.txt
```

**Esempio di input: eliminare un singolo file (Windows)**

```
  - name: DeletingSingleFileWindows
    action: DeleteFile
    inputs:
      - path: C:\SampleFolder\MyFolder\Sample.txt
```

**Esempio di input: elimina un file che termina con «log» (Linux)**

```
  - name: DeletingFileEndingWithLogLinux
    action: DeleteFile
    inputs:
      - path: /SampleFolder/MyFolder/*log
```

**Esempio di input: eliminare un file che termina con «log» (Windows)**

```
  - name: DeletingFileEndingWithLogWindows
    action: DeleteFile
    inputs:
      - path: C:\SampleFolder\MyFolder\*log
```

**Esempio di input: elimina tutti i file in una cartella specificata (Linux)**

```
  - name: DeletingAllFilesInAFolderLinux
    action: DeleteFile
    inputs:
      - path: /SampleFolder/MyFolder/*
```

**Esempio di input: elimina tutti i file in una cartella specificata (Windows)**

```
  - name: DeletingAllFilesInAFolderWindows
    action: DeleteFile
    inputs:
      - path: C:\SampleFolder\MyFolder\*
```

**Output**  
Nessuna.

### DeleteFolder (Linux, Windows, macOS)
<a name="action-modules-deletefolder"></a>

Il modulo di **DeleteFolder**azione elimina le cartelle.

Se la cartella non è vuota, è necessario impostare l'`force`opzione per `true` rimuovere la cartella e il suo contenuto. Se non si imposta l'`force`opzione su e la cartella che si sta tentando di eliminare non è vuota, il modulo di azione restituisce un errore. `true` Il valore predefinito dell'`force`opzione è`false`.

Il modulo di azione restituisce un errore quando si verifica quanto segue:
+ Non sei autorizzato a eseguire operazioni di eliminazione.
+ Il modulo di azione rileva un errore durante l'esecuzione dell'operazione.


**Input**  

| Nome chiave | Description | Tipo | Richiesto | Valore predefinito | Valori accettabili | Supportato su tutte le piattaforme | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Il percorso della cartella. | Stringa | Sì | N/D | N/D | Sì | 
| force | Rimuove la cartella indipendentemente dal fatto che sia vuota o meno. | Boolean | No | false | N/D | Sì | 

**Esempio di input: elimina una cartella che non è vuota usando l'`force`opzione (Linux)** 

```
  - name: DeletingFolderWithForceOptionLinux
    action: DeleteFolder
    inputs:
      - path: /Sample/MyFolder/Sample/
        force: true
```

**Esempio di input: elimina una cartella che non è vuota usando l'`force`opzione (Windows)** 

```
  - name: DeletingFolderWithForceOptionWindows
    action: DeleteFolder
    inputs:
      - path: C:\Sample\MyFolder\Sample\
        force: true
```

**Esempio di input: eliminare una cartella (Linux)** 

```
  - name: DeletingFolderWithOutForceLinux
    action: DeleteFolder
    inputs:
      - path: /Sample/MyFolder/Sample/
```

**Esempio di input: eliminare una cartella (Windows)** 

```
  - name: DeletingFolderWithOutForce
    action: DeleteFolder
    inputs:
      - path: C:\Sample\MyFolder\Sample\
```

**Output**  
Nessuna.

### ListFiles (Linux, Windows, macOS)
<a name="action-modules-listfiles"></a>

Il modulo di **ListFiles**azione elenca i file in una cartella specificata. Quando l'opzione ricorsiva è impostata su`true`, elenca i file nelle sottocartelle. Per impostazione predefinita, questo modulo non elenca i file nelle sottocartelle.

Per elencare tutti i file con nomi che corrispondono a uno schema specificato, utilizzate l'`fileNamePattern`opzione per fornire il modello. L'`fileNamePattern`opzione accetta il valore wildcard (`*`). Quando `fileNamePattern` viene fornito, vengono restituiti tutti i file che corrispondono al formato del nome file specificato. 

Il modulo di azione restituisce un errore quando si verifica quanto segue:
+ La cartella specificata non esiste in fase di esecuzione.
+ Non sei autorizzato a creare un file o una cartella nella cartella principale specificata.
+ Il modulo di azione rileva un errore durante l'esecuzione dell'operazione.


**Input**  

| Nome chiave | Description | Tipo | Richiesto | Valore predefinito | Valori accettabili | Supportato su tutte le piattaforme | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Il percorso della cartella. | Stringa | Sì | N/D | N/D | Sì | 
| fileNamePattern | Lo schema a cui abbinare elenca tutti i file con nomi che corrispondono al modello. | Stringa | No | N/D | N/D | Sì | 
| recursive | Elenca i file nella cartella in modo ricorsivo. | Boolean | No | false | N/D | Sì | 

**Esempio di input: elenca i file nella cartella specificata (Linux)**

```
  - name: ListingFilesInSampleFolderLinux
    action: ListFiles
    inputs:
      - path: /Sample/MyFolder/Sample
```

**Esempio di input: elenca i file nella cartella specificata (Windows)**

```
  - name: ListingFilesInSampleFolderWindows
    action: ListFiles
    inputs:
      - path: C:\Sample\MyFolder\Sample
```

**Esempio di input: elenca i file che terminano con «log» (Linux)**

```
  - name: ListingFilesWithEndingWithLogLinux
    action: ListFiles
    inputs:
      - path: /Sample/MyFolder/
        fileNamePattern: *log
```

**Esempio di input: elenca i file che terminano con «log» (Windows)**

```
  - name: ListingFilesWithEndingWithLogWindows
    action: ListFiles
    inputs:
      - path: C:\Sample\MyFolder\
        fileNamePattern: *log
```

**Esempio di input: elenca i file in modo ricorsivo**

```
  - name: ListingFilesRecursively
    action: ListFiles
    inputs:
      - path: /Sample/MyFolder/
        recursive: true
```


**Output**  

| Nome chiave | Description | Tipo | 
| --- | --- | --- | 
| files | L'elenco dei file. | Stringa | 

**Esempio di output**

```
{
	"files": "/sample1.txt,/sample2.txt,/sample3.txt"
}
```

### MoveFile (Linux, Windows, macOS)
<a name="action-modules-movefile"></a>

Il modulo di **MoveFile**azione sposta i file dall'origine specificata alla destinazione specificata.

Se il file esiste già nella cartella specificata, il modulo di azione, per impostazione predefinita, sovrascrive il file esistente. È possibile ignorare questo comportamento predefinito impostando l'opzione di sovrascrittura su. `false` Quando l'opzione di sovrascrittura è impostata su e nella posizione specificata è già presente un file con il nome specificato, il modulo di azione restituirà un errore. `false` Questa opzione funziona come il `mv` comando in Linux, che per impostazione predefinita sovrascrive.

Il nome del file sorgente può includere un wildcard ()`*`. I caratteri jolly sono accettati solo dopo l'ultimo separatore di percorso del file (`/`o). `\` Se nel nome del file di origine sono inclusi caratteri jolly, tutti i file che corrispondono ai caratteri jolly vengono copiati nella cartella di destinazione. Se desiderate spostare più di un file utilizzando un carattere jolly, l'input dell'`destination`opzione deve terminare con un separatore del percorso del file (`/`o`\`), che indica che l'input di destinazione è una cartella.

Se il nome del file di destinazione è diverso dal nome del file di origine, è possibile specificare il nome del file di destinazione utilizzando l'`destination`opzione. Se non si specifica un nome di file di destinazione, il nome del file di origine viene utilizzato per creare il file di destinazione. Qualsiasi testo che segue il separatore (`/`o`\`) dell'ultimo percorso del file viene considerato come nome del file. Se si desidera utilizzare lo stesso nome di file del file di origine, l'input dell'`destination`opzione deve terminare con un separatore di percorso del file (`/`o`\`). 

Il modulo di azione restituisce un errore quando si verifica quanto segue:
+ Non sei autorizzato a creare un file nella cartella specificata.
+ I file di origine non esistono in fase di esecuzione.
+ Esiste già una cartella con il nome di file specificato e l'`overwrite`opzione è impostata su`false`.
+ Il modulo di azione rileva un errore durante l'esecuzione dell'operazione.


**Input**  

| Nome chiave | Description | Tipo | Richiesto | Valore predefinito | Valori accettabili | Supportato su tutte le piattaforme | 
| --- | --- | --- | --- | --- | --- | --- | 
| source | Il percorso del file sorgente. | Stringa | Sì | N/D | N/D | Sì | 
| destination | Il percorso del file di destinazione. | Stringa | Sì | N/D | N/D | Sì | 
| overwrite | Se impostato su false, i file di destinazione non verranno sostituiti quando nella posizione specificata è già presente un file con il nome specificato. | Boolean | No | true | N/D | Sì | 

**Esempio di input: sposta un file (Linux)**

```
  - name: MovingAFileLinux
    action: MoveFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/destinationFile.txt
```

**Esempio di input: sposta un file (Windows)**

```
  - name: MovingAFileWindows
    action: MoveFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder\destinationFile.txt
```

**Esempio di input: sposta un file usando il nome del file sorgente (Linux)**

```
  - name: MovingFileWithSourceFileNameLinux
    action: MoveFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/
```

**Esempio di input: sposta un file usando il nome del file sorgente (Windows)**

```
  - name: MovingFileWithSourceFileNameWindows
    action: MoveFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder
```

**Esempio di input: sposta un file usando un carattere jolly (Linux)**

```
  - name: MovingFilesWithWildCardLinux
    action: MoveFile
    inputs:
      - source: /Sample/MyFolder/Sample*
        destination: /MyFolder/
```

**Esempio di input: sposta un file usando un carattere jolly (Windows)**

```
  - name: MovingFilesWithWildCardWindows
    action: MoveFile
    inputs:
      - source: C:\Sample\MyFolder\Sample*
        destination: C:\MyFolder
```

**Esempio di input: sposta un file senza sovrascriverlo (Linux)**

```
  - name: MovingFilesWithoutOverwriteLinux
    action: MoveFile
    inputs:
      - source: /Sample/MyFolder/Sample.txt
        destination: /MyFolder/destinationFile.txt
        overwrite: false
```

**Esempio di input: sposta un file senza sovrascriverlo (Windows)**

```
  - name: MovingFilesWithoutOverwrite
    action: MoveFile
    inputs:
      - source: C:\Sample\MyFolder\Sample.txt
        destination: C:\MyFolder\destinationFile.txt
        overwrite: false
```

**Output**  
Nessuna.

### MoveFolder (Linux, Windows, macOS)
<a name="action-modules-movefolder"></a>

Il modulo di **MoveFolder**azione sposta le cartelle dall'origine specificata alla destinazione specificata. L'input dell'`source`opzione è la cartella da spostare e l'input dell'`destination`opzione è la cartella in cui viene spostato il contenuto delle cartelle di origine.

Se la cartella principale di destinazione o l'input dell'`destination`opzione non esiste in fase di esecuzione, il comportamento predefinito del modulo consiste nel creare ricorsivamente la cartella nella destinazione specificata.

Se una cartella con la stessa cartella di origine esiste già nella cartella di destinazione, il modulo di azione, per impostazione predefinita, sovrascrive la cartella esistente. È possibile ignorare questo comportamento predefinito impostando l'opzione di sovrascrittura su. `false` Quando l'opzione di sovrascrittura è impostata su e nella posizione specificata è già presente una cartella con il nome specificato, il modulo di azione restituirà un errore. `false`

Il nome della cartella di origine può includere un carattere jolly ()`*`. I caratteri jolly sono accettati solo dopo l'ultimo separatore di percorso del file (`/`o). `\` Se nel nome della cartella di origine sono inclusi caratteri jolly, tutte le cartelle che corrispondono al carattere jolly vengono copiate nella cartella di destinazione. Se desiderate spostare più di una cartella utilizzando un carattere jolly, l'input dell'`destination`opzione deve terminare con un separatore del percorso del file (`/`o`\`), che indica che l'input di destinazione è una cartella.

Se il nome della cartella di destinazione è diverso dal nome della cartella di origine, è possibile specificare il nome della cartella di destinazione utilizzando l'`destination`opzione. Se non si specifica un nome per la cartella di destinazione, per creare la cartella di destinazione viene utilizzato il nome della cartella di origine. Qualsiasi testo che segue il separatore (`/`o`\`) dell'ultimo percorso del file viene considerato come nome della cartella. Se si desidera utilizzare lo stesso nome di cartella della cartella di origine, l'immissione dell'`destination`opzione deve terminare con un separatore del percorso del file (`/`o`\`). 

Il modulo di azione restituisce un errore quando si verifica quanto segue:
+ Non sei autorizzato a creare una cartella nella cartella di destinazione.
+ Le cartelle di origine non esistono in fase di esecuzione.
+ Esiste già una cartella con il nome specificato e l'`overwrite`opzione è impostata su`false`.
+ Il modulo di azione rileva un errore durante l'esecuzione dell'operazione.


**Input**  

| Nome chiave | Description | Tipo | Richiesto | Valore predefinito | Valori accettabili | Supportato su tutte le piattaforme | 
| --- | --- | --- | --- | --- | --- | --- | 
| source | Il percorso della cartella di origine. | Stringa | Sì | N/D | N/D | Sì | 
| destination | Il percorso della cartella di destinazione. | Stringa | Sì | N/D | N/D | Sì | 
| overwrite | Se impostato su false, le cartelle di destinazione non verranno sostituite se nella posizione specificata è già presente una cartella con il nome specificato. | Boolean | No | true | N/D | Sì | 

**Esempio di input: sposta una cartella (Linux)**

```
  - name: MovingAFolderLinux
    action: MoveFolder
    inputs:
      - source: /Sample/MyFolder/SourceFolder
        destination: /MyFolder/destinationFolder
```

**Esempio di input: sposta una cartella (Windows)**

```
  - name: MovingAFolderWindows
    action: MoveFolder
    inputs:
      - source: C:\Sample\MyFolder\SourceFolder
        destination: C:\MyFolder\destinationFolder
```

**Esempio di input: sposta una cartella usando il nome della cartella di origine (Linux)**

```
  - name: MovingFolderWithSourceFolderNameLinux
    action: MoveFolder
    inputs:
      - source: /Sample/MyFolder/SampleFolder
        destination: /MyFolder/
```

**Esempio di input: sposta una cartella usando il nome della cartella di origine (Windows)**

```
  - name: MovingFolderWithSourceFolderNameWindows
    action: MoveFolder
    inputs:
      - source: C:\Sample\MyFolder\SampleFolder
        destination: C:\MyFolder\
```

**Esempio di input: sposta una cartella usando un carattere jolly (Linux)**

```
  - name: MovingFoldersWithWildCardLinux
    action: MoveFolder
    inputs:
      - source: /Sample/MyFolder/Sample*
        destination: /MyFolder/
```

**Esempio di input: sposta una cartella usando un carattere jolly (Windows)**

```
  - name: MovingFoldersWithWildCardWindows
    action: MoveFolder
    inputs:
      - source: C:\Sample\MyFolder\Sample*
        destination: C:\MyFolder\
```

**Esempio di input: sposta una cartella senza sovrascriverla (Linux)**

```
  - name: MovingFoldersWithoutOverwriteLinux
    action: MoveFolder
    inputs:
      - source: /Sample/MyFolder/SampleFolder
    destination: /MyFolder/destinationFolder
    overwrite: false
```

**Esempio di input: sposta una cartella senza sovrascriverla (Windows)**

```
  - name: MovingFoldersWithoutOverwriteWindows
    action: MoveFolder
    inputs:
      - source: C:\Sample\MyFolder\SampleFolder
        destination: C:\MyFolder\destinationFolder
        overwrite: false
```

**Output**  
Nessuna.

### ReadFile (Linux, Windows, macOS)
<a name="action-modules-readfile"></a>

Il modulo di **ReadFile**azione legge il contenuto di un file di testo di tipo string. Questo modulo può essere utilizzato per leggere il contenuto di un file da utilizzare nei passaggi successivi tramite concatenamento o per leggere i dati nel `console.log` file. Se il percorso specificato è un collegamento simbolico, questo modulo restituisce il contenuto del file di destinazione. Questo modulo supporta solo file di testo.

Se il valore di codifica del file è diverso dal valore di codifica predefinito (`utf-8`), è possibile specificare il valore di codifica del file utilizzando l'opzione. `encoding` Per impostazione predefinita, `utf-16` si presume che utilizzino la `utf-32` codifica little-endian. 

Per impostazione predefinita, questo modulo non può stampare il contenuto del file sul file. `console.log` È possibile ignorare questa impostazione impostando la `printFileContent` proprietà su`true`.

Questo modulo può restituire solo il contenuto di un file. Non può analizzare file, come file Excel o JSON.

Il modulo di azione restituisce un errore quando si verifica quanto segue:
+ Il file non esiste in fase di esecuzione.
+ Il modulo di azione rileva un errore durante l'esecuzione dell'operazione.


**Input**  

| Nome chiave | Description | Tipo | Richiesto | Valore predefinito | Valori accettabili | Supportato su tutte le piattaforme | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Il percorso del file. | Stringa | Sì | N/D | N/D | Sì | 
| encoding | Lo standard di codifica. | Stringa | No | utf8 | utf8,utf-8,utf16,utf-16,utf16-LE, utf-16-LE utf16-BEutf-16-BE,utf32,utf-32,utf32-LE, utf-32-LEutf32-BE, e utf-32-BE. Il valore dell'opzione di codifica non fa distinzione tra maiuscole e minuscole. | Sì | 
| printFileContent | Stampa il contenuto del file sul file. console.log | Boolean | No | false | N/D | Sì. | 

**Esempio di input: lettura di un file (Linux)**

```
  - name: ReadingFileLinux
    action: ReadFile
    inputs:
      - path: /home/UserName/SampleFile.txt
```

**Esempio di input: leggere un file (Windows)**

```
  - name: ReadingFileWindows
    action: ReadFile
    inputs:
      - path: C:\Windows\WindowsUpdate.log
```

**Esempio di input: leggere un file e specificare lo standard di codifica**

```
  - name: ReadingFileWithFileEncoding
    action: ReadFile
    inputs:
      - path: /FolderName/SampleFile.txt
        encoding: UTF-32
```

**Esempio di input: leggere un file e stampare sul `console.log` file**

```
  - name: ReadingFileToConsole
    action: ReadFile
    inputs:
      - path: /home/UserName/SampleFile.txt
        printFileContent: true
```


**Output**  

| Campo | Description | Tipo | 
| --- | --- | --- | 
| content | Il contenuto del file. | stringa | 

**Esempio di output**

```
{
	"content" : "The file content"
}
```

### SetFileEncoding (Linux, Windows, macOS)
<a name="action-modules-setfileencoding"></a>

Il modulo di **SetFileEncoding**azione modifica la proprietà di codifica di un file esistente. Questo modulo può convertire la codifica dei file da uno standard `utf-8` di codifica specificato. Per impostazione predefinita, `utf-16` si presume che sia una codifica little-endian. `utf-32`

Il modulo di azione restituisce un errore quando si verifica quanto segue:
+ Non sei autorizzato a eseguire la modifica specificata.
+ Il file non esiste in fase di esecuzione.
+ Il modulo di azione rileva un errore durante l'esecuzione dell'operazione.


**Input**  

| Nome chiave | Description | Tipo | Richiesto | Valore predefinito | Valori accettabili | Supportato su tutte le piattaforme | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Il percorso del file. | Stringa | Sì | N/D | N/D | Sì | 
| encoding | Lo standard di codifica. | Stringa | No | utf8 | utf8,utf-8,utf16,utf-16,utf16-LE, utf-16-LE utf16-BEutf-16-BE,utf32,utf-32,utf32-LE, utf-32-LEutf32-BE, e utf-32-BE. Il valore dell'opzione di codifica non fa distinzione tra maiuscole e minuscole. | Sì | 

**Esempio di input: imposta la proprietà di codifica del file**

```
  - name: SettingFileEncodingProperty
    action: SetFileEncoding
    inputs:
      - path: /home/UserName/SampleFile.txt
        encoding: UTF-16
```

**Output**  
Nessuna.

### SetFileOwner (Linux, Windows, macOS)
<a name="action-modules-setfileowner"></a>

Il modulo di **SetFileOwner**azione modifica le proprietà `owner` e il `group` proprietario di un file esistente. Se il file specificato è un collegamento simbolico, il modulo modifica la `owner` proprietà del file sorgente. Questo modulo non è supportato sulle piattaforme Windows. 

Questo modulo accetta nomi di utenti e gruppi come input. Se il nome del gruppo non viene fornito, il modulo assegna il proprietario del gruppo del file al gruppo a cui appartiene l'utente.

Il modulo di azione restituisce un errore quando si verifica quanto segue:
+ Non sei autorizzato a eseguire la modifica specificata.
+ Il nome utente o gruppo specificato non esiste in fase di esecuzione.
+ Il file non esiste in fase di esecuzione.
+ Il modulo di azione rileva un errore durante l'esecuzione dell'operazione.


**Input**  

| Nome chiave | Description | Tipo | Richiesto | Valore predefinito | Valori accettabili | Supportato su tutte le piattaforme | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Il percorso del file. | Stringa | Sì | N/D | N/D | Non supportato su Windows. | 
| owner | Il nome utente. | stringa | Sì | N/D | N/D | Non supportato su Windows. | 
| group | Il nome del gruppo di utenti. | Stringa | No | Il nome del gruppo a cui appartiene l'utente. | N/D | Non supportato su Windows. | 

**Esempio di input: imposta la proprietà del proprietario del file senza specificare il nome del gruppo di utenti**

```
  - name: SettingFileOwnerPropertyNoGroup
    action: SetFileOwner
    inputs:
      - path: /home/UserName/SampleText.txt
        owner: LinuxUser
```

**Esempio di input: imposta la proprietà del proprietario del file specificando il proprietario e il gruppo di utenti**

```
  - name: SettingFileOwnerProperty
    action: SetFileOwner
    inputs:
      - path: /home/UserName/SampleText.txt
        owner: LinuxUser
        group: LinuxUserGroup
```

**Output**  
Nessuna.

### SetFolderOwner (Linux, Windows, macOS)
<a name="action-modules-setfolderowner"></a>

Il modulo di **SetFolderOwner**azione modifica in modo ricorsivo le proprietà `owner` e il `group` proprietario di una cartella esistente. Per impostazione predefinita, il modulo può modificare la proprietà di tutti i contenuti di una cartella. È possibile impostare l'`recursive`opzione per `false` ignorare questo comportamento. Questo modulo non è supportato sulle piattaforme Windows. 

Questo modulo accetta nomi di utenti e gruppi come input. Se il nome del gruppo non viene fornito, il modulo assegna il proprietario del gruppo del file al gruppo a cui appartiene l'utente.

Il modulo di azione restituisce un errore quando si verifica quanto segue:
+ Non sei autorizzato a eseguire la modifica specificata.
+ Il nome utente o gruppo specificato non esiste in fase di esecuzione.
+ La cartella non esiste in fase di esecuzione.
+ Il modulo di azione rileva un errore durante l'esecuzione dell'operazione.


**Input**  

| Nome chiave | Description | Tipo | Richiesto | Valore predefinito | Valori accettabili | Supportato su tutte le piattaforme | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Il percorso della cartella. | Stringa | Sì | N/D | N/D | Non supportato su Windows. | 
| owner | Il nome utente. | stringa | Sì | N/D | N/D | Non supportato su Windows. | 
| group | Il nome del gruppo di utenti. | Stringa | No | Il nome del gruppo a cui appartiene l'utente. | N/D | Non supportato su Windows. | 
| recursive | Sostituisce il comportamento predefinito di modifica della proprietà di tutto il contenuto di una cartella quando è impostato su. false | Boolean | No | true | N/D | Non supportato in Windows. | 

**Esempio di input: imposta la proprietà del proprietario della cartella senza specificare il nome del gruppo di utenti**

```
  - name: SettingFolderPropertyWithOutGroup
    action: SetFolderOwner
    inputs:
      - path: /SampleFolder/
        owner: LinuxUser
```

**Esempio di input: imposta la proprietà del proprietario della cartella senza sovrascrivere la proprietà di tutti i contenuti di una cartella**

```
  - name: SettingFolderPropertyWithOutRecursively
    action: SetFolderOwner
    inputs:
      - path: /SampleFolder/
        owner: LinuxUser
        recursive: false
```

**Esempio di input: imposta la proprietà di proprietà del file specificando il nome del gruppo di utenti**

```
  - name: SettingFolderPropertyWithGroup
    action: SetFolderOwner
    inputs:
      - path: /SampleFolder/
        owner: LinuxUser
        group: LinuxUserGroup
```

**Output**  
Nessuna.

### SetFilePermissions (Linux, Windows, macOS)
<a name="action-modules-setfilepermissions"></a>

Il modulo di **SetFilePermissions**azione modifica un `permissions` file esistente. Questo modulo non è supportato sulle piattaforme Windows. 

L'input per `permissions` deve essere un valore di stringa.

Questo modulo di azione può creare un file con i permessi definiti dal valore umask predefinito del sistema operativo. È necessario impostare il `umask` valore se si desidera sovrascrivere il valore predefinito.

Il modulo di azione restituisce un errore quando si verifica quanto segue:
+ Non sei autorizzato a eseguire la modifica specificata.
+ Il file non esiste in fase di esecuzione.
+ Il modulo di azione rileva un errore durante l'esecuzione dell'operazione.


**Input**  

| Nome chiave | Description | Tipo | Richiesto | Valore predefinito | Valori accettabili | Supportato su tutte le piattaforme | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Il percorso del file. | Stringa | Sì | N/D | N/D | Non supportato su Windows. | 
| permissions | Le autorizzazioni relative ai file. | Stringa | Sì | N/D | N/D | Non supportato su Windows. | 

**Esempio di input: modifica delle autorizzazioni dei file**

```
  - name: ModifyingFilePermissions
    action: SetFilePermissions
    inputs:
      - path: /home/UserName/SampleFile.txt
        permissions: 766
```

**Output**  
Nessuna.

### SetFolderPermissions (Linux, Windows, macOS)
<a name="action-modules-setfolderpermissions"></a>

Il modulo di **SetFolderPermissions**azione modifica in modo ricorsivo una cartella esistente e tutti i relativi sottofile e sottocartelle. `permissions` Per impostazione predefinita, questo modulo può modificare le autorizzazioni per tutti i contenuti della cartella specificata. È possibile impostare l'`recursive`opzione per `false` ignorare questo comportamento. Questo modulo non è supportato sulle piattaforme Windows. 

L'input per `permissions` deve essere un valore di stringa. 

Questo modulo di azione può modificare le autorizzazioni in base al valore umask predefinito del sistema operativo. È necessario impostare il `umask` valore se si desidera sovrascrivere il valore predefinito.

Il modulo di azione restituisce un errore quando si verifica quanto segue:
+ Non sei autorizzato a eseguire la modifica specificata.
+ La cartella non esiste in fase di esecuzione.
+ Il modulo di azione rileva un errore durante l'esecuzione dell'operazione.


**Input**  

| Nome chiave | Description | Tipo | Richiesto | Valore predefinito | Valori accettabili | Supportato su tutte le piattaforme | 
| --- | --- | --- | --- | --- | --- | --- | 
| path | Il percorso della cartella. | Stringa | Sì | N/D | N/D | Non supportato su Windows. | 
| permissions | Le autorizzazioni della cartella. | Stringa | Sì | N/D | N/D | Non supportato su Windows. | 
| recursive | Sostituisce il comportamento predefinito di modifica delle autorizzazioni per tutto il contenuto di una cartella quando è impostato su. false | Boolean | No | true | N/D | Non supportato in Windows. | 

**Esempio di input: imposta le autorizzazioni per le cartelle**

```
  - name: SettingFolderPermissions
    action: SetFolderPermissions
    inputs:
      - path: SampleFolder/
        permissions: 0777
```

**Esempio di input: imposta le autorizzazioni per le cartelle senza modificare le autorizzazioni per tutto il contenuto di una cartella**

```
  - name: SettingFolderPermissionsNoRecursive
    action: SetFolderPermissions
    inputs:
      - path: /home/UserName/SampleFolder/
        permissions: 777
        recursive: false
```

**Output**  
Nessuna.

## Azioni di installazione del software
<a name="action-modules-software-install-actions"></a>

La sezione seguente descrive i moduli di azione che installano o disinstallano il software.

**Requisiti IAM**  
Se il percorso di download dell'installazione è un URI S3, il ruolo IAM associato al profilo dell'istanza deve disporre dell'autorizzazione per eseguire il modulo di `S3Download` azione. Per concedere l'autorizzazione richiesta, collega la policy `S3:GetObject` IAM al ruolo IAM associato al profilo dell'istanza e specifica il percorso del bucket. Ad esempio, `arn:aws:s3:::BucketName/*`.

**Ingressi MSI complessi**  
Se le stringhe di input contengono virgolette doppie (`"`), è necessario utilizzare uno dei seguenti metodi per garantire che vengano interpretate correttamente:
+ È possibile utilizzare virgolette singole (') all'esterno della stringa, per contenerla, e virgolette doppie («) all'interno della stringa, come illustrato nell'esempio seguente.

  ```
  properties:
    COMPANYNAME: '"Acme ""Widgets"" and ""Gizmos."""'
  ```

  In questo caso, se devi usare un apostrofo all'interno della tua stringa, devi evitarlo. Ciò significa usare un'altra virgoletta singola (') prima dell'apostrofo.
+ Puoi usare le virgolette doppie («) all'esterno della stringa per contenerla. E puoi evitare le virgolette doppie all'interno della stringa, usando il carattere barra rovesciata (`\`), come mostrato nell'esempio seguente.

  ```
  properties:
    COMPANYNAME: "\"Acme \"\"Widgets\"\" and \"\"Gizmos.\"\"\""
  ```

Entrambi questi metodi passano il valore `COMPANYNAME="Acme ""Widgets"" and ""Gizmos."""` al **msiexec** comando.

**Topics**
+ [Installa MSI (Windows)](#action-modules-install-msi)
+ [Disinstalla MSI (Windows)](#action-modules-uninstall-msi)

### Installa MSI (Windows)
<a name="action-modules-install-msi"></a>

Il modulo di `InstallMSI` azione installa un'applicazione Windows utilizzando un file MSI. È possibile specificare il file MSI utilizzando un percorso locale, un URI di oggetto S3 o un URL Web. L'opzione di riavvio configura il comportamento di riavvio del sistema.

AWSTOE genera il **msiexec** comando in base ai parametri di input per il modulo di azione. I valori per i parametri di input `path` (posizione del file MSI) e `logFile` (posizione del file di registro) devono essere racchiusi tra virgolette («).

I seguenti codici di uscita MSI sono considerati corretti:
+ 0 (Successo)
+ 1614 (ERROR\$1PRODUCT\$1UNINSTALLED)
+ 1641 (riavvio avviato)
+ 3010 (riavvio richiesto)


**Input**  

| Nome chiave | Description | Tipo | Richiesto | Valore predefinito | Valori accettabili | 
| --- | --- | --- | --- | --- | --- | 
| path |  Specificate la posizione del file MSI utilizzando uno dei seguenti metodi: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/imagebuilder/latest/userguide/toe-action-modules.html) Le espressioni concatenate sono consentite.  | Stringa | Sì | N/D | N/D | 
| reboot |  Configura il comportamento di riavvio del sistema dopo l'esecuzione corretta del modulo di azione. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/imagebuilder/latest/userguide/toe-action-modules.html)  | Stringa | No | Allow | Allow, Force, Skip | 
| logOptions |  Specificare le opzioni da utilizzare per la registrazione dell'installazione MSI. I flag specificati vengono passati al programma di installazione MSI, insieme al parametro della riga di `/L` comando per abilitare la registrazione. Se non viene specificato alcun flag, AWSTOE utilizza il valore predefinito. Per ulteriori informazioni sulle opzioni di registro per MSI, vedere [Opzioni della riga di comando](https://learn.microsoft.com/en-us/windows/win32/msi/command-line-options) nella documentazione del prodotto Microsoft *Windows Installer*.  | Stringa | No | \$1VX | i,w,e,a,r,u,c,m,o,p,v,x,\$1,\$1,\$1 | 
| logFile |  Un percorso assoluto o relativo alla posizione del file di registro. Se il percorso del file di registro non esiste, viene creato. Se il percorso del file di registro non viene fornito, AWSTOE non memorizza il registro di installazione MSI.  | Stringa | No | N/D | N/D | 
| properties |  Coppie chiave-valore della proprietà di registrazione MSI, ad esempio: `TARGETDIR: "C:\target\location"`   Nota: non è consentita la modifica delle seguenti proprietà: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/imagebuilder/latest/userguide/toe-action-modules.html)  | Mappa [Stringa] Stringa | No | N/D | N/D | 
| ignoreAuthenticodeSignatureErrors |  Contrassegna per ignorare gli errori di convalida della firma authenticode per l'installatore specificato nel percorso. Il **Get-AuthenticodeSignature** comando viene utilizzato per convalidare gli installatori. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/imagebuilder/latest/userguide/toe-action-modules.html)  | Boolean | No | false | true, false | 
| allowUnsignedInstaller |  Contrassegno per consentire l'esecuzione del programma di installazione non firmato specificato nel percorso. Il **Get-AuthenticodeSignature** comando viene utilizzato per convalidare gli installatori. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/imagebuilder/latest/userguide/toe-action-modules.html)  | Boolean | No | false | true, false | 

**Esempi**  
Gli esempi seguenti mostrano le variazioni della sezione di input per il documento del componente, a seconda del percorso di installazione.

**Esempio di input: installazione del percorso del documento locale**

```
- name: local-path-install
  steps:
    - name: LocalPathInstaller
      action: InstallMSI
      inputs:
        path: C:\sample.msi
        logFile: C:\msilogs\local-path-install.log
        logOptions: '*VX'
        reboot: Allow
        properties:
          COMPANYNAME: '"Amazon Web Services"'
        ignoreAuthenticodeSignatureErrors: true
        allowUnsignedInstaller: true
```

**Esempio di input: installazione del percorso Amazon S3**

```
- name: s3-path-install
  steps:
    - name: S3PathInstaller
      action: InstallMSI
      inputs:
        path: s3://<bucket-name>/sample.msi
        logFile: s3-path-install.log
        reboot: Force
        ignoreAuthenticodeSignatureErrors: false
        allowUnsignedInstaller: true
```

**Esempio di input: installazione di percorsi web**

```
- name: web-path-install
  steps:
    - name: WebPathInstaller
      action: InstallMSI
      inputs:
        path: https://<some-path>/sample.msi
        logFile: web-path-install.log
        reboot: Skip
        ignoreAuthenticodeSignatureErrors: true
        allowUnsignedInstaller: false
```

**Output**  
Di seguito è riportato un esempio dell'output del modulo di `InstallMSI` azione.

```
{
	"logFile": "web-path-install.log",
	"msiExitCode": 0,
	"stdout": ""
}
```

### Disinstalla MSI (Windows)
<a name="action-modules-uninstall-msi"></a>

Il modulo di `UninstallMSI` azione consente di rimuovere un'applicazione Windows utilizzando un file MSI. È possibile specificare la posizione del file MSI utilizzando un percorso di file locale, un URI di oggetto S3 o un URL Web. L'opzione di riavvio configura il comportamento di riavvio del sistema.

AWSTOE genera il **msiexec** comando in base ai parametri di input per il modulo di azione. La posizione del file MSI (`path`) e la posizione del file di registro (`logFile`) sono esplicitamente racchiuse tra virgolette doppie («) durante la generazione del comando. **msiexec**

I seguenti codici di uscita MSI sono considerati validi:
+ 0 (Successo)
+ 1605 (ERROR\$1UNKNOWN\$1PRODUCT)
+ 1614 (ERROR\$1PRODUCT\$1UNINSTALLED)
+ 1641 (riavvio avviato)
+ 3010 (riavvio richiesto)


**Input**  

| Nome chiave | Description | Tipo | Richiesto | Valore predefinito | Valori accettabili | 
| --- | --- | --- | --- | --- | --- | 
| path |  Specificate la posizione del file MSI utilizzando uno dei seguenti metodi: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/imagebuilder/latest/userguide/toe-action-modules.html) Le espressioni concatenate sono consentite.  | Stringa | Sì | N/D | N/D | 
| reboot |  Configura il comportamento di riavvio del sistema dopo l'esecuzione corretta del modulo di azione. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/imagebuilder/latest/userguide/toe-action-modules.html)  | Stringa | No | Allow | Allow, Force, Skip | 
| logOptions |  Specificare le opzioni da utilizzare per la registrazione dell'installazione MSI. I flag specificati vengono passati al programma di installazione MSI, insieme al parametro della riga di `/L` comando per abilitare la registrazione. Se non viene specificato alcun flag, AWSTOE utilizza il valore predefinito. Per ulteriori informazioni sulle opzioni di registro per MSI, vedere [Opzioni della riga di comando](https://docs.microsoft.com/en-us/windows/win32/msi/command-line-options) nella documentazione del prodotto Microsoft *Windows Installer*.  | Stringa | No | \$1VX | i,w,e,a,r,u,c,m,o,p,v,x,\$1,\$1,\$1 | 
| logFile |  Un percorso assoluto o relativo alla posizione del file di registro. Se il percorso del file di registro non esiste, viene creato. Se il percorso del file di registro non viene fornito, AWSTOE non memorizza il registro di installazione MSI.  | Stringa | No | N/D | N/D | 
| properties |  Coppie chiave-valore della proprietà di registrazione MSI, ad esempio: `TARGETDIR: "C:\target\location"`   Nota: non è consentita la modifica delle seguenti proprietà: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/imagebuilder/latest/userguide/toe-action-modules.html)  | Mappa [Stringa] Stringa | No | N/D | N/D | 
| ignoreAuthenticodeSignatureErrors |  Contrassegna per ignorare gli errori di convalida della firma authenticode per l'installatore specificato nel percorso. Il **Get-AuthenticodeSignature** comando viene utilizzato per convalidare gli installatori. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/imagebuilder/latest/userguide/toe-action-modules.html)  | Boolean | No | false | true, false | 
| allowUnsignedInstaller |  Contrassegno per consentire l'esecuzione del programma di installazione non firmato specificato nel percorso. Il **Get-AuthenticodeSignature** comando viene utilizzato per convalidare gli installatori. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/imagebuilder/latest/userguide/toe-action-modules.html)  | Boolean | No | false | true, false | 

**Esempi**  
Gli esempi seguenti mostrano le variazioni della sezione di input per il documento del componente, a seconda del percorso di installazione.

**Esempio di input: rimuovere l'installazione del percorso del documento locale**

```
- name: local-path-uninstall
  steps:
    - name: LocalPathUninstaller
      action: UninstallMSI
      inputs:
        path: C:\sample.msi
        logFile: C:\msilogs\local-path-uninstall.log
        logOptions: '*VX'
        reboot: Allow
        properties:
          COMPANYNAME: '"Amazon Web Services"'
        ignoreAuthenticodeSignatureErrors: true
        allowUnsignedInstaller: true
```

**Esempio di input: rimuovere l'installazione del percorso di Amazon S3**

```
- name: s3-path-uninstall
  steps:
    - name: S3PathUninstaller
      action: UninstallMSI
      inputs:
        path: s3://<bucket-name>/sample.msi
        logFile: s3-path-uninstall.log
        reboot: Force
        ignoreAuthenticodeSignatureErrors: false
        allowUnsignedInstaller: true
```

**Esempio di input: rimuovere l'installazione del percorso web**

```
- name: web-path-uninstall
  steps:
    - name: WebPathUninstaller
      action: UninstallMSI
      inputs:
        path: https://<some-path>/sample.msi
        logFile: web-path-uninstall.log
        reboot: Skip
        ignoreAuthenticodeSignatureErrors: true
        allowUnsignedInstaller: false
```

**Output**  
Di seguito è riportato un esempio dell'output del modulo di `UninstallMSI` azione.

```
{
	"logFile": "web-path-uninstall.log",
	"msiExitCode": 0,
	"stdout": ""
}
```

## Moduli di azione del sistema
<a name="action-modules-system-actions"></a>

La sezione seguente descrive i moduli di azione che eseguono azioni di sistema o aggiornano le impostazioni di sistema.

**Topics**
+ [Riavvio (Linux, Windows)](#action-modules-reboot)
+ [SetRegistry (Windows)](#action-modules-setregistry)
+ [UpdateOS (Linux, Windows)](#action-modules-updateos)

### Riavvio (Linux, Windows)
<a name="action-modules-reboot"></a>

Il modulo di azione **Reboot riavvia** l'istanza. Ha un'opzione configurabile per ritardare l'inizio del riavvio. Per impostazione predefinita, `delaySeconds` è impostato su`0`, il che significa che non vi è alcun ritardo. Il timeout degli step non è supportato per il modulo di azione Reboot, in quanto non si applica al riavvio dell'istanza.

Se l'applicazione viene richiamata dall'agente Systems Manager, consegna il codice di uscita (`3010`per Windows, `194` per Linux) all'agente Systems Manager. Systems Manager Agent gestisce il riavvio del sistema come descritto in [Riavvio di un'istanza gestita dagli script](https://docs.aws.amazon.com/systems-manager/latest/userguide/send-commands-reboot.html).

Se l'applicazione viene richiamata sull'host come processo autonomo, salva lo stato di esecuzione corrente, configura un trigger di esecuzione automatica post-riavvio per rieseguire l'applicazione dopo il riavvio e quindi riavvia il sistema.

**Trigger di esecuzione automatica dopo il riavvio:**
+ **Windows**. AWSTOE crea una voce di Windows Task Scheduler con un trigger che viene eseguito automaticamente su `SystemStartup`
+ **Linux**. AWSTOE aggiunge un job in crontab che viene eseguito automaticamente dopo il riavvio del sistema.

```
@reboot /download/path/awstoe run --document s3://bucket/key/doc.yaml
```

Questo trigger viene eliminato all'avvio dell'applicazione.

**Tentativi**  
Per impostazione predefinita, il numero massimo di tentativi è impostato su Systems Manager`CommandRetryLimit`. Se il numero di riavvii supera il limite di tentativi, l'automazione fallisce. È possibile modificare il limite modificando il file di configurazione dell'agente Systems Manager (`Mds.CommandRetryLimit`). Vedere [Runtime Configuration](https://github.com/aws/amazon-ssm-agent/blob/mainline/README.md#runtime-configuration) nell'agente Systems Manager open source.

Per utilizzare il modulo di azione **Reboot**, per le fasi che contengono il riavvio `exitcode` (ad esempio,`3010`), è necessario eseguire il file binario dell'applicazione come. `sudo user`


**Input**  

| Nome chiave | Description | Tipo | Obbligatorio | Predefinita | 
| --- | --- | --- | --- | --- | 
| delaySeconds | Ritarda un determinato periodo di tempo prima di iniziare il riavvio. | Numero intero |  No  |  `0`  | 

**Esempio di input: fase di riavvio**

```
  - name: RebootStep
    action: Reboot
    onFailure: Abort
    maxAttempts: 2
    inputs:
      delaySeconds: 60
```

**Output**

Nessuna.

Una volta completato il modulo **Reboot**, Image Builder passa alla fase successiva della compilazione.

### SetRegistry (Windows)
<a name="action-modules-setregistry"></a>

Il modulo di **SetRegistry**azione accetta un elenco di input e consente di impostare il valore per la chiave di registro specificata. Se una chiave di registro non esiste, viene creata nel percorso definito. Questa funzionalità si applica solo a Windows.


**Input**  

| Nome chiave | Description | Tipo | Richiesto | 
| --- | --- | --- | --- | 
| path | Percorso della chiave di registro. | Stringa | Sì | 
| name | Nome della chiave di registro. | Stringa | Sì | 
| value | Valore della chiave di registro. | String/Number/Array | Sì | 
| type | Tipo di valore della chiave di registro. | Stringa | Sì | 

**Prefissi di percorso supportati**
+ `HKEY_CLASSES_ROOT / HKCR:`
+ `HKEY_USERS / HKU:`
+ `HKEY_LOCAL_MACHINE / HKLM:`
+ `HKEY_CURRENT_CONFIG / HKCC:`
+ `HKEY_CURRENT_USER / HKCU:`

**Tipi supportati **
+ `BINARY`
+ `DWORD`
+ `QWORD`
+ `SZ`
+ `EXPAND_SZ`
+ `MULTI_SZ`

**Esempio di input: imposta i valori delle chiavi di registro**

```
  - name: SetRegistryKeyValues
    action: SetRegistry
    maxAttempts: 3
    inputs:
      - path: HKLM:\SOFTWARE\MySoftWare
        name: MyName
        value: FirstVersionSoftware
        type: SZ
      - path: HKEY_CURRENT_USER\Software\Test
        name: Version
        value: 1.1
        type: DWORD
```

**Output**

Nessuna.

### UpdateOS (Linux, Windows)
<a name="action-modules-updateos"></a>

Il modulo di azione **UpdateOS** aggiunge il supporto per l'installazione degli aggiornamenti di Windows e Linux. Installa tutti gli aggiornamenti disponibili per impostazione predefinita. In alternativa, è possibile configurare un elenco di uno o più aggiornamenti specifici per l'installazione del modulo di azione. È inoltre possibile specificare gli aggiornamenti da escludere dall'installazione.

Se vengono forniti entrambi gli elenchi «includi» ed «escludi», l'elenco di aggiornamenti risultante può includere solo quelli elencati nell'elenco «include» che non sono elencati nell'elenco «escludi».

**Nota**  
**UpdateOS** non supporta Amazon Linux 2023 ()AL2023. Ti consigliamo di aggiornare l'AMI di base alla nuova versione fornita con ogni versione. Per altre alternative, consulta [Controllare gli aggiornamenti ricevuti dalle versioni principali e secondarie](https://docs.aws.amazon.com/linux/al2023/ug/deterministic-upgrades.html#controlling-release-updates) nella *Guida per l'utente di Amazon Linux 2023*.
+ **Windows**. Gli aggiornamenti vengono installati dalla fonte degli aggiornamenti configurata sul computer di destinazione.
+ **Linux**. L'applicazione verifica la presenza del gestore di pacchetti supportato nella piattaforma Linux e utilizza uno dei due `yum` o il gestore di `apt-get` pacchetti. Se nessuno dei due è supportato, viene restituito un errore. È necessario disporre `sudo` delle autorizzazioni per eseguire il modulo di azione **UpdateOS**. Se non si dispone delle `sudo` autorizzazioni, viene restituito. `error.Input`


**Input**  

| Nome chiave | Description | Tipo | Richiesto | 
| --- | --- | --- | --- | 
| include |  Per Windows, è possibile specificare quanto segue: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/imagebuilder/latest/userguide/toe-action-modules.html) Per Linux, è possibile specificare uno o più pacchetti da includere nell'elenco degli aggiornamenti per l'installazione.  | Elenco di stringhe | No | 
| exclude |  Per Windows, è possibile specificare quanto segue: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/imagebuilder/latest/userguide/toe-action-modules.html) Per Linux, è possibile specificare uno o più pacchetti da escludere dall'elenco degli aggiornamenti per l'installazione.  | Elenco di stringhe | No | 

**Esempio di input: aggiungi il supporto per l'installazione degli aggiornamenti Linux**

```
  - name: UpdateMyLinux
    action: UpdateOS
    onFailure: Abort
    maxAttempts: 3
    inputs:
      exclude:
        - ec2-hibinit-agent
```

**Esempio di input: aggiungere il supporto per l'installazione degli aggiornamenti di Windows**

```
  - name: UpdateWindowsOperatingSystem
    action: UpdateOS
    onFailure: Abort
    maxAttempts: 3
    inputs:
      include:
        - KB1234567
        - '*Security*'
```

**Output**

Nessuna.

# Configurare l'input per il comando AWSTOE run
<a name="toe-run-config-input"></a>

Per semplificare l'input da riga di comando per il AWSTOE **run** comando, è possibile includere le impostazioni per i parametri e le opzioni del comando in un file di configurazione di input in formato JSON con estensione di file. `.json` AWSTOE può leggere il file da una delle seguenti posizioni:
+ Un percorso di file locale (*./config.json*).
+ Un bucket S3 ()*s3://<bucket-path>/<bucket-name>/config.json*.

Quando si immette il **run** comando, è possibile specificare il file di configurazione di input utilizzando il **--config** parametro. Per esempio:

```
awstoe run --config <file-path>/config.json
```

**File di configurazione di input**  
Il file JSON di configurazione di input include coppie chiave-valore per tutte le impostazioni che è possibile fornire direttamente tramite parametri e opzioni di **run** comando. Se specificate un'impostazione sia nel file di configurazione di input che nel **run** comando, come parametro o opzione, si applicano le seguenti regole di precedenza:

**Regole di precedenza**

1. Un'impostazione fornita direttamente al **run** comando in AWS CLI, tramite un parametro o un'opzione, sovrascrive qualsiasi valore definito nel file di configurazione di input per la stessa impostazione.

1. Un'impostazione nel file di configurazione di input sovrascrive il valore predefinito di un componente.

1. Se non vengono passate altre impostazioni nel documento del componente, è possibile applicare un valore predefinito, se esistente.

Esistono due eccezioni a questa regola: documenti e parametri. Queste impostazioni funzionano in modo diverso nella configurazione di input e come parametri di comando. Se utilizzate il file di configurazione di input, non dovete specificare questi parametri direttamente nel **run** comando. Questa operazione genererà un errore.

**Impostazioni dei componenti**  
Il file di configurazione di input contiene le seguenti impostazioni. Per semplificare il file, puoi omettere tutte le impostazioni opzionali che non sono necessarie. Tutte le impostazioni sono opzionali se non diversamente specificato.
+ **cwIgnoreFailures**(Boolean) — Ignora gli errori di registrazione nei log. CloudWatch 
+ **cwLogGroup**(String) — Il nome dei log. `LogGroup` CloudWatch 
+ **cwLogRegion**(String) — La AWS regione che si applica ai CloudWatch registri.
+ **cwLogStream**(String) — Il `LogStream` nome dei CloudWatch log, che indica AWSTOE dove trasmettere il file. `console.log`
+ **Documents3 BucketOwner** (String): l'ID dell'account del proprietario del bucket per i documenti basati su URI S3.
+ **documents** (array di oggetti, obbligatorio) — Un array di oggetti JSON che rappresentano i documenti del componente YAML su cui il comando è in esecuzione. AWSTOE **run** È necessario specificare almeno un documento componente.

  Ogni oggetto è composto dai seguenti campi:
  + **path** (String, required) — La posizione del file del documento del componente YAML. Deve essere uno dei seguenti:
    + Un percorso di file locale (*./component-doc-example.yaml*).
    + Un URI S3 (`s3://bucket/key`).
    + Una versione di build del componente Image Builder ARN (arn:aws:imagebuilder:us-west-th//2021.12.02/1). *2:123456789012* *my-example-component*
  + **parameters** (array di oggetti) — Una matrice di oggetti a coppie chiave-valore, ciascuno dei quali rappresenta un parametro specifico del componente che il comando trasmette quando esegue il documento del componente. **run** I parametri sono facoltativi per i componenti. Il documento del componente può avere o meno dei parametri definiti.

    Ogni oggetto è composto dai seguenti campi:
    + **name** (String, required) — Il nome del parametro del componente.
    + **value** (String, required) — Il valore da passare al documento del componente per il parametro denominato.

    Per ulteriori informazioni sui parametri del componente, consulta la sezione **Parametri** della [Usa le variabili nel tuo documento componente personalizzato](toe-user-defined-variables.md) pagina.
+ **ExecutonID** (String) — Questo è l'ID univoco che si applica all'esecuzione del comando corrente**run**. Questo ID è incluso nei nomi dei file di output e di registro, per identificare in modo univoco tali file e collegarli all'esecuzione corrente del comando. Se questa impostazione viene omessa, AWSTOE genera un GUID.
+ **LogDirectory** (String) — La directory di destinazione in cui vengono AWSTOE archiviati tutti i file di registro dell'esecuzione di questo comando. Per impostazione predefinita, questa directory si trova all'interno della seguente directory principale:`TOE_<DATETIME>_<EXECUTIONID>`. Se non si specifica la directory di registro, AWSTOE utilizza la directory di lavoro corrente (`.`).
+ **LogS3 BucketName** (String) — Se i log dei componenti sono archiviati in Amazon S3 (consigliato), AWSTOE carica i log delle applicazioni dei componenti nel bucket S3 denominato in questo parametro.
+ **LogS3 BucketOwner** (String): se i log dei componenti sono archiviati in Amazon S3 (consigliato), questo è l'ID dell'account proprietario per il bucket in cui vengono scritti i file di registro. AWSTOE 
+ **LogS3 KeyPrefix** (String): se i log dei componenti sono archiviati in Amazon S3 (consigliato), questo è il prefisso della chiave dell'oggetto S3 per la posizione del registro nel bucket.
+ **parameters** (array di oggetti) — Un array di oggetti a coppie chiave-valore che rappresentano parametri che si applicano globalmente a tutti i componenti inclusi nell'esecuzione corrente del comando. **run**
  + **name** (String, required) — Il nome del parametro globale.
  + **value** (String, required) — Il valore da passare a tutti i documenti componenti per il parametro denominato.
+ **phases** (String) — Un elenco separato da virgole che specifica quali fasi eseguire dai documenti dei componenti YAML. Se un documento componente include fasi aggiuntive, queste non verranno eseguite.
+ **stateDirectory** (String) — Il percorso del file in cui sono archiviati i file di tracciamento dello stato.
+ **trace** (Boolean) — Abilita la registrazione dettagliata sulla console.

**Esempi**  
L'esempio seguente mostra un file di configurazione di input che esegue le `test` fasi `build` and per due documenti componenti:, e. `sampledoc.yaml` `conversation-intro.yaml` Ogni documento componente ha un parametro che si applica solo a se stesso ed entrambi utilizzano un parametro condiviso. Il `project` parametro si applica a entrambi i documenti componenti.

```
{
   "documents": [
     {
       "path": "<file path>/awstoe/sampledoc.yaml>",
       "parameters": [
         {
           "name": "dayofweek",
           "value": "Monday"
         }
       ]
     },
     {
       "path": "<file path>/awstoe/conversation-intro.yaml>",
       "parameters": [
         {
           "name": "greeting",
           "value": "Hello, HAL."
         }
       ]
     }
   ],
   "phases": "build,test",
   "parameters": [
     {
       "name": "project",
       "value": "examples"
     }
   ],
   "cwLogGroup": "<log_group_name>",
   "cwLogStream": "<log_stream_name>",
   "documentS3BucketOwner": "<owner_aws_account_number>",
   "executionId": "<id_number>",
   "logDirectory": "<local_directory_path>",
   "logS3BucketName": "<bucket_name_for_log_files>",
   "logS3KeyPrefix": "<key_prefix_for_log_files>",
   "logS3BucketOwner": "<owner_aws_account_number>"
 }
```