Migration von AWS -Tools für PowerShell Version 4 zu Version 5 - AWS -Tools für PowerShell (Ausführung 5)

Version 5 (V5) von AWS -Tools für PowerShell wurde veröffentlicht!

Informationen zu wichtigen Änderungen und zur Migration Ihrer Anwendungen finden Sie im Migrationsthema.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Migration von AWS -Tools für PowerShell Version 4 zu Version 5

AWS -Tools für PowerShell Version 5 (V5) enthält grundlegende Änderungen, die dazu führen könnten, dass Ihre vorhandenen Skripts nicht mehr funktionieren. In diesem Thema werden die wichtigsten Änderungen in Version 5 und mögliche Maßnahmen beschrieben, die Sie möglicherweise durchführen müssen, um Ihre Umgebung oder Ihren Code von Version 4 zu migrieren.

Weitere Informationen zu wichtigen Änderungen in der finden Sie AWS -Tools für PowerShell auch in den folgenden Ressourcen:

Anmerkung

Da sie AWS -Tools für PowerShell sich auf die verlassen AWS SDK für .NET, könnten sich einige der Änderungen im Zusammenhang mit Version 4 des SDK auch auf Version 5 der Tools für auswirken. PowerShell Informationen zu den Änderungen für Version 4 des AWS SDK für .NET finden Sie in den Migrationsinformationen im AWS SDK für .NET Entwicklerhandbuch.

Minimale PowerShell Version

Für die ältere, Windows-spezifische, einzelne, umfangreiche Modulversion der AWS -Tools für PowerShell sogenannten AWSPowerShell wurde die unterstützte PowerShell Mindestversion des Moduls auf 5.1 aktualisiert. Dies entspricht der AWS SDK für .NET neuen Mindestversion von.NET Framework 4.7.2.

Weitere Informationen zum AWSPower Legacy-Shell-Modul finden Sie unterInstallation unter Windows.

Installieren oder aktualisieren Sie AWS.Tools V4

Bei der Installation oder Aktualisierung der modularisierten Version der Update-AWSToolsModule Cmdlets AWS -Tools für PowerShellAWS.Tools, called, Install-AWSToolsModule and wird natürlich standardmäßig Version 5 von AWS.Tools verwendet. Falls Sie aus irgendeinem Grund AWS.Tools stattdessen Version 4 von installieren oder aktualisieren müssen, können Sie dies mit den folgenden Befehlen tun:

Install-AWSToolsModule -MaximumVersion '4.9.999' Update-AWSToolsModule -MaximumVersion '4.9.999'

Weitere Informationen zur Installation und Aktualisierung der Tools für PowerShell finden Sie unter Erste Schritte

Brechen Sie die Cmdlet-Ausführung mit STRG+C und CMD+C ab

Version 5 von AWS -Tools für PowerShell ermöglicht es Ihnen, die Ausführung von Cmdlets mithilfe einer Tastenkombination wie STRG+C oder CMD+C abzubrechen.

Werttypen, für die Nullwerte zulässig sind

Die aus dem übernommenen Typen AWS SDK für .NET wurden aktualisiert, sodass sie die neuen Änderungen des SDK verwenden, die NULL-Werte zulassen. Beispielsweise wurden die Eigenschaften des Typs in int geändert. Nullable[int] Diese Änderung hat keinen Einfluss darauf, wie Eingabeparameterwerte für AWS-Cmdlets angegeben werden, da diese Wertetypparameter bereits als NULL-Werte modelliert wurden. Typen, die Nullwerte für die Cmdlet-Ausgabe zulassen, sind jedoch eine grundlegende Änderung, da Eigenschaften in der Cmdlet-Ausgabe die verschiedenen Standardwerte für Typen anstelle der verschiedenen Standardwerte enthalten. $null

Das folgende Beispiel zeigt das Verhalten von Tools for in Version 4. PowerShell In diesem Beispiel ist die MissingMeta Eigenschaft auf 0 gesetzt, da dies der Standardwert von type istint.

# 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

Das folgende Beispiel demonstriert das Verhalten von Tools for PowerShell in Version 5. In diesem Beispiel ist die MissingMeta Eigenschaft auf $null gesetzt.

# 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

In den meisten Fällen ist keine Codeänderung erforderlich, da PowerShell eine implizite Konvertierung von Werttypen, für die keine Nullwerte zulässig sind, in Werttypen erfolgt, die keine NULL-Werte zulassen. Dies ist jedoch eine grundlegende Änderung für Code mit Vergleichslogik, der explizit nach einem Standardwert eines Nullwerttyps sucht. Die Vergleichslogik, die nach dem Standardwert eines Typs sucht, der keine NULL-Werte zulässt, muss geändert werden, um nach einem Wert zu suchen. $null

Für einige dieser Typen zeigen die folgenden Beispiele, wie der für V4 geschriebene Code aktualisiert wird, der prüft, ob nichts zurückgegeben wurde:

