

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

# Come risolvere i problemi relativi alle proprietà di sola scrittura nelle risorse AWS::Lambda::Function
<a name="generate-IaC-lambda-function"></a>

Questo argomento spiega come risolvere i problemi relativi alle proprietà di sola scrittura nelle risorse [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-function.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-lambda-function.html) quando si utilizza il generatore IaC.

## Problema
<a name="lambda-function-mutually-exclusive-properties-issue"></a>

La risorsa `AWS::Lambda::Function` dispone di tre set di proprietà che si escludono a vicenda per specificare il codice Lambda:
+ Le proprietà `Code/S3Bucket` e `Code/S3Key` e, facoltativamente, la proprietà `Code/S3ObjectVersion`
+ Proprietà `Code/ImageUri` 
+ Proprietà `Code/ZipFile` 

È possibile utilizzare solo uno di questi set per una determinata risorsa `AWS::Lambda::Function`.

Il generatore IaC non è in grado di determinare quale set di proprietà esclusive di sola scrittura sia stato utilizzato per creare o aggiornare la risorsa. Di conseguenza, include solo il primo set di proprietà nel modello generato. Le proprietà `Code/ImageUri` e `Code/ZipFile` vengono omesse. 

Inoltre, il generatore IaC emette i seguenti avvisi:
+ **`MUTUALLY_EXCLUSIVE_PROPERTIES`**: avvisa che `Code/S3Bucket` e `Code/S3Key` sono identificate come proprietà che si escludono a vicenda.
+ **`UNSUPPORTED_PROPERTIES`**: avvisa che la proprietà `Code/S3ObjectVersion` non è supportata.

Per includere risorse `AWS::Lambda::Function` in un modello generato, devi scaricare e aggiornare il modello con le proprietà del codice corrette.

## Risoluzione
<a name="lambda-function-mutually-exclusive-properties-resolution"></a>

**Se memorizzi il codice Lambda in un bucket Amazon S3 e non utilizzi la proprietà `S3ObjectVersion`**, puoi importare il modello generato senza alcuna modifica. Il generatore IaC ti chiederà il bucket e la chiave Amazon S3 come parametri del modello durante l’operazione di importazione.

****Se memorizzi il codice Lambda come repository Amazon ECR**, puoi aggiornare il modello utilizzando le seguenti istruzioni:**

1. Esegui il download del modello generato.

1. Rimuovi le proprietà e i parametri corrispondenti per le proprietà `Code/S3Bucket` e `Code/S3Key` dal modello generato.

1. Sostituisci le proprietà rimosse nel modello generato con la proprietà `Code/ImageUri`, specificando l’URL per il repository Amazon ECR.

1. Apri il modello generato nella console del generatore IaC e scegli il pulsante **Importa modello modificato**.

****Se memorizzi il codice Lambda come in un file zip**, puoi aggiornare il modello seguendo le seguenti istruzioni:**

1. Esegui il download del modello generato.

1. Rimuovi le proprietà e i parametri corrispondenti per le proprietà `Code/S3Bucket` e `Code/S3Key` dal modello generato.

1. Sostituisci le proprietà rimosse nel modello generato con la proprietà `Code/ZipFile`.

1. Apri il modello generato nella console del generatore IaC e scegli il pulsante **Importa modello modificato**.

****Se non disponi di una copia del codice Lambda**, puoi aggiornare il modello seguendo le seguenti istruzioni:**

1. Utilizza l'azione AWS Lambda [https://docs.aws.amazon.com/lambda/latest/api/API_GetFunction.html](https://docs.aws.amazon.com/lambda/latest/api/API_GetFunction.html)API (ad esempio, utilizzando il [https://docs.aws.amazon.com/cli/latest/reference/lambda/get-function.html](https://docs.aws.amazon.com/cli/latest/reference/lambda/get-function.html) AWS CLI comando).

1. Nella risposta, il parametro `RepositoryType` è `S3` se il codice si trova in un bucket Amazon S3 o `ECR` se il codice si trova in un repository Amazon ECR.

1. Nella risposta, il parametro `Location` contiene un URL prefirmato da utilizzare per scaricare il pacchetto di implementazione per 10 minuti. Scarica il codice.

1. Carica il codice in un bucket Amazon S3.

1. Esegui un’operazione di importazione con il modello generato e fornisci il nome e la chiave del bucket come valori dei parametri.