Aliases e descoberta de cmdlet - AWS Tools for PowerShell

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Aliases e descoberta de cmdlet

Esta seção mostra como listar serviços que são compatíveis com o AWS Tools for PowerShell, como mostrar o conjunto de cmdlets fornecido pelo AWS Tools for PowerShell para apoiar esses serviços e como encontrar nomes de cmdlet alternativos (também chamados de aliases) para acessar esses serviços.

Descoberta de cmdlets

Todas as operações de serviços da AWS (ou APIs) são documentadas no Guia de referência da API para cada serviço. Por exemplo, consulte Referência da API do IAM. Há, na maioria dos casos, uma correspondência um-para-um entre a API de um serviço da AWS e um cmdlet do PowerShell da AWS. Para obter o nome do cmdlet correspondente a um nome de API de serviço da AWS, execute o cmdlet Get-AWSCmdletName da AWS com o parâmetro -ApiOperation e o nome da API de serviço da AWS. Por exemplo, para obter todos os nomes de cmdlet baseados em qualquer API de serviço da AWS DescribeInstances disponível, execute o seguinte comando:

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

O parâmetro -ApiOperation é o parâmetro padrão, portanto, você pode omitir o nome do parâmetro. O exemplo a seguir é equivalente ao anterior:

PS > Get-AWSCmdletName DescribeInstances

Se você sabe os nomes da API e do produto, inclua o parâmetro -Service junto com o prefixo do substantivo do cmdlet ou parte do nome do serviço da AWS. Por exemplo, o prefixo de substantivo do cmdlet para Amazon EC2 é EC2. Para obter o nome do cmdlet que corresponde à API DescribeInstances no serviço Amazon EC2, execute um dos comandos a seguir. Todos eles resultam na mesma saída:

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

Valores de parâmetro nesses comandos fazem distinção de maiúsculas e minúsculas.

Se não souber o nome da API do serviço da AWS ou do serviço da AWS desejado, você poderá usar o parâmetro -ApiOperation junto com o padrão para fazer a correspondência e o parâmetro -MatchWithRegex. Por exemplo, para obter todos os nomes de cmdlets disponíveis que contêm SecurityGroup, execute o comando a seguir.

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

Se você souber o nome do serviço da AWS, mas não a API do serviço da AWS, adicione o parâmetro -MatchWithRegex e o parâmetro -Service para limitar a pesquisa a um único serviço. Por exemplo, para obter todos os nomes de cmdlets que contêm SecurityGroup apenas no serviço do Amazon EC2, execute o comando a seguir.

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

Se você souber o nome do comando AWS Command Line Interface (AWS CLI), você pode usar o parâmetro -AwsCliCommand e o nome do comando AWS CLI desejado para obter o nome do cmdlet baseado na mesma API. Por exemplo, para obter o nome do cmdlet correspondente à chamada de comando authorize-security-group-ingress da AWS CLI no serviço Amazon EC2, execute o seguinte comando:

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

O cmdlet Get-AWSCmdletName precisa do nome do comando da AWS CLI apenas o suficiente para identificar o serviço e a API da AWS.

Para obter uma lista de todos os cmdlets no Tools for PowerShell Core, execute o cmdlet Get-Command do PowerShell, conforme mostrado no exemplo a seguir.

PS > Get-Command -Module AWSPowerShell.NetCore

Você pode executar o mesmo comando com -Module AWSPowerShell para ver os cmdlets no AWS Tools for Windows PowerShell.

O cmdlet Get-Command gera a lista de cmdlets em ordem alfabética. Observe que, por padrão, a lista é classificada por verbo do PowerShell, em vez de substantivo do PowerShell.

Para classificar os resultados por serviço, execute o comando a seguir:

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

Para filtrar os cmdlets retornados pelo cmdlet Get-Command, canalize a saída para o cmdlet Select-String do PowerShell. Por exemplo, para visualizar o conjunto de cmdlets com regiões da AWS, execute o seguinte comando:

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

Você também pode encontrar cmdlets para um serviço específico filtrando o prefixo de serviço de substantivos de cmdlet. Para ver a lista de prefixos de serviço disponíveis, execute Get-AWSPowerShellVersion -ListServiceVersionInfo. O exemplo a seguir retorna cmdlets que oferecem suporte ao serviço 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

Nomenclatura de cmdlets e aliases

Os cmdlets no AWS Tools for PowerShell de cada serviço são baseados em métodos fornecidos pelo AWS SDK para o serviço. No entanto, devido a convenções de nomenclatura obrigatórias do PowerShell, o nome de um cmdlet pode ser diferente do nome da chamada ou método de API no qual é baseado. Por exemplo, o cmdlet Get-EC2Instance é baseado no método DescribeInstances do Amazon EC2.

Em alguns casos, o nome do cmdlet pode ser semelhante a um nome de método, mas talvez execute uma função diferente. Por exemplo, o método GetObject do Amazon S3 recupera um objeto do Amazon S3. No entanto, o cmdlet Get-S3Object retorna informações sobre um objeto do Amazon S3 em vez do próprio objeto.

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

Para obter um objeto do S3 com o AWS Tools for PowerShell, execute o cmdlet 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
nota

A ajuda de um cmdlet da AWS fornece o nome da API do AWS SDK no qual o cmdlet é baseado.

Para obter mais informações sobre os verbos padrão do PowerShell e seus significados, consulte Verbos aprovados para comandos do PowerShell.

Todos os cmdlets da AWS que usam o verbo Remove, e o cmdlet Stop-EC2Instance quando você adiciona o parâmetro -Terminate, solicitam confirmação antes de continuar. Para ignorar a confirmação, adicione o parâmetro -Force ao seu comando.

Importante

Os cmdlets da AWS não oferecem suporte à opção -WhatIf.

Aliases

Configuração das instalações de AWS Tools for PowerShell e arquivos de alias que contêm alias para muitos cmdlets da AWS. Você pode considerar esses aliases mais intuitivos do que os nomes dos cmdlets. Por exemplo, nomes de serviço e nomes de método do AWS SDK substituem verbos e substantivos do PowerShell em alguns alias. Um exemplo é o alias EC2-DescribeInstances.

Outros aliases usam verbos que, embora não sigam as convenções padrão do PowerShell, podem descrever melhor a operação real. Por exemplo, o arquivo de alias mapeia o alias Get-S3Content para o cmdlet Read-S3Object.

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

O arquivo de aliases está localizado no diretório de instalação do AWS Tools for PowerShell. Para carregar os aliases em seu ambiente, faça dot-source do arquivo. Veja a seguir um exemplo de Windows.

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

Para um shell do Linux ou macOS, ele pode ter a seguinte aparência:

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

Para mostrar todos os alias de AWS Tools for PowerShell, execute o comando a seguir. Esse comando usa o alias ? do cmdlet Where-Object do PowerShell e a propriedade Source para filtrar somente aliases provenientes do módulo 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 ...

Para adicionar seus próprios aliases a esse arquivo, talvez seja necessário aumentar o valor da variável de preferência $MaximumAliasCount do PowerShell para um valor superior a 5500. O valor padrão é 4096. Você pode aumentá-lo para um máximo de 32768. Para fazer isso, execute o seguinte.

PS > $MaximumAliasCount = 32768

Para verificar se a alteração foi bem-sucedida, insira o nome da variável para mostrar seu valor atual.

PS > $MaximumAliasCount 32768