

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

# Utilizzo delle funzioni di sovrascrittura dei parametri con le pipeline CodePipeline
<a name="continuous-delivery-codepipeline-parameter-override-functions"></a>

In una CodePipeline fase, potete specificare le [sostituzioni dei parametri per le azioni.](continuous-delivery-codepipeline-action-reference.md) CloudFormation Le sostituzioni dei parametri consentono di specificare valori dei parametri del modello che sostituiscono i valori in un file di configurazione del modello. CloudFormation fornisce funzioni che consentono di specificare valori dinamici (valori sconosciuti fino all'esecuzione della pipeline).

**Topics**
+ [

## `Fn::GetArtifactAtt`
](#w2aac21c17b7)
+ [

## `Fn::GetParam`
](#w2aac21c17b9)
+ [

## Consulta anche
](#w2aac21c17c11)

## `Fn::GetArtifactAtt`
<a name="w2aac21c17b7"></a>

La funzione `Fn::GetArtifactAtt` recupera il valore di un attributo da un artefatto di input, come il nome del bucket S3 in cui l’artefatto viene archiviato. Utilizzate questa funzione per specificare gli attributi di un artefatto, come il nome del file o Amazon S3 il nome del bucket.

Quando esegui una pipeline, CodePipeline copia e scrive i file nell'archivio degli artefatti della pipeline (un bucket S3). CodePipeline genera i nomi dei file nell'archivio degli artefatti. Tali nomi file sono sconosciuti prima dell’esecuzione della pipeline.

Ad esempio, nella vostra pipeline, potreste avere una fase di origine in cui CodePipeline copia il codice sorgente AWS Lambda della funzione nell'archivio degli artefatti. Nella fase successiva, si dispone di un CloudFormation modello che crea la funzione Lambda, ma CloudFormation richiede il nome del file per creare la funzione. È necessario utilizzare la funzione `Fn::GetArtifactAtt` per passare il nome esatto del bucket S3 e del file.

### Sintassi
<a name="w2aac21c17b7b9"></a>

Usa la sintassi seguente per recuperare il valore di un attributo di un artefatto.

```
{ "Fn::GetArtifactAtt" : [ "artifactName", "attributeName" ] }
```

`artifactName`  
Il nome dell’artefatto di input. È necessario dichiarare questo artefatto come input per l’operazione associata.

`attributeName`  
Il nome dell’attributo dell’artefatto di cui vuoi recuperare il valore. Per ulteriori informazioni sull’attributo di ogni artefatto, consulta la sezione Attributi di seguito.

### Esempio
<a name="w2aac21c17b7c11"></a>

Le seguenti sostituzioni di parametro specificano i parametri `BucketName` e `ObjectKey` recuperando il nome del bucket S3 e il nome file dell’artefatto `LambdaFunctionSource`. Questo esempio presuppone che il codice sorgente della funzione CodePipeline Lambda sia stato copiato e salvato come artefatto, ad esempio come parte di uno stadio sorgente.

```
{
  "BucketName" : { "Fn::GetArtifactAtt" : ["LambdaFunctionSource", "BucketName"]},
  "ObjectKey" : { "Fn::GetArtifactAtt" : ["LambdaFunctionSource", "ObjectKey"]}
}
```

### Attributes
<a name="w2aac21c17b7c13"></a>

Puoi recuperare i seguenti attributi per un artefatto.

`BucketName`  
Il nome del bucket S3 in cui l’artefatto viene archiviato.

`ObjectKey`  
Il nome del `.zip` file che contiene l'elemento generato da, ad esempio. CodePipeline `1ABCyZZ.zip`

`URL`  
L’URL Amazon Simple Storage Service (Amazon S3) dell’artefatto, ad esempio `https://s3.us-west-2.amazonaws.com/artifactstorebucket-yivczw8jma0c/test/TemplateSo/1ABCyZZ.zip`.

## `Fn::GetParam`
<a name="w2aac21c17b9"></a>

La funzione `Fn::GetParam` restituisce un valore da una coppia chiave-valore in un file in formato JSON. Il file JSON deve essere incluso in un artefatto.

Utilizzate questa funzione per recuperare i valori di output da uno CloudFormation stack e usarli come input per un'altra azione. Ad esempio, se specificate un nome di file di output per un' CloudFormation azione, CodePipeline salva l'output in un file JSON e quindi lo aggiunge al file dell'elemento di output. `.zip` Utilizza la funzione `Fn::GetParam` per recuperare il valore di output e utilizzarlo come input per un’altra operazione.

### Sintassi
<a name="w2aac21c17b9b7"></a>

Utilizza la sintassi seguente per recuperare un valore da una coppia chiave-valore.

```
{ "Fn::GetParam" : [ "artifactName", "JSONFileName", "keyName" ] }
```

`artifactName`  
Il nome dell’artefatto che deve essere incluso come artefatto di input per l’azione associata.

`JSONFileName`  
Il nome di un file JSON contenuto nell’artefatto.

`keyName`  
Il nome della chiave di cui vuoi recuperare il valore.

### Esempi
<a name="w2aac21c17b9b9"></a>

Gli esempi seguenti illustrano come utilizzare la funzione `Fn::GetParam` in una sostituzione di parametro.

#### Sintassi
<a name="w2aac21c17b9b9b5"></a>

La seguente sostituzione di parametro specifica il parametro `WebSiteURL` recuperando il valore della chiave `URL` dal file `stack-output.json` che si trova nell’artefatto `WebStackOutput`.

```
{
  "WebSiteURL" : { "Fn::GetParam" : ["WebStackOutput", "stack-output.json", "URL"]}
}
```

#### CloudFormation frammenti di modello
<a name="w2aac21c17b9b9b7"></a>

I seguenti frammenti CloudFormation di modello, tratti da una CodePipeline pipeline, mostrano come passare gli output dello stack. Questi frammenti mostrano due fasi di definizione della pipeline. La prima fase crea uno stack e ne salva gli output nel file `TestOutput.json` nell’artefatto `StackAOutput`. Questi valori sono specificate dalle proprietà `OutputFileName` e `OutputArtifacts`.

Il nome dell’artefatto di input di origine per le fasi è `TemplateSource`. Il nome file del modello di stack è `teststackA.yaml` e il nome del file di configurazione è `test-configuration.json`. In entrambe le fasi, questi valori sono specificati per le proprietà `TemplateConfiguration` e `TemplatePath` come mostrato di seguito:

```
TemplateConfiguration: TemplateSource::test-configuration.json
TemplatePath: TemplateSource::teststackA.yaml
```

**Example Fase di creazione dello stack A**  

```
- Name: CreateTestStackA
  Actions:
    - Name: CloudFormationCreate
      ActionTypeId:
        Category: Deploy
        Owner: AWS
        Provider: CloudFormation
        Version: '1'
      Configuration:
        ActionMode: CREATE_UPDATE
        Capabilities: CAPABILITY_IAM
        OutputFileName: TestOutput.json
        RoleArn: !GetAtt [CFNRole, Arn]
        StackName: StackA
        TemplateConfiguration: TemplateSource::test-configuration.json
        TemplatePath: TemplateSource::teststackA.yaml
      InputArtifacts:
        - Name: TemplateSource
      OutputArtifacts:
        - Name: StackAOutput
      RunOrder: '1'
```

In una fase seguente, lo stack B utilizza gli output dello stack A. Nella proprietà `ParameterOverrides`, l’esempio utilizza la funzione `Fn::GetParam` per specificare il parametro `StackBInputParam`. Il valore risultante è il valore associato alla chiave `StackAOutputName`.

**Example Fase di creazione dello stack B**  

```
- Name: CreateTestStackB
  Actions:
    - Name: CloudFormationCreate
      ActionTypeId:
        Category: Deploy
        Owner: AWS
        Provider: CloudFormation
        Version: '1'
      Configuration:
        ActionMode: CREATE_UPDATE
        Capabilities: CAPABILITY_IAM
        RoleArn: !GetAtt [CFNRole, Arn]
        StackName: StackB
        TemplateConfiguration: TemplateSource::test-configuration.json
        TemplatePath: TemplateSource::teststackB.yaml
        ParameterOverrides: |
          {
            "StackBInputParam" : { "Fn::GetParam" : ["StackAOutput", "TestOutput.json", "StackAOutputName"]}
          }
      InputArtifacts:
        - Name: TemplateSource
        - Name: StackAOutput
      RunOrder: '1'
```

## Consulta anche
<a name="w2aac21c17c11"></a>

Le risorse correlate seguenti possono rivelarsi utili durante l’utilizzo di questi parametri.
+ *Per ulteriori informazioni sui parametri di CloudFormation azione in CodePipeline, consulta il riferimento alla [configurazione dell'azione di CloudFormation distribuzione nella Guida](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-CloudFormation.html) per l'utente.AWS CodePipeline *
+ Per i valori del modello di esempio per provider di operazioni, ad esempio per il campo `Owner` o i campi `configuration`, consulta il [Riferimento per la struttura delle operazioni](https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference.html) nella *Guida per l’utente di AWS CodePipeline *.
+ Per scaricare modelli di stack di pipeline di esempio in formato YAML o JSON, consulta [Tutorial: Create a pipeline with CloudFormation](https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-cloudformation.html) nella *Guida per l’utente di AWS CodePipeline *.