Migrazione dalla AWS Strumenti per PowerShell versione 4 alla versione 5 - AWS Strumenti per PowerShell (versione 5)

È 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:

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 -BucketName amzn-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 -BucketName amzn-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 del UtcStartTime parametro è stato modificato in "». StartTime

    • Il EndTime parametro è stato rimosso e il nome del UtcEndTime parametro è stato cambiato in "EndTime».

  • Copy-S3Object(cmdlet V4 e cmdlet V5):

    • Il ModifiedSinceDate parametro è stato rimosso e il nome del UtcModifiedSinceDate parametro è stato modificato in "». ModifiedSinceDate

    • Il UnmodifiedSinceDate parametro è stato rimosso e il nome del UtcUnmodifiedSinceDate parametro è stato cambiato in "UnmodifiedSinceDate».

Di seguito è riportato un elenco completo dei cmdlet interessati da questa modifica.

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

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.