È 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 del cmdlet con CTRL+C
La versione 5 di AWS Strumenti per PowerShell consente di annullare l'esecuzione dei cmdlet utilizzando una scorciatoia da tastiera come CTRL+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 V4PS >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 V5PS >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 StartTimeparametro è stato rimosso e il nome delUtcStartTimeparametro è stato modificato in "». StartTime
- 
            Il EndTimeparametro è stato rimosso e il nome delUtcEndTimeparametro è stato cambiato in "EndTime».
 
- 
            
- 
        Copy-S3Object(cmdlet V4 e cmdlet V5):- 
            Il ModifiedSinceDateparametro è stato rimosso e il nome delUtcModifiedSinceDateparametro è stato modificato in "». ModifiedSinceDate
- 
            Il UnmodifiedSinceDateparametro è stato rimosso e il nome delUtcUnmodifiedSinceDateparametro è 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, vedere 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 eseguite automaticamente 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-LMFunctionAsynccmdlet.
- 
        Il Get-EC2ImageByNamecmdlet. Utilizzare invece il cmdlet Get- SSMLatest EC2 Image.
- 
        Il CalculateContentMD5Headerparametro del cmdlet. Write-S3Object
