Découverte d'applets de commande et alias - AWS Tools for PowerShell

Découverte d'applets de commande et alias

Cette section explique comment répertorier les services pris en charge par les AWS Tools for PowerShell, comment afficher l'ensemble d'applets de commande fourni par les AWS Tools for PowerShell en soutien de ces services, et comment trouver les autres noms d'applet de commande (également appelés alias) pour accéder à ces services.

Découverte d'applets de commande

Toutes les opérations de service AWS (ou API) sont documentées dans le Guide de référence des API pour chaque service. Par exemple, consultez la Référence d'API IAM. Dans la plupart des cas, il existe une correspondance individuelle entre une API de service AWS et une applet de commande PowerShell AWS. Pour obtenir le nom de l'applet de commande qui correspond à un nom d'API de service AWS, exécutez l'applet de commande AWS AWS Get-AWSCmdletName avec le paramètre -ApiOperation et le nom de l'API de service AWS. Par exemple, pour obtenir tous les noms d'applets de commande possibles correspondant aux API de service DescribeInstances AWS disponibles, exécutez la commande suivante :

PS > Get-AWSCmdletName -ApiOperation DescribeInstances CmdletName ServiceOperation ServiceName CmdletNounPrefix ---------- ---------------- ----------- ---------------- Get-EC2Instance DescribeInstances Amazon Elastic Compute Cloud EC2 Get-GMLInstance DescribeInstances Amazon GameLift Service GML

Le paramètre -ApiOperation est le paramètre par défaut. Vous pouvez donc omettre le nom du paramètre. L'exemple suivant est équivalent au précédent :

PS > Get-AWSCmdletName DescribeInstances

Si vous connaissez les noms de l'API et du service, vous pouvez inclure le paramètre -Service, ainsi que le préfixe du nom de l'applet de commande ou une partie du nom de service AWS. Par exemple, le préfixe du nom de l'applet de commande pour Amazon EC2 est EC2. Pour obtenir le nom de l'applet de commande qui correspond à l'API DescribeInstances dans le service Amazon EC2, exécutez l'une des commandes suivantes. Elles conduisent toutes à la même sortie :

PS > Get-AWSCmdletName -ApiOperation DescribeInstances -Service EC2 PS > Get-AWSCmdletName -ApiOperation DescribeInstances -Service Compute PS > Get-AWSCmdletName -ApiOperation DescribeInstances -Service "Compute Cloud" CmdletName ServiceOperation ServiceName CmdletNounPrefix ---------- ---------------- ----------- ---------------- Get-EC2Instance DescribeInstances Amazon Elastic Compute Cloud EC2

Les valeurs de paramètre de ces commandes sont sensibles à la casse.

Si vous ne connaissez pas le nom de l'API de service AWS souhaitée ou du service AWS, utilisez le paramètre -ApiOperation, ainsi que le modèle de correspondance et le paramètre -MatchWithRegex. Par exemple, pour obtenir tous les noms d'applets de commande disponibles qui contiennent SecurityGroup, exécutez la commande suivante :

PS > Get-AWSCmdletName -ApiOperation SecurityGroup -MatchWithRegex CmdletName ServiceOperation ServiceName CmdletNounPrefix ---------- ---------------- ----------- ---------------- Approve-ECCacheSecurityGroupIngress AuthorizeCacheSecurityGroupIngress Amazon ElastiCache EC Get-ECCacheSecurityGroup DescribeCacheSecurityGroups Amazon ElastiCache EC New-ECCacheSecurityGroup CreateCacheSecurityGroup Amazon ElastiCache EC Remove-ECCacheSecurityGroup DeleteCacheSecurityGroup Amazon ElastiCache EC Revoke-ECCacheSecurityGroupIngress RevokeCacheSecurityGroupIngress Amazon ElastiCache EC Add-EC2SecurityGroupToClientVpnTargetNetwrk ApplySecurityGroupsToClientVpnTargetNetwork Amazon Elastic Compute Cloud EC2 Get-EC2SecurityGroup DescribeSecurityGroups Amazon Elastic Compute Cloud EC2 Get-EC2SecurityGroupReference DescribeSecurityGroupReferences Amazon Elastic Compute Cloud EC2 Get-EC2StaleSecurityGroup DescribeStaleSecurityGroups Amazon Elastic Compute Cloud EC2 Grant-EC2SecurityGroupEgress AuthorizeSecurityGroupEgress Amazon Elastic Compute Cloud EC2 Grant-EC2SecurityGroupIngress AuthorizeSecurityGroupIngress Amazon Elastic Compute Cloud EC2 New-EC2SecurityGroup CreateSecurityGroup Amazon Elastic Compute Cloud EC2 Remove-EC2SecurityGroup DeleteSecurityGroup Amazon Elastic Compute Cloud EC2 Revoke-EC2SecurityGroupEgress RevokeSecurityGroupEgress Amazon Elastic Compute Cloud EC2 Revoke-EC2SecurityGroupIngress RevokeSecurityGroupIngress Amazon Elastic Compute Cloud EC2 Update-EC2SecurityGroupRuleEgressDescription UpdateSecurityGroupRuleDescriptionsEgress Amazon Elastic Compute Cloud EC2 Update-EC2SecurityGroupRuleIngressDescription UpdateSecurityGroupRuleDescriptionsIngress Amazon Elastic Compute Cloud EC2 Edit-EFSMountTargetSecurityGroup ModifyMountTargetSecurityGroups Amazon Elastic File System EFS Get-EFSMountTargetSecurityGroup DescribeMountTargetSecurityGroups Amazon Elastic File System EFS Join-ELBSecurityGroupToLoadBalancer ApplySecurityGroupsToLoadBalancer Elastic Load Balancing ELB Set-ELB2SecurityGroup SetSecurityGroups Elastic Load Balancing V2 ELB2 Enable-RDSDBSecurityGroupIngress AuthorizeDBSecurityGroupIngress Amazon Relational Database Service RDS Get-RDSDBSecurityGroup DescribeDBSecurityGroups Amazon Relational Database Service RDS New-RDSDBSecurityGroup CreateDBSecurityGroup Amazon Relational Database Service RDS Remove-RDSDBSecurityGroup DeleteDBSecurityGroup Amazon Relational Database Service RDS Revoke-RDSDBSecurityGroupIngress RevokeDBSecurityGroupIngress Amazon Relational Database Service RDS Approve-RSClusterSecurityGroupIngress AuthorizeClusterSecurityGroupIngress Amazon Redshift RS Get-RSClusterSecurityGroup DescribeClusterSecurityGroups Amazon Redshift RS New-RSClusterSecurityGroup CreateClusterSecurityGroup Amazon Redshift RS Remove-RSClusterSecurityGroup DeleteClusterSecurityGroup Amazon Redshift RS Revoke-RSClusterSecurityGroupIngress RevokeClusterSecurityGroupIngress Amazon Redshift RS

Si vous connaissez le nom du service AWS, mais pas celui de l'API de service AWS, incluez le paramètre -MatchWithRegex et le paramètre -Service pour limiter la recherche à un seul service. Par exemple, pour obtenir tous les noms d'applets de commande qui contiennent SecurityGroup uniquement dans le service Amazon EC2, exécutez la commande suivante :

PS > Get-AWSCmdletName -ApiOperation SecurityGroup -MatchWithRegex -Service EC2 CmdletName ServiceOperation ServiceName CmdletNounPrefix ---------- ---------------- ----------- ---------------- Add-EC2SecurityGroupToClientVpnTargetNetwrk ApplySecurityGroupsToClientVpnTargetNetwork Amazon Elastic Compute Cloud EC2 Get-EC2SecurityGroup DescribeSecurityGroups Amazon Elastic Compute Cloud EC2 Get-EC2SecurityGroupReference DescribeSecurityGroupReferences Amazon Elastic Compute Cloud EC2 Get-EC2StaleSecurityGroup DescribeStaleSecurityGroups Amazon Elastic Compute Cloud EC2 Grant-EC2SecurityGroupEgress AuthorizeSecurityGroupEgress Amazon Elastic Compute Cloud EC2 Grant-EC2SecurityGroupIngress AuthorizeSecurityGroupIngress Amazon Elastic Compute Cloud EC2 New-EC2SecurityGroup CreateSecurityGroup Amazon Elastic Compute Cloud EC2 Remove-EC2SecurityGroup DeleteSecurityGroup Amazon Elastic Compute Cloud EC2 Revoke-EC2SecurityGroupEgress RevokeSecurityGroupEgress Amazon Elastic Compute Cloud EC2 Revoke-EC2SecurityGroupIngress RevokeSecurityGroupIngress Amazon Elastic Compute Cloud EC2 Update-EC2SecurityGroupRuleEgressDescription UpdateSecurityGroupRuleDescriptionsEgress Amazon Elastic Compute Cloud EC2 Update-EC2SecurityGroupRuleIngressDescription UpdateSecurityGroupRuleDescriptionsIngress Amazon Elastic Compute Cloud EC2

