È stata rilasciata la versione 5 (V5) di! AWS Strumenti per PowerShell
Per informazioni sulle modifiche introduttive e sulla migrazione delle applicazioni, consulta l'argomento sulla migrazione.
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à.
Migrazione dalla AWS Strumenti per PowerShell versione 4 alla versione 5
AWS Strumenti per PowerShell la versione 5 (V5) presenta modifiche sostanziali, che potrebbero causare l'interruzione del funzionamento degli script esistenti. Questo argomento descrive le ultime modifiche apportate alla V5 e il possibile lavoro che potrebbe essere necessario eseguire per migrare l'ambiente o il codice dalla V4.
Per ulteriori informazioni sulle modifiche degne di nota, consulta AWS Strumenti per PowerShell anche le seguenti risorse:
-
Il post sul blog AWS Strumenti per PowerShell V5 ora
è disponibile al pubblico. -
Il problema V5 Development Tracker
in. GitHub Oltre all'elenco delle modifiche più importanti, assicurati di guardare i dettagli di ogni anteprima. -
Il post sul blog Anteprima 1 della AWS Strumenti per PowerShell V5
Nota
Poiché si AWS Strumenti per PowerShell basano su AWS SDK per .NET, alcune delle modifiche relative alla V4 dell'SDK potrebbero influire anche sulla V5 di Tools for. PowerShell Per vedere cosa è cambiato per la V4 di AWS SDK per .NET, consulta le informazioni sulla migrazione nella Guida per gli sviluppatori.AWS SDK per .NET
Versione minima PowerShell
Per la versione precedente, specifica per Windows, a modulo singolo e di grandi dimensioni AWS Strumenti per PowerShell, denominata AWSPowerShell, la PowerShell versione minima supportata del modulo è stata aggiornata alla 5.1. Questa deve corrispondere alla AWS SDK per .NET nuova versione minima di.NET Framework 4.7.2.
Per ulteriori informazioni sul modulo AWSPower Shell legacy, vedere. Installazione su Windows
Installa o aggiorna AWS.Tools
V4
Quando si installa o si aggiorna la versione modularizzata di AWS Strumenti per PowerShell, calledAWS.Tools
, i Update-AWSToolsModule
cmdlet Install-AWSToolsModule
and utilizzeranno naturalmente la versione 5 di per impostazione predefinita. AWS.Tools
Se per qualche motivo è AWS.Tools
invece necessario installare o aggiornare la versione 4 di, è possibile farlo utilizzando rispettivamente i seguenti comandi:
Install-AWSToolsModule -MaximumVersion '4.9.999' Update-AWSToolsModule -MaximumVersion '4.9.999'
Per ulteriori informazioni sull'installazione e l'aggiornamento degli strumenti per PowerShell, vedere Inizia a usare
Annullare l'esecuzione dei cmdlet con CTRL+C e CMD+C
La versione 5 di AWS Strumenti per PowerShell consente di annullare l'esecuzione dei cmdlet utilizzando una scorciatoia da tastiera come CTRL+C o CMD+C.
Tipi di valori annullabili
I tipi adottati da AWS SDK per .NET sono stati aggiornati per utilizzare le nuove modifiche annullabili dell'SDK. Ad esempio, le proprietà di tipo int
sono state modificate in. Nullable[int]
Questa modifica non influisce sul modo in cui i valori dei parametri di input vengono specificati per i cmdlet AWS, poiché tali parametri del tipo di valore erano già stati modellati come annullabili. Tuttavia, i tipi nullable per l'output dei cmdlet rappresentano una modifica fondamentale perché le proprietà all'interno dell'output del cmdlet conterranno invece i vari valori predefiniti per i tipi. $null
L'esempio seguente dimostra il comportamento in V4 di Tools for. PowerShell In questo esempio, la MissingMeta
proprietà è impostata su 0 perché è il valore predefinito di type. int
# In V4
PS >
Get-S3ObjectMetadata -BucketNameamzn-s3-demo-bucket
-Key 'test
' | >> Select LastModified, MissingMeta, ObjectLockRetainUntilDate, BucketKeyEnabled LastModified MissingMeta ObjectLockRetainUntilDate BucketKeyEnabled ------------ ----------- ------------------------- ---------------- 8/29/2023 10:20:44 PM 0 1/1/0001 12:00:00 AM
L'esempio seguente dimostra il comportamento in V5 di Tools for. PowerShell In questo esempio, la MissingMeta
proprietà è impostata su. $null
# In V5
PS >
Get-S3ObjectMetadata -BucketNameamzn-s3-demo-bucket
-Key 'test
' | >> Select LastModified, MissingMeta, ObjectLockRetainUntilDate, BucketKeyEnabled LastModified MissingMeta ObjectLockRetainUntilDate BucketKeyEnabled ------------ ----------- ------------------------- ---------------- 8/29/2023 10:20:44 PM
Nella maggior parte dei casi, non è necessaria alcuna modifica al codice perché prevede PowerShell una conversione implicita da tipi di valori nullabili a tipi di valori non annullabili. Tuttavia, si tratta di una modifica fondamentale per il codice di logica di confronto che verifica esplicitamente la presenza di un valore predefinito di tipo nullable. La logica di confronto che verifica il valore predefinito di un tipo non annullabile deve essere modificata per verificarla. $null
Per alcuni di questi tipi, gli esempi seguenti mostrano come aggiornare il codice scritto per V4 che verifica se non è stato restituito nulla:
#Type int: # In V4, if you were checking whether an int is 0... if($s3Metadata.MissingMeta -eq 0){} # In V5, check if the int is null instead: if($s3Metadata.MissingMeta -eq $null) {} # Type datetime: # In V4, if you were checking whether a datetime is '0001-01-01'... if($s3Metadata.ObjectLockRetainUntilDate -eq '0001-01-01'){} # In V5, check if the datetime is null instead: if($s3Metadata.ObjectLockRetainUntilDate -eq $null){} # Type boolean: # In V4, if you were checking whether a boolean is $false... if($s3Metadata.BucketKeyEnabled -eq $false){} # In V5, check if the boolean is null instead: if($s3Metadata.BucketKeyEnabled -eq $null)
Poiché si AWS Strumenti per PowerShell basa su AWS SDK per .NET, potrebbe essere utile esaminare in che modo modifiche simili hanno influito sulla versione 4 dell'SDK. Per trovare queste informazioni, consulta il contenuto sulla migrazione dei tipi di valore nella Guida per gli AWS SDK per .NET sviluppatori.
Raccolte
Alcuni output dei cmdlet sono stati modificati in modo da restituire $null
anziché raccolte vuote di tipo List
o. Dictionary
Per ulteriori informazioni, incluso come ripristinare il comportamento precedente, consulta il contenuto sulla migrazione per le raccolte nella Guida per gli AWS SDK per .NET sviluppatori.
DateTime rispetto a UTC DateTime
Alcuni cmdlet V4 definiscono DateTime parametri obsoleti, nonché parametri UTC alternativi. DateTime Questi DateTime parametri obsoleti sono stati rimossi dai cmdlet V5 e il nome dei parametri UTC è stato modificato con il nome originale dei DateTime parametri non UTC. DateTime
Di seguito sono riportati alcuni esempi di cmdlet per i quali è stata implementata questa modifica.
-
Get-ASScheduledAction
(cmdlet V4 e cmdlet V5):-
Il
StartTime
parametro è stato rimosso e il nome delUtcStartTime
parametro è stato modificato in "». StartTime -
Il
EndTime
parametro è stato rimosso e il nome delUtcEndTime
parametro è stato cambiato in "EndTime».
-
-
Copy-S3Object
(cmdlet V4 e cmdlet V5):-
Il
ModifiedSinceDate
parametro è stato rimosso e il nome delUtcModifiedSinceDate
parametro è stato modificato in "». ModifiedSinceDate -
Il
UnmodifiedSinceDate
parametro è stato rimosso e il nome delUtcUnmodifiedSinceDate
parametro è stato cambiato in "UnmodifiedSinceDate».
-
Di seguito è riportato un elenco completo dei cmdlet interessati da questa modifica.
-
Get- CWMetric Statistic (alias Get- CWMetric Statistics)
-
Get- RSCluster Snapshot (alias Get- RSCluster Snapshots)
-
Get- RSEvent (alias Get-) RSEvents
Pipeline e $AWSHistory
Nelle versioni AWS Strumenti per PowerShell precedenti alla V4, $AWSHistory
è stata introdotta una variabile di sessione denominata che mantiene un record delle chiamate dei AWS cmdlet e delle risposte del servizio ricevute per ogni chiamata.
Nella versione 4 di Tools for PowerShell, questa variabile di sessione è stata sostituita dal -Select *
parametro e dall'argomento, che possono essere utilizzati per restituire l'intera risposta del servizio. Il -Select
*
parametro è descritto in. Pipeline, output e iterazione
Nella versione 5 di Tools for PowerShell, la variabile di $AWSHistory
sessione è stata rimossa completamente. Di conseguenza, sono stati rimossi anche i Set-AWSHistoryConfiguration
cmdlet Clear-AWSHistory
and.
Parametro -PassThru
Il -PassThru
parametro è stato rimosso. Quando un cmdlet non restituisce alcun output per impostazione predefinita, gli utenti possono richiedere un valore di parametro restituito utilizzando. -Select ^ParameterName
Per ulteriori dettagli ed esempi, consulta il post di blog Preview 1 of AWS Strumenti per PowerShell
Alcuni cmdlet DynamoDB sono stati spostati e rinominati
I Get-DDBStreamList
cmdlet Get-DDBStream
and sono stati spostati dal modulo Dynamo a un nuovo modulo chiamato DBV2 Dynamo. DBStreams Sono stati inoltre rinominati rispettivamente in Get- e Get- DDBSStream List. DDBSStream
Registrazione di informazioni sensibili
Il comportamento di registrazione è stato modificato in modo da ridurre le probabilità di includere informazioni potenzialmente sensibili nell'output del cmdlet, specialmente in situazioni. CI/CD Per ulteriori informazioni e istruzioni su come ripristinare il comportamento della V4, vedere. Registrazione di informazioni sensibili
Risoluzione di credenziali e profili
Sono AWS Strumenti per PowerShell stati aggiornati per utilizzare determinate variabili di ambiente durante la risoluzione delle credenziali per un cmdlet:,, e. AWS_PROFILE
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN
Inoltre, sono state apportate alcune modifiche all'ordine di risoluzione per credenziali e profili. Per ulteriori informazioni, consulta Risoluzione di credenziali e profili.
Messaggio di errore relativo alle credenziali
Il messaggio di errore che AWS Strumenti per PowerShell restituisce se non riesce a ottenere le credenziali appropriate è cambiato.
Nella versione 4 degli strumenti, il messaggio era simile al seguente:
Get-SFNExecutionList -Region us-west-2 Get-SFNExecutionList: No credentials specified or obtained from persisted/shell defaults.
Nella versione 5 degli strumenti, il messaggio è invece simile al seguente:
Get-SFNExecutionList -Region us-west-2 Get-SFNExecutionList: Failed to resolve AWS credentials. The credential providers used to search for credentials returned the following errors: ... <list of specific exceptions>
Iterazione automatica coerente
Tutti i cmdlet impaginati sono stati aggiornati per eseguire l'iterazione automatica di tutti i dati per impostazione predefinita. È possibile annullare questo comportamento utilizzando il cmdlet Set-. AWSAuto IterationMode Se eseguiSet-AWSAutoIterationMode -IterationMode
v4
, le operazioni che hanno eseguito l'iterazione automatica nella v4 continueranno a eseguire l'iterazione automatica, ma il resto tornerà all'iterazione manuale. Per determinare la modalità su cui è impostata l'iterazione automatica, utilizzare il cmdlet Get- AWSAuto IterationMode.
Per visualizzare un esempio di cmdlet che è stato aggiornato in questo modo, vedere il cmdlet (cmdlet V4 e Get-CWLLogEvent
cmdlet V5).
Per informazioni dettagliate sull'iterazione automatica, vedere. Iterazione tramite dati paginati
I cmdlet S3 sono obsoleti e sostituiti
Per Amazon S3, i cmdlet Get-S3ACL e Set-S3ACL sono obsoleti. Utilizza invece i seguenti nuovi cmdletSet-S3Bucket: ACL Get-S3Bucket, ACL, ACL, Get-S3ObjectACL. Set-S3Object
Pulizia e rifinitura dei parametri chiave di S3
Alcuni cmdlet Amazon S3 accettano parametri denominati e. Key
KeyPrefix
La AWS Strumenti per PowerShell versione 4 pulisce e rifinisce questi parametri nei seguenti modi: rimuove gli spazi iniziali, le barre avanti («/») e le barre rovesciate («\»), converte tutte le altre barre rovesciate in barre e rimuove gli spazi finali. Nella versione 5 di Tools for, questo non è più il comportamento predefinito. PowerShell È possibile ripristinare questo comportamento specificando il parametro. -EnableLegacyKeyCleaning
Queste informazioni si applicano ai seguenti cmdlet:
Funzionalità di sessione interattive
Le funzionalità di sessione interattiva sono state aggiunte al SSMSession cmdlet Start-, che si allinea al comportamento. AWS CLI Per esempio:
Start-SSMSession -Target 'i-1234567890abcdef0'
Se è necessario un comportamento precedente, includere il -DisablePluginInvocation
parametro nel comando. Start-SSMSession
CloudWatch allarmi
Il CWAlarm cmdlet Get- è stato aggiornato per restituire CloudWatch allarmi Amazon metrici e compositi per impostazione predefinita. Per limitare l'output agli allarmi metrici o compositi, è necessario specificare il -AlarmType
parametro: o, rispettivamente. Get-CWAlarm -AlarmType
'MetricAlarms'
Get-CWAlarm -AlarmType 'CompositeAlarms'
LitJson
Sono AWS Strumenti per PowerShell stati aggiornati per essere utilizzati System.Text.Json
anziché per la serializzazioneLitJson
. LitJson
è stato rimosso dalla V5 degli strumenti.
La proprietà LoggedAt
di output
La proprietà LoggedAt
di output è stata rimossa. Nella versione 4 degli strumenti, questa proprietà è stata restituita per impostazione predefinita su alcuni cmdlet (ad esempio Get-SSMCommandInvocationDetail
and). Invoke-LMFunction
Se è necessario replicare le informazioni fornite dalla proprietà LoggedAt
output, è possibile includere qualcosa di simile a quanto segue negli script:
$loggedAt = (Get-Date).ToUniversalTime().ToString('s')
Elementi di programmazione che sono stati rimossi
Alcuni elementi di programmazione sono stati rimossi dalla versione 5 di Tools for PowerShell. Questi sono elencati di seguito, se non sono già stati trattati in precedenza, insieme alle potenziali misure che è possibile adottare per favorirne la rimozione, se del caso.
-
Il
Invoke-LMFunctionAsync
cmdlet. -
Il
Get-EC2ImageByName
cmdlet. Utilizzare invece il cmdlet Get- SSMLatest EC2 Image. -
Il
CalculateContentMD5Header
parametro del cmdlet. Write-S3Object