Migration de la Outils AWS pour PowerShell version 4 vers la version 5 - Outils AWS pour PowerShell (version 5)

La version 5 (V5) du Outils AWS pour PowerShell est sortie !

Pour plus d'informations sur les modifications majeures et la migration de vos applications, consultez la rubrique relative à la migration.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Migration de la Outils AWS pour PowerShell version 4 vers la version 5

Outils AWS pour PowerShell la version 5 (V5) comporte des modifications importantes, ce qui pourrait empêcher vos scripts existants de fonctionner. Cette rubrique décrit les modifications majeures apportées à la version 5 et les tâches que vous pourriez avoir à effectuer pour migrer votre environnement ou votre code depuis la version 4.

Pour plus d'informations sur les modifications notables apportées, consultez Outils AWS pour PowerShell également les ressources suivantes :

Note

Étant donné qu' Outils AWS pour PowerShell ils s'appuient sur le AWS SDK pour .NET, certaines des modifications liées à la version 4 du SDK peuvent également affecter la version 5 des outils pour. PowerShell Pour voir ce qui a changé pour la version 4 du AWS SDK pour .NET, consultez les informations de migration dans le guide du AWS SDK pour .NET développeur.

PowerShell Version minimale

Pour l'ancienne version à module unique et à gros module spécifique à Windows, appelée AWSPowerShell Outils AWS pour PowerShell, la version minimale prise en charge du module a été mise à jour PowerShell vers la version 5.1. Cela doit correspondre à la AWS SDK pour .NET nouvelle version minimale de .NET Framework 4.7.2.

Pour plus d'informations sur l'ancien module AWSPower Shell, consultezInstallation sur Windows.

Installer ou mettre à jour la version AWS.Tools V4

Lors de l'installation ou de la mise à jour Outils AWS pour PowerShell, la version modularisée des Update-AWSToolsModule applets de commandeAWS.Tools, called, the Install-AWSToolsModule and utilisera naturellement la version 5 de AWS.Tools par défaut. Si, pour une raison ou une autre, vous devez AWS.Tools plutôt installer ou mettre à jour la version 4 de, vous pouvez le faire en utilisant les commandes suivantes, respectivement :

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

Pour plus d'informations sur l'installation et la mise à jour des outils pour PowerShell, voir Mise en route

Annuler l'exécution de l'applet de commande avec CTRL+C et CMD+C

La version 5 de vous Outils AWS pour PowerShell permet d'annuler l'exécution de l'applet de commande à l'aide d'un raccourci clavier tel que CTRL+C ou CMD+C.

Types de valeurs nulles

Les types adoptés à partir du AWS SDK pour .NET ont été mis à jour pour utiliser les nouvelles modifications nullables du SDK. Par exemple, les propriétés de type int ont été modifiées enNullable[int]. Cette modification n'affecte pas la façon dont les valeurs des paramètres d'entrée sont spécifiées pour les applets de commande AWS, car ces paramètres de type de valeur étaient déjà modélisés comme nullables. Cependant, les types nullables pour la sortie de l'applet de commande constituent un changement radical, car les propriétés de la sortie de l'applet de commande contiendront les différentes valeurs par défaut des types $null au lieu des différentes valeurs par défaut.

L'exemple suivant illustre le comportement dans la version V4 des outils pour PowerShell. Dans cet exemple, la MissingMeta propriété est définie sur 0 car il s'agit de la valeur par défaut du typeint.

# 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'exemple suivant illustre le comportement dans la version 5 des outils pour PowerShell. Dans cet exemple, la MissingMeta propriété est définie sur$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

Dans la plupart des cas, aucune modification de code n'est nécessaire en raison PowerShell de la conversion implicite de types de valeurs nullables en types de valeurs non nullables. Il s'agit toutefois d'un changement radical pour le code de logique de comparaison qui vérifie explicitement la présence d'une valeur par défaut d'un type de valeur nullable. La logique de comparaison qui vérifie la valeur par défaut d'un type non nullable doit être modifiée pour vérifier. $null

Pour certains de ces types, les exemples suivants montrent comment mettre à jour le code écrit pour la version 4 qui vérifie si rien n'a été renvoyé :

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

