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
Questo argomento spiega come risolvere i problemi relativi alle proprietà di sola scrittura nelle AWS::Lambda::Functionrisorse quando si utilizza il generatore IAc.
Problema
La AWS::Lambda::Function
risorsa dispone di tre set di proprietà che si escludono a vicenda per specificare il codice Lambda:
-
Code/S3Bucket
eCode/S3Key
proprietà e, facoltativamente, la proprietàCode/S3ObjectVersion
-
Code/ImageUri
property -
Code/ZipFile
property
È possibile utilizzare solo uno di questi set per una determinata AWS::Lambda::Function
risorsa.
Il generatore IAc non è in grado di determinare quale set di proprietà esclusive di sola scrittura è stato utilizzato per creare o aggiornare la risorsa. Di conseguenza, include solo il primo set di proprietà nel modello generato. Le Code/ZipFile
proprietà Code/ImageUri
and vengono omesse.
Inoltre, il generatore IAc emette i seguenti avvisi:
-
MUTUALLY_EXCLUSIVE_PROPERTIES
— Lo avverteCode/S3Bucket
eCode/S3Key
vengono identificate come proprietà che si escludono a vicenda. -
UNSUPPORTED_PROPERTIES
— Avverte che la proprietà non è supportata.Code/S3ObjectVersion
Per includere AWS::Lambda::Function
risorse in un modello generato, è necessario scaricare e aggiornare il modello con le proprietà del codice corrette.
Risoluzione
Se memorizzi il codice Lambda in un bucket Amazon S3 e non utilizzi S3ObjectVersion
la proprietà, 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 ECR repository Amazon, puoi aggiornare il modello utilizzando le seguenti istruzioni:
-
Scarica il modello generato.
-
Rimuove le proprietà e i parametri corrispondenti per le
Code/S3Key
proprietàCode/S3Bucket
and dal modello generato. -
Sostituisci le proprietà rimosse nel modello generato con la
Code/ImageUri
proprietà, specificando URL per il ECR repository Amazon. -
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:
-
Scarica il modello generato.
-
Rimuove le proprietà e i parametri corrispondenti per le
Code/S3Key
proprietàCode/S3Bucket
and dal modello generato. -
Sostituite le proprietà rimosse nel modello generato con la
Code/ZipFile
proprietà. -
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:
-
Usa l' AWS Lambda
GetFunction
APIazione (ad esempio, usando ilaws lambda get-function
AWS CLI comando). -
Nella risposta, il
RepositoryType
parametro indicaS3
se il codice si trova in un bucket Amazon S3 oECR
se il codice si trova in un repository Amazon. ECR -
Nella risposta, il
Location
parametro contiene una firma predefinita URL che puoi utilizzare per scaricare il pacchetto di distribuzione per 10 minuti. Scarica il codice. -
Carica il codice in un bucket Amazon S3.
-
Esegui un'operazione di importazione con il modello generato e fornisci il nome e la chiave del bucket come valori dei parametri.