

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

# Fai riferimento ai file esterni in Infrastructure Composer
File esterni di riferimento

Puoi usare file esterni con i tuoi AWS Serverless Application Model (AWS SAM) modelli per riutilizzare codice ripetuto e organizzare i tuoi progetti. Ad esempio, potresti avere più risorse API REST di Amazon API Gateway descritte da una OpenAPI specifica. Invece di replicare il codice delle OpenAPI specifiche nel modello, puoi creare un file esterno e farvi riferimento per ciascuna delle tue risorse.

AWS Infrastructure Composer supporta i seguenti casi d'uso di file esterni:
+ REST APIRisorse API Gateway definite da file di OpenAPI specifiche esterne.
+ AWS Step Functions risorse delle macchine a stati definite da file di definizione delle macchine a stati esterni.

Per ulteriori informazioni sulla configurazione di file esterni per le risorse supportate, consulta quanto segue:
+ `[ DefinitionBody](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-api.html#sam-api-definitionbody)`per`AWS::Serverless::Api`.
+ `[ DefinitionUri](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-statemachine.html#sam-statemachine-definitionuri)`per`AWS::Serverless::StateMachine`.

**Nota**  
Per fare riferimento a file esterni con Infrastructure Composer dalla console Infrastructure Composer, è necessario utilizzare Infrastructure Composer in modalità di sincronizzazione **locale**. Per ulteriori informazioni, consulta [Sincronizza e salva localmente il tuo progetto nella console Infrastructure Composer](using-composer-project-local-sync.md).

**Topics**
+ [

# Procedure consigliate per i file di riferimento esterni di Infrastructure Composer
](using-composer-external-files-best-practices.md)
+ [

# Crea un riferimento a un file esterno in Infrastructure Composer
](using-composer-external-files-new.md)
+ [

# Carica un progetto con un riferimento a un file esterno in Infrastructure Composer
](using-composer-external-files-load.md)
+ [

# Crea un'applicazione che faccia riferimento a un file esterno in Infrastructure Composer
](using-composer-external-files-examples-example3.md)
+ [

# Fai riferimento a un file esterno di OpenAPI specifiche con Infrastructure Composer
](using-composer-external-files-examples-example1.md)

# Procedure consigliate per i file di riferimento esterni di Infrastructure Composer
Best practice

## Usa Infrastructure Composer con un IDE locale


Quando si utilizza Infrastructure Composer con un IDE **locale in modalità di sincronizzazione locale**, è possibile utilizzare l'IDE locale per visualizzare e modificare file esterni. Il contenuto dei file esterni supportati a cui si fa riferimento nel modello verrà aggiornato automaticamente nell'area di disegno di Infrastructure Composer. Per ulteriori informazioni, consulta [Connect la console Infrastructure Composer all'IDE locale](other-services-ide.md).

## Conserva i file esterni nella directory principale del progetto


È possibile creare sottodirectory all'interno della directory principale del progetto per organizzare i file esterni. Infrastructure Composer non può accedere ai file esterni archiviati in una directory esterna alla directory principale del progetto.

## Distribuite l'applicazione utilizzando il AWS SAMCLI


Quando si distribuisce l'applicazione su Cloud AWS, i file esterni locali devono prima essere caricati in una posizione accessibile, come Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3). È possibile utilizzare la AWS SAM CLI per facilitare automaticamente questo processo. Per ulteriori informazioni, consulta [Caricare file locali al momento della distribuzione](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/deploy-upload-local-files.html) nella *Guida per gli AWS Serverless Application Model sviluppatori*.

# Crea un riferimento a un file esterno in Infrastructure Composer
Crea un riferimento a un file esterno

È possibile creare un riferimento a un file esterno dal pannello **delle proprietà delle** risorse supportate.

**Per creare un riferimento a un file esterno**

1. Da una scheda componente avanzata **API Gateway** o **Step Functions**, seleziona **Dettagli** per visualizzare il pannello **delle proprietà delle risorse**.

1. Individua e seleziona l'opzione **Usa file esterno**.

1. Specificate il percorso relativo al file esterno. Questo è il percorso dal `template.yaml` file al file esterno.

   Ad esempio, per fare riferimento al file `api-spec.yaml` esterno dalla seguente struttura del progetto, specificate `./api-spec.yaml` come percorso relativo.

   ```
   demo
   ├── api-spec.yaml
   ├── src
   │ └── Function
   │ ├── index.js
   │ └── package.json
   └── template.yaml
   ```
**Nota**  
Se il file esterno e il percorso specificato non esistono, Infrastructure Composer lo creerà.

1. **Salva** le modifiche.

# Carica un progetto con un riferimento a un file esterno in Infrastructure Composer
Carica un progetto

Segui i passaggi elencati in questa pagina per caricare un progetto Infrastructure Composer con un riferimento a un file esterno.

**Dalla console Infrastructure Composer**

1. Completa le fasi descritte in [Importa un modello di progetto esistente nella console Infrastructure Composer](using-composer-project-import-template.md).

1. Conferma che Infrastructure Composer ti richieda di connetterti alla cartella principale del progetto 

Se il browser supporta l'API File System Access, Infrastructure Composer richiederà di connettersi alla cartella principale del progetto. Infrastructure Composer aprirà il progetto in modalità di **sincronizzazione locale** per supportare il file esterno. Se il file esterno di riferimento non è supportato, riceverai un messaggio di errore. Per ulteriori informazioni sui messaggi di errore, vedere[Risoluzione dei problemi](ref-troubleshooting.md). 

**Dal Toolkit for VS Code**

1. Completa le fasi descritte in [Accedi a Infrastructure Composer dal AWS Toolkit for Visual Studio Code](setting-up-composer-access-ide.md).

1. Apri il modello che desideri visualizzare in Infrastructure Composer.

Quando accedi a Infrastructure Composer da un modello, Infrastructure Composer rileva automaticamente il tuo file esterno. Se il file esterno di riferimento non è supportato, riceverai un messaggio di errore. Per ulteriori informazioni sui messaggi di errore, vedere[Risoluzione dei problemi](ref-troubleshooting.md).

# Crea un'applicazione che faccia riferimento a un file esterno in Infrastructure Composer
Create un'applicazione utilizzando il AWS SAMCLI

Questo esempio utilizza il AWS SAMCLI per creare un'applicazione che fa riferimento a un file esterno per la definizione della macchina a stati. Si carica quindi il progetto in Infrastructure Composer con il file esterno correttamente referenziato.

**Esempio**

1. Innanzitutto, utilizzate il **sam init** comando AWS SAM CLI per inizializzare una nuova applicazione denominata. `demo` Durante il flusso interattivo, selezionate il modello di avvio rapido del **flusso di lavoro in più fasi**.

   ```
   $ sam init
   
   ...
   
   Which template source would you like to use?
           1 - AWS Quick Start Templates
           2 - Custom Template Location
   Choice: 1
   
   Choose an AWS Quick Start application template
           1 - Hello World Example
           2 - Multi-step workflow
           3 - Serverless API
           4 - Scheduled task
           ...
   Template: 2
   
   Which runtime would you like to use?
           1 - dotnet6
           2 - dotnetcore3.1
           ...
           15 - python3.7
           16 - python3.10
           17 - ruby2.7
   Runtime: 16
   
   Based on your selections, the only Package type available is Zip.
   We will proceed to selecting the Package type as Zip.
   
   Based on your selections, the only dependency manager available is pip.
   We will proceed copying the template using pip.
   
   Would you like to enable X-Ray tracing on the function(s) in your application?  [y/N]: ENTER
   
   Would you like to enable monitoring using CloudWatch Application Insights?
   For more info, please view https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch-application-insights.html [y/N]: ENTER
   
   Project name [sam-app]: demo
   
       -----------------------
       Generating application:
       -----------------------
       Name: demo
       Runtime: python3.10
       Architectures: x86_64
       Dependency Manager: pip
       Application Template: step-functions-sample-app
       Output Directory: .
       Configuration file: demo/samconfig.toml
       
       Next steps can be found in the README file at demo/README.md
   
   ...
   ```

   Questa applicazione fa riferimento a un file esterno per la definizione della macchina a stati.

   ```
   ...
   Resources:
     StockTradingStateMachine:
       Type: AWS::Serverless::StateMachine
       Properties:
         DefinitionUri: statemachine/stock_trader.asl.json
   ...
   ```

   Il file esterno si trova nella `statemachine` sottodirectory della nostra applicazione.

   ```
   demo
   ├── README.md
   ├── __init__.py
   ├── functions
   │   ├── __init__.py
   │   ├── stock_buyer
   │   ├── stock_checker
   │   └── stock_seller
   ├── samconfig.toml
   ├── statemachine
   │   └── stock_trader.asl.json
   ├── template.yaml
   └── tests
   ```

1. Quindi, carica l'applicazione in Infrastructure Composer dalla console. Dalla **home** page di Infrastructure Composer, seleziona **Carica un CloudFormation modello**.

1. Seleziona la cartella `demo` del nostro progetto e attendi che venga richiesto di visualizzare i file. Seleziona il nostro `template.yaml` file e seleziona **Crea**. Quando richiesto, seleziona **Salva modifiche**.  
![\[La finestra Infrastructure Composer Apri la cartella del progetto con la nostra cartella di progetto selezionata e la finestra Crea pronta per essere selezionata.\]](http://docs.aws.amazon.com/it_it/infrastructure-composer/latest/dg/images/aac_use_ex_15.png)

Infrastructure Composer rileva automaticamente il file di definizione della macchina a stati esterna e lo carica. Seleziona la nostra **StockTradingStateMachine**risorsa e scegli **Dettagli** per mostrare il pannello **delle proprietà della risorsa**. Qui puoi vedere che Infrastructure Composer si è connesso automaticamente al nostro file di definizione della macchina a stati esterna.

![\[Viene visualizzata la vista canvas di Infrastructure Composer con il pannello delle proprietà delle risorse API Gateway, che mostra la configurazione del file di riferimento esterno.\]](http://docs.aws.amazon.com/it_it/infrastructure-composer/latest/dg/images/aac_use_ex_03.png)


Qualsiasi modifica apportata al file di definizione della macchina a stati si rifletterà automaticamente in Infrastructure Composer.

# Fai riferimento a un file esterno di OpenAPI specifiche con Infrastructure Composer
Fai riferimento a una specifica OpenAPI

Questo esempio utilizza Infrastructure Composer dalla console per fare riferimento a un file di OpenAPI specifiche esterno che definisce un API GatewayREST API.

Innanzitutto, crea un nuovo progetto dalla **home page** di Infrastructure Composer.

Quindi, attiva la **sincronizzazione locale** selezionando **Attiva sincronizzazione locale** dal **menu**. Crea una nuova cartella denominata`demo`, consenti alla richiesta di visualizzare i file e seleziona **Attiva**. Quando richiesto, seleziona **Salva** modifiche.

![\[La finestra di sincronizzazione locale di Infrastructure Composer Activate con una cartella di progetto demo selezionata e il pulsante Activate è pronto per essere selezionato.\]](http://docs.aws.amazon.com/it_it/infrastructure-composer/latest/dg/images/aac_use_ex_11.png)


Successivamente, trascina una scheda Amazon API Gateway sull'area di disegno. Seleziona **Dettagli** per visualizzare il pannello **delle proprietà delle risorse**.

![\[Una risorsa API Gateway sull'area di lavoro con il pannello delle proprietà della risorsa aperto.\]](http://docs.aws.amazon.com/it_it/infrastructure-composer/latest/dg/images/aac_use_ex_12.png)


Dal pannello **delle proprietà delle risorse**, configura quanto segue e **salva**.
+ Seleziona l'opzione **Usa file esterno per la definizione dell'API**.
+ Immissione `./api-spec.yaml` come **percorso relativo al file esterno**

![\[Una finestra che mostra la casella di controllo contrassegnata in Usa un file esterno per la definizione dell'API e un percorso relativo a un file esterno definito.\]](http://docs.aws.amazon.com/it_it/infrastructure-composer/latest/dg/images/aac_use_ex_13.png)


Questo crea la seguente directory sul nostro computer locale:

```
demo
└── api-spec.yaml
```

Ora puoi configurare il file esterno sul nostro computer locale. Usando il nostro IDE, apri il file che `api-spec.yaml` si trova nella cartella del tuo progetto. Sostituisci il suo contenuto con quanto segue:

```
openapi: '3.0'
info: {}
paths:
  /:
    get:
      responses: {}
    post:
      x-amazon-apigateway-integration:
        credentials:
          Fn::GetAtt:
            - ApiQueuesendmessageRole
            - Arn
        httpMethod: POST
        type: aws
        uri:
          Fn::Sub: arn:${AWS::Partition}:apigateway:${AWS::Region}:sqs:path/${AWS::AccountId}/${Queue.QueueName}
        requestParameters:
          integration.request.header.Content-Type: '''application/x-www-form-urlencoded'''
        requestTemplates:
          application/json: Action=SendMessage&MessageBody={"data":$input.body}
        responses:
          default:
            statusCode: 200
      responses:
        '200':
          description: 200 response
```

Nella vista **Modello** di Infrastructure Composer, puoi vedere che Infrastructure Composer ha aggiornato automaticamente il modello in modo che faccia riferimento al file esterno.

![\[La visualizzazione del modello di Infrastructure Composer che mostra il codice dell'infrastruttura configurato per fare riferimento al file esterno.\]](http://docs.aws.amazon.com/it_it/infrastructure-composer/latest/dg/images/aac_use_ex_07.png)