#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)

Da sie auf das AWS -Tools für PowerShell angewiesen sind AWS SDK für .NET, könnte es nützlich sein, zu untersuchen, wie sich ähnliche Änderungen auf Version 4 des SDK ausgewirkt haben. Diese Informationen finden Sie in der Dokumentation zur Migration von Werttypen im AWS SDK für .NET Entwicklerhandbuch.

Sammlungen

Einige Cmdlet-Ausgaben wurden dahingehend geändert, dass $null statt leerer Sammlungen des Typs List oder zurückgegeben werden. Dictionary Weitere Informationen, einschließlich der Rückkehr zum alten Verhalten, finden Sie in den Migrationsinhalten für Sammlungen im AWS SDK für .NET Entwicklerhandbuch.

DateTime im Vergleich zu UTC DateTime

Einige V4-Cmdlets definieren veraltete DateTime Parameter sowie alternative DateTime UTC-Parameter. Diese veralteten DateTime Parameter wurden aus den V5-Cmdlets entfernt, und der Name der DateTime UTC-Parameter wurde in den ursprünglichen Namen der Nicht-UTC-Parameter geändert. DateTime

Im Folgenden finden Sie einige Beispiele für Cmdlets, für die diese Änderung implementiert wurde.

  • Get-ASScheduledAction(V4-Cmdlet und V5-Cmdlet):

    • Der StartTime Parameter wurde entfernt und der Name des UtcStartTime Parameters wurde in "" geändert. StartTime

    • Der EndTime Parameter wurde entfernt und der Name des UtcEndTime Parameters wurde in "EndTime" geändert.

  • Copy-S3Object(V4-Cmdlet und V5-Cmdlet):

    • Der ModifiedSinceDate Parameter wurde entfernt und der Name des UtcModifiedSinceDate Parameters wurde in "" geändert. ModifiedSinceDate

    • Der UnmodifiedSinceDate Parameter wurde entfernt und der Name des UtcUnmodifiedSinceDate Parameters wurde in "UnmodifiedSinceDate" geändert.

Im Folgenden finden Sie eine vollständige Liste der Cmdlets, die von dieser Änderung betroffen sind.

Pipelining und $AWSHistory

In Versionen AWS -Tools für PowerShell vor Version 4 $AWSHistory wurde eine Sitzungsvariable namens eingeführt, die eine Aufzeichnung der AWS Cmdlet-Aufrufe und der Dienstantworten verwaltet, die für jeden Aufruf empfangen wurden.

In Version 4 der Tools for PowerShell wurde diese Sitzungsvariable zugunsten des -Select * Parameters und des Arguments, mit denen die gesamte Dienstantwort zurückgegeben werden kann, als veraltet eingestuft. Der -Select * Parameter wird unter beschrieben. Pipelining, Ausgabe und Iteration

In Version 5 der Tools for PowerShell wurde die $AWSHistory Sitzungsvariable vollständig entfernt. Infolgedessen wurden auch die Set-AWSHistoryConfiguration Cmdlets Clear-AWSHistory und entfernt.

Der Parameter -PassThru

Der -PassThru Parameter wurde entfernt. Wenn ein Cmdlet standardmäßig keine Ausgabe zurückgibt, können Benutzer einen zurückgegebenen Parameterwert anfordern, indem sie -Select ^ParameterName Weitere Details und Beispiele finden Sie im Blogbeitrag Preview 1 of AWS -Tools für PowerShell V5.

Einige DynamoDB-Cmdlets wurden verschoben und umbenannt

Die Get-DDBStreamList Cmdlets Get-DDBStream und wurden aus dem Dynamo-Modul in ein neues DBV2 Modul namens Dynamo verschoben. DBStreams Sie wurden außerdem in Get- bzw. Get DDBSStream - DDBSStream List umbenannt.

Protokollierung sensibler Informationen

Das Protokollierungsverhalten wurde geändert, sodass es weniger wahrscheinlich ist, dass potenziell vertrauliche Informationen in die Cmdlet-Ausgabe aufgenommen werden, insbesondere in CI/CD bestimmten Situationen. Weitere Informationen und Anweisungen zur Wiederherstellung des V4-Verhaltens finden Sie unter. Protokollierung vertraulicher Informationen

Auflösung von Anmeldeinformationen und Profilen

Sie AWS -Tools für PowerShell wurden aktualisiert und verwenden nun bestimmte Umgebungsvariablen bei der Auflösung von Anmeldeinformationen für ein Cmdlet:AWS_PROFILE,, undAWS_ACCESS_KEY_ID. AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN Darüber hinaus wurden einige Änderungen in der Reihenfolge der Auflösung von Anmeldeinformationen und Profilen vorgenommen. Weitere Informationen finden Sie unter Auflösung von Anmeldeinformationen und Profilen.