Comme ils Outils AWS pour PowerShell s'appuient sur le AWS SDK pour .NET, il peut être utile d'examiner dans quelle mesure des modifications similaires ont affecté la version 4 du SDK. Pour obtenir ces informations, consultez le contenu relatif à la migration des types de valeurs dans le Guide du AWS SDK pour .NET développeur.

Collections

Certaines sorties de l'applet de commande ont été modifiées pour renvoyer $null plutôt que des collections vides de type List ou. Dictionary Pour plus d'informations, notamment sur la manière de revenir à un comportement traditionnel, consultez le contenu relatif à la migration des collections dans le guide du AWS SDK pour .NET développeur.

DateTime contre UTC DateTime

Certaines applets de commande V4 définissent DateTime des paramètres obsolètes, ainsi que des paramètres UTC DateTime alternatifs. Ces DateTime paramètres obsolètes ont été supprimés des applets de commande V5 et le nom des DateTime paramètres UTC a été remplacé par le nom d'origine des paramètres non UTC. DateTime

Voici quelques exemples d'applets de commande pour lesquels cette modification a été mise en œuvre.

  • Get-ASScheduledAction(applet de commande V4 et applet de commande V5) :

    • Le StartTime paramètre a été supprimé et son nom a été changé en « StartTime ». UtcStartTime

    • Le EndTime paramètre a été supprimé et son nom a été changé en « EndTime ». UtcEndTime

  • Copy-S3Object(applet de commande V4 et applet de commande V5) :

    • Le ModifiedSinceDate paramètre a été supprimé et son nom a été changé en « ModifiedSinceDate ». UtcModifiedSinceDate

    • Le UnmodifiedSinceDate paramètre a été supprimé et son nom a été changé en « UnmodifiedSinceDate ». UtcUnmodifiedSinceDate

Voici une liste complète des applets de commande concernés par cette modification.

Pipeline et $AWSHistory

Dans les versions Outils AWS pour PowerShell antérieures à la V4, une variable de session appelée $AWSHistory a été introduite pour conserver un enregistrement des appels d' AWS applets de commande et des réponses de service reçues pour chaque appel.

Dans la version 4 des outils pour PowerShell, cette variable de session était obsolète au profit du -Select * paramètre et de l'argument, qui peuvent être utilisés pour renvoyer la réponse complète du service. Le -Select * paramètre est décrit dansPipelining, sortie et itération.

Dans la version 5 des outils pour PowerShell, la variable de $AWSHistory session a été complètement supprimée. Par conséquent, les Set-AWSHistoryConfiguration applets de commande Clear-AWSHistory et ont également été supprimés.

Paramètre -PassThru

Le -PassThru paramètre a été supprimé. Lorsqu'une applet de commande ne renvoie aucune sortie par défaut, les utilisateurs peuvent demander une valeur de paramètre renvoyée en utilisant. -Select ^ParameterName Pour plus de détails et d'exemples, consultez le billet de blog Preview 1 of Outils AWS pour PowerShell V5.

Certaines applets de commande DynamoDB ont été déplacées et renommées

Les Get-DDBStreamList applets de commande Get-DDBStream et ont été déplacés du module Dynamo vers un nouveau DBV2 module appelé Dynamo. DBStreams Ils ont également été renommés DDBSStreamGet- List et Get- DDBSStream List, respectivement.

Enregistrement d'informations sensibles

Le comportement de journalisation a été modifié afin que les informations potentiellement sensibles soient moins susceptibles d'être incluses dans la sortie de l'applet de commande, en particulier dans CI/CD certains cas. Pour plus d'informations et des instructions sur la façon de revenir au comportement de la version 4, consultezEnregistrement d'informations sensibles.

Résolution des informations d'identification et des profils

Ils Outils AWS pour PowerShell ont été mis à jour pour utiliser certaines variables d'environnement lors de la résolution des informations d'identification d'une applet de commande :AWS_PROFILE, AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY, et. AWS_SESSION_TOKEN En outre, certains changements ont été apportés à l'ordre de résolution des informations d'identification et des profils. Pour de plus amples informations, veuillez consulter Résolution des informations d'identification et des profils.

Message d'erreur relatif aux informations d'identification

Le message d'erreur Outils AWS pour PowerShell renvoyé s'il ne parvient pas à obtenir les informations d'identification appropriées a changé.

Dans la version 4 des outils, le message était similaire au suivant :

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

Dans la version 5 des outils, le message est plutôt similaire au suivant :

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>

Itération automatique cohérente

Toutes les applets de commande paginées ont été mises à jour pour itérer automatiquement toutes les données par défaut. Vous pouvez inverser ce comportement à l'aide de l'AWSAutoIterationModeapplet de commande Set-. Si vous exécutezSet-AWSAutoIterationMode -IterationMode v4, les opérations itérées automatiquement dans la version 4 continueront à être itérées automatiquement, mais le reste reviendra à une itération manuelle. Pour déterminer le mode d'itération automatique défini, utilisez l'applet de commande Get- AWSAuto IterationMode.

Pour voir un exemple d'applet de commande mis à jour de cette manière, consultez l'applet de commande (Get-CWLLogEventapplet de commande V4 et V5).

Pour plus de détails sur l'itération automatique, consultez. Itération via des données paginées

Les applets de commande S3 sont obsolètes et remplacés

Pour Amazon S3, les applets de commande Get-S3ACL et Set-S3ACL sont devenus obsolètes. Utilisez plutôt les nouvelles applets de commande suivantes : Get-S3BucketACL, ACL, Set-S3BucketACL, Get-S3ObjectSet-S3ObjectACL.

Paramètres clés du nettoyage et du découpage S3

Certaines applets de commande Amazon S3 acceptent les paramètres nommés Key et. KeyPrefix La version 4 Outils AWS pour PowerShell nettoierait et réduirait ces paramètres de la manière suivante : supprimer les espaces de début, les barres obliques avant («/») et les barres obliques inverses (« \ »), convertir toutes les autres barres obliques inverses en barres obliques avant et supprimer les espaces de fin. Dans la version 5 des outils pour PowerShell, ce n'est plus le comportement par défaut. Vous pouvez revenir à ce comportement en spécifiant le -EnableLegacyKeyCleaning paramètre.

Ces informations s'appliquent aux applets de commande suivants :

Fonctionnalités de session interactives

Des fonctionnalités de session interactives ont été ajoutées à l'SSMSessionapplet de commande Start-, ce qui correspond au comportement. AWS CLI Par exemple :

Start-SSMSession -Target 'i-1234567890abcdef0'

Si vous avez besoin d'un comportement existant, incluez le -DisablePluginInvocation paramètre dans la Start-SSMSession commande.

CloudWatch alarmes

L'CWAlarmapplet de commande Get- a été mise à jour pour renvoyer par défaut les CloudWatch alarmes Amazon métriques et composites. Pour limiter la sortie aux alarmes métriques ou composites, vous devez spécifier le -AlarmType paramètre : Get-CWAlarm -AlarmType 'MetricAlarms' ouGet-CWAlarm -AlarmType 'CompositeAlarms', respectivement.

LitJson

Ils Outils AWS pour PowerShell ont été mis à jour pour être utilisés System.Text.Json plutôt que LitJson pour la sérialisation. LitJsona été retiré de la version 5 des outils.

La propriété LoggedAt de sortie

La propriété LoggedAt de sortie a été supprimée. Dans la version 4 des outils, cette propriété était renvoyée par défaut sur certaines applets de commande (par exemple Get-SSMCommandInvocationDetail etInvoke-LMFunction).

Si vous devez répliquer les informations fournies par la propriété de LoggedAt sortie, vous pouvez inclure quelque chose de similaire à ce qui suit dans vos scripts :

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

Éléments de programmation qui ont été supprimés

Un certain nombre d'éléments de programmation ont été supprimés de la version 5 des outils pour PowerShell. Ils sont énumérés ci-dessous, s'ils ne l'ont pas déjà été, ainsi que les mesures que vous pouvez prendre pour faciliter leur suppression, le cas échéant.

  • L'Invoke-LMFunctionAsyncapplet de commande.

  • L'Get-EC2ImageByNameapplet de commande. Utilisez plutôt l'applet de commande Get- SSMLatest EC2 Image.

  • CalculateContentMD5HeaderParamètre de l'Write-S3Objectapplet de commande.