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 :
-
Le billet de blog Outils AWS pour PowerShell V5 est désormais disponible pour tous.
-
Le problème du V5 Development Tracker dans. GitHub
En plus de la liste des modifications majeures, assurez-vous de consulter les détails de chaque aperçu. -
Le billet de blog Aperçu 1 de la Outils AWS pour PowerShell V5
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 -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'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 -BucketNameamzn-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.
-
Get- CWMetric Statistic (alias Get- CWMetric Statistics)
-
Get- RSCluster Snapshot (alias Get- RSCluster Snapshots)
-
Get- RSEvent (alias Get-RSEvents)
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_ID
AWS_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-CWLLogEvent
applet 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. LitJson
a é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-LMFunctionAsync
applet de commande. -
L'
Get-EC2ImageByName
applet de commande. Utilisez plutôt l'applet de commande Get- SSMLatest EC2 Image. -
CalculateContentMD5Header
Paramètre de l'Write-S3Objectapplet de commande.