Fehlermeldung bei den Anmeldeinformationen

Die Fehlermeldung, die AWS -Tools für PowerShell zurückgibt, wenn die entsprechenden Anmeldeinformationen nicht abgerufen werden können, hat sich geändert.

In Version 4 der Tools lautete die Meldung etwa wie folgt:

Get-SFNExecutionList -Region us-west-2 Get-SFNExecutionList: No credentials specified or obtained from persisted/shell defaults.

In Version 5 der Tools sieht die Meldung stattdessen wie folgt aus:

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>

Konsistente automatische Iteration

Alle paginierten Cmdlets wurden aktualisiert, sodass sie standardmäßig alle Daten automatisch iterieren. Sie können dieses Verhalten rückgängig machen, indem Sie das Set-Cmdlet verwenden. AWSAuto IterationMode Wenn Sie ausführenSet-AWSAutoIterationMode -IterationMode v4, werden Operationen, die in Version 4 automatisch iteriert wurden, immer noch automatisch iteriert, aber der Rest kehrt zur manuellen Iteration zurück. Verwenden Sie das Cmdlet Get- AWSAuto IterationMode, um zu ermitteln, auf welchen Modus die automatische Iteration eingestellt ist.

Ein Beispiel für ein Cmdlet, das auf diese Weise aktualisiert wurde, finden Sie im Cmdlet (V4-Cmdlet und Get-CWLLogEvent V5-Cmdlet).

Einzelheiten zur automatischen Iteration finden Sie unter. Iteration durch seitenweise gespeicherte Daten

S3-Cmdlets sind veraltet und wurden ersetzt

Für Amazon S3 sind die Cmdlets Get-S3ACL und Set-S3ACL veraltet. Verwenden Sie stattdessen die folgenden neuen Cmdlets: ACL, ACL, ACL, ACL. Get-S3Bucket Set-S3Bucket Get-S3Object Set-S3Object

S3-Schlüsselparameter bereinigen und kürzen

Bestimmte Amazon S3 S3-Cmdlets akzeptieren Parameter mit dem Namen Key und. KeyPrefix Version 4 von AWS -Tools für PowerShell würde diese Parameter auf folgende Weise bereinigen und kürzen: führende Leerzeichen, Schrägstriche („/“) und umgekehrte Schrägstriche („\“) entfernen, alle anderen umgekehrten Schrägstriche in Schrägstriche umwandeln und nachfolgende Leerzeichen entfernen. In Version 5 der Tools für PowerShell ist dies nicht mehr das Standardverhalten. Sie können zu diesem Verhalten zurückkehren, indem Sie den -EnableLegacyKeyCleaning Parameter angeben.

Diese Informationen gelten für die folgenden Cmdlets:

Funktionen für interaktive Sitzungen

Dem SSMSessionStart-Cmdlet wurden interaktive Sitzungsfunktionen hinzugefügt, die dem Verhalten entsprechen. AWS CLI Zum Beispiel:

Start-SSMSession -Target 'i-1234567890abcdef0'

Wenn Sie ein veraltetes Verhalten benötigen, fügen Sie den -DisablePluginInvocation Parameter in den Befehl ein. Start-SSMSession

CloudWatch Alarme

Das CWAlarm Cmdlet Get- wurde aktualisiert und gibt nun standardmäßig sowohl metrische als auch zusammengesetzte CloudWatch Amazon-Alarme zurück. Um die Ausgabe auf metrische oder zusammengesetzte Alarme zu beschränken, müssen Sie jeweils den -AlarmType Parameter: Get-CWAlarm -AlarmType 'MetricAlarms' oder Get-CWAlarm -AlarmType 'CompositeAlarms' angeben.

LitJson

AWS -Tools für PowerShell Sie wurden aktualisiert, sodass sie jetzt verwendet werden und System.Text.Json nicht mehr LitJson zur Serialisierung verwendet werden. LitJsonwurde aus Version 5 der Tools entfernt.

Die LoggedAt Ausgabeeigenschaft

Die LoggedAt Ausgabeeigenschaft wurde entfernt. In Version 4 der Tools wurde diese Eigenschaft standardmäßig für einige Cmdlets zurückgegeben (z. B. Get-SSMCommandInvocationDetail undInvoke-LMFunction).

Wenn Sie die von der LoggedAt Output-Eigenschaft bereitgestellten Informationen replizieren müssen, können Sie etwas Ähnliches wie das Folgende in Ihre Skripts aufnehmen:

$loggedAt = (Get-Date).ToUniversalTime().ToString('s')

Programmierelemente, die entfernt wurden

Eine Reihe von Programmierelementen wurde aus Version 5 der Tools for PowerShell entfernt. Diese sind unten aufgeführt, sofern sie nicht bereits behandelt wurden, zusammen mit möglichen Schritten, die Sie ergreifen können, um deren Entfernung zu ermöglichen, falls vorhanden.