Si vous connaissez le nom de la commande AWS Command Line Interface (AWS CLI), vous pouvez utiliser le paramètre -AwsCliCommand et le nom de la commande AWS CLI souhaitée pour obtenir le nom de l'applet de commande correspondant à la même API. Par exemple, pour obtenir le nom de l'applet de commande qui correspond à l'appel de la commande authorize-security-group-ingress AWS CLI dans le service Amazon EC2, exécutez la commande suivante :

PS > Get-AWSCmdletName -AwsCliCommand "aws ec2 authorize-security-group-ingress" CmdletName ServiceOperation ServiceName CmdletNounPrefix ---------- ---------------- ----------- ---------------- Grant-EC2SecurityGroupIngress AuthorizeSecurityGroupIngress Amazon Elastic Compute Cloud EC2

L'applet de commande Get-AWSCmdletName a uniquement besoin du nom de la commande AWS CLI pour identifier le service et l'API AWS.

Pour obtenir la liste de toutes les applets de commande de Tools for PowerShell Core, exécutez l'applet de commande PowerShell Get-Command, comme illustré dans l'exemple suivant.

PS > Get-Command -Module AWSPowerShell.NetCore

Vous pouvez exécuter la même commande avec -Module AWSPowerShell pour afficher les applets de commande dans les AWS Tools for Windows PowerShell.

L'applet de commande Get-Command génère la liste des applets de commande dans l'ordre alphabétique. Notez que, par défaut, la liste est triée par verbe PowerShell, plutôt que par nom PowerShell.

Pour trier les résultats par service, exécutez la commande suivante :

PS > Get-Command -Module AWSPowerShell.NetCore | Sort-Object Noun,Verb

Pour filtrer les applets de commande renvoyées par l'applet de commande Get-Command, orientez la sortie vers l'applet de commande PowerShell Select-String. Par exemple, pour afficher l'ensemble des applets de commande qui fonctionnent avec les régions AWS, exécutez la commande suivante :

PS > Get-Command -Module AWSPowerShell.NetCore | Select-String region Clear-DefaultAWSRegion Copy-HSM2BackupToRegion Get-AWSRegion Get-DefaultAWSRegion Get-EC2Region Get-LSRegionList Get-RDSSourceRegion Set-DefaultAWSRegion

Vous pouvez également rechercher les applets de commande d'un service spécifique en filtrant le préfixe de service des noms d'applet de commande. Pour afficher la liste des préfixes de service disponibles, exécutez Get-AWSPowerShellVersion -ListServiceVersionInfo. L'exemple suivant renvoie les applets de commande qui prennent en charge le service Amazon CloudWatch Events.

PS > Get-Command -Module AWSPowerShell -Noun CWE* CommandType Name Version Source ----------- ---- ------- ------ Cmdlet Add-CWEResourceTag 3.3.563.1 AWSPowerShell.NetCore Cmdlet Disable-CWEEventSource 3.3.563.1 AWSPowerShell.NetCore Cmdlet Disable-CWERule 3.3.563.1 AWSPowerShell.NetCore Cmdlet Enable-CWEEventSource 3.3.563.1 AWSPowerShell.NetCore Cmdlet Enable-CWERule 3.3.563.1 AWSPowerShell.NetCore Cmdlet Get-CWEEventBus 3.3.563.1 AWSPowerShell.NetCore Cmdlet Get-CWEEventBusList 3.3.563.1 AWSPowerShell.NetCore Cmdlet Get-CWEEventSource 3.3.563.1 AWSPowerShell.NetCore Cmdlet Get-CWEEventSourceList 3.3.563.1 AWSPowerShell.NetCore Cmdlet Get-CWEPartnerEventSource 3.3.563.1 AWSPowerShell.NetCore Cmdlet Get-CWEPartnerEventSourceAccountList 3.3.563.1 AWSPowerShell.NetCore Cmdlet Get-CWEPartnerEventSourceList 3.3.563.1 AWSPowerShell.NetCore Cmdlet Get-CWEResourceTag 3.3.563.1 AWSPowerShell.NetCore Cmdlet Get-CWERule 3.3.563.1 AWSPowerShell.NetCore Cmdlet Get-CWERuleDetail 3.3.563.1 AWSPowerShell.NetCore Cmdlet Get-CWERuleNamesByTarget 3.3.563.1 AWSPowerShell.NetCore Cmdlet Get-CWETargetsByRule 3.3.563.1 AWSPowerShell.NetCore Cmdlet New-CWEEventBus 3.3.563.1 AWSPowerShell.NetCore Cmdlet New-CWEPartnerEventSource 3.3.563.1 AWSPowerShell.NetCore Cmdlet Remove-CWEEventBus 3.3.563.1 AWSPowerShell.NetCore Cmdlet Remove-CWEPartnerEventSource 3.3.563.1 AWSPowerShell.NetCore Cmdlet Remove-CWEPermission 3.3.563.1 AWSPowerShell.NetCore Cmdlet Remove-CWEResourceTag 3.3.563.1 AWSPowerShell.NetCore Cmdlet Remove-CWERule 3.3.563.1 AWSPowerShell.NetCore Cmdlet Remove-CWETarget 3.3.563.1 AWSPowerShell.NetCore Cmdlet Test-CWEEventPattern 3.3.563.1 AWSPowerShell.NetCore Cmdlet Write-CWEEvent 3.3.563.1 AWSPowerShell.NetCore Cmdlet Write-CWEPartnerEvent 3.3.563.1 AWSPowerShell.NetCore Cmdlet Write-CWEPermission 3.3.563.1 AWSPowerShell.NetCore Cmdlet Write-CWERule 3.3.563.1 AWSPowerShell.NetCore Cmdlet Write-CWETarget 3.3.563.1 AWSPowerShell.NetCore

Dénomination d'applets de commande et alias

Les applets de commande fournies par les AWS Tools for PowerShell pour chaque service sont basées sur les méthodes fournies par le kit SDK AWS du service. Cependant, en raison des conventions de dénomination obligatoires de PowerShell, le nom d'une applet de commande peut être différent du nom de l'appel d'API ou de la méthode correspondante. Par exemple, l'applet de commande Get-EC2Instance est basée sur la méthode Amazon EC2DescribeInstances.

Dans certains cas, le nom de l'applet de commande peut être similaire à un nom de méthode, mais il peut en fait exécuter une fonction différente. Par exemple, la méthode Amazon S3GetObject récupère un objet Amazon S3. Cependant, l'applet de commande Get-S3Object renvoie les informations sur un objet Amazon S3 plutôt que l'objet lui-même.

PS > Get-S3Object -BucketName text-content -Key aws-tech-docs ETag : "df000002a0fe0000f3c000004EXAMPLE" BucketName : aws-tech-docs Key : javascript/frameset.js LastModified : 6/13/2011 1:24:18 PM Owner : Amazon.S3.Model.Owner Size : 512 StorageClass : STANDARD

Pour obtenir un objet S3 avec les AWS Tools for PowerShell, exécutez l'applet de commande Read-S3Object :

PS > Read-S3Object -BucketName text-content -Key text-object.txt -file c:\tmp\text-object-download.text Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 11/5/2012 7:29 PM 20622 text-object-download.text
Note

L'aide de l'applet de commande d'une applet de commande AWS fournit le nom de l'API SDK AWS sur laquelle l'applet de commande est basée.

Pour plus d'informations sur les verbes PowerShell standard et leurs significations, consultez Approved Verbs for PowerShell Commands.

Toutes les applets de commande AWS qui utilisent le verbe Remove, ainsi que l'applet de commande Stop-EC2Instance quand vous ajoutez le paramètre -Terminate, demandent une confirmation avant de continuer. Pour contourner la confirmation, ajoutez le paramètre -Force à votre commande.

Important

Les applets de commande AWS ne prennent pas en charge le commutateur -WhatIf.

Aliases

Le programme d'installation AWS Tools for PowerShell installe un fichier d'alias contenant les alias d'un grand nombre d'applets de commande AWS. Vous trouverez peut-être ces alias plus intuitifs que les noms d'applets de commande. Par exemple, les noms de services et les noms de méthode SDK AWS remplacent les noms et les verbes PowerShell dans certains alias. L'alias EC2-DescribeInstances en est un exemple.

D'autres alias utilisent des verbes qui, bien qu'ils ne suivent pas les conventions PowerShell standard, peuvent être plus descriptifs de l'opération réelle. Par exemple, le fichier d'alias associe l'alias Get-S3Content à l'applet de commande Read-S3Object.

PS > Set-Alias -Name Get-S3Content -Value Read-S3Object

Le fichier d'alias se trouve dans le répertoire d'installation des AWS Tools for PowerShell. Pour charger les alias dans votre environnement, effectuez un appel de source dot source du fichier. L'exemple suivant est un exemple basé sur Windows.

PS > . "C:\Program Files (x86)\AWS Tools\PowerShell\AWSPowershell\AWSAliases.ps1"

Pour un shell Linux ou macOS, il peut se présenter comme suit :

. ~/.local/share/powershell/Modules/AWSPowerShell.NetCore/3.3.563.1/AWSAliases.ps1

Pour afficher tous les alias des AWS Tools for PowerShell, exécutez la commande suivante. Cette commande utilise l'alias ? de l'applet de commande PowerShell Where-Object et la propriété Source pour filtrer uniquement les alias provenant du module AWSPowerShell.NetCore.

PS > Get-Alias | ? Source -like "AWSPowerShell.NetCore" CommandType Name Version Source ----------- ---- ------- ------ Alias Add-ASInstances 3.3.343.0 AWSPowerShell Alias Add-CTTag 3.3.343.0 AWSPowerShell Alias Add-DPTags 3.3.343.0 AWSPowerShell Alias Add-DSIpRoutes 3.3.343.0 AWSPowerShell Alias Add-ELBTags 3.3.343.0 AWSPowerShell Alias Add-EMRTag 3.3.343.0 AWSPowerShell Alias Add-ESTag 3.3.343.0 AWSPowerShell Alias Add-MLTag 3.3.343.0 AWSPowerShell Alias Clear-AWSCredentials 3.3.343.0 AWSPowerShell Alias Clear-AWSDefaults 3.3.343.0 AWSPowerShell Alias Dismount-ASInstances 3.3.343.0 AWSPowerShell Alias Edit-EC2Hosts 3.3.343.0 AWSPowerShell Alias Edit-RSClusterIamRoles 3.3.343.0 AWSPowerShell Alias Enable-ORGAllFeatures 3.3.343.0 AWSPowerShell Alias Find-CTEvents 3.3.343.0 AWSPowerShell Alias Get-ASACases 3.3.343.0 AWSPowerShell Alias Get-ASAccountLimits 3.3.343.0 AWSPowerShell Alias Get-ASACommunications 3.3.343.0 AWSPowerShell Alias Get-ASAServices 3.3.343.0 AWSPowerShell Alias Get-ASASeverityLevels 3.3.343.0 AWSPowerShell Alias Get-ASATrustedAdvisorCheckRefreshStatuses 3.3.343.0 AWSPowerShell Alias Get-ASATrustedAdvisorChecks 3.3.343.0 AWSPowerShell Alias Get-ASATrustedAdvisorCheckSummaries 3.3.343.0 AWSPowerShell Alias Get-ASLifecycleHooks 3.3.343.0 AWSPowerShell Alias Get-ASLifecycleHookTypes 3.3.343.0 AWSPowerShell Alias Get-AWSCredentials 3.3.343.0 AWSPowerShell Alias Get-CDApplications 3.3.343.0 AWSPowerShell Alias Get-CDDeployments 3.3.343.0 AWSPowerShell Alias Get-CFCloudFrontOriginAccessIdentities 3.3.343.0 AWSPowerShell Alias Get-CFDistributions 3.3.343.0 AWSPowerShell Alias Get-CFGConfigRules 3.3.343.0 AWSPowerShell Alias Get-CFGConfigurationRecorders 3.3.343.0 AWSPowerShell Alias Get-CFGDeliveryChannels 3.3.343.0 AWSPowerShell Alias Get-CFInvalidations 3.3.343.0 AWSPowerShell Alias Get-CFNAccountLimits 3.3.343.0 AWSPowerShell Alias Get-CFNStackEvents 3.3.343.0 AWSPowerShell ...

Pour ajouter vos propres alias à ce fichier, vous devrez peut-être augmenter la valeur de la$MaximumAliasCount variable de préférence PowerShell pour obtenir une valeur supérieure à 5 500. La valeur par défaut est 4 096 et vous pouvez l'augmenter jusqu'à 32 768 au maximum. Pour ce faire, exécutez la commande suivante.

PS > $MaximumAliasCount = 32768

Pour vérifier que votre modification a abouti, saisissez le nom de la variable afin d'afficher sa valeur actuelle.

PS > $MaximumAliasCount 32768