Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Migrazione dalla AWS Strumenti per PowerShell versione 3.3 alla versione 4

Modalità Focus
Migrazione dalla AWS Strumenti per PowerShell versione 3.3 alla versione 4 - AWS Strumenti per PowerShell

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

AWS Strumenti per PowerShell la versione 4 è un aggiornamento retrocompatibile alla versione 3.3. AWS Strumenti per PowerShell Aggiunge miglioramenti significativi pur mantenendo il comportamento dei cmdlet esistenti.

Gli script esistenti dovrebbero continuare a funzionare dopo l'aggiornamento alla nuova versione, ma si consiglia di verificarli accuratamente prima di eseguire l'aggiornamento agli ambienti di produzione.

Questa sezione descrive le modifiche e spiega come potrebbero influire sugli script.

Nuova versione AWS.Tools completamente modularizzata

La Shell. AWSPower NetCore e i pacchetti AWSPower Shell erano «monolitici». Ciò significava che tutti i AWS servizi erano supportati nello stesso modulo, il che lo rendeva molto grande e cresceva man mano che venivano aggiunti nuovi AWS servizi e funzionalità. Il nuovo AWS.Tools pacchetto è suddiviso in moduli più piccoli che offrono la flessibilità di scaricare e installare solo quelli necessari per i AWS servizi utilizzati. Il pacchetto include un modulo AWS.Tools.Common condiviso richiesto da tutti gli altri moduli e un modulo AWS.Tools.Installer che semplifica l'installazione, l'aggiornamento e la rimozione dei moduli secondo necessità.

Ciò consente anche l'importazione automatica dei cmdlet alla prima chiamata, senza dover effettuare la prima chiamata Import-module. Tuttavia, per interagire con gli oggetti.NET associati prima di chiamare un cmdlet, è comunque necessario chiamare Import-Module per comunicare i PowerShell tipi.NET pertinenti.

Ad esempio, il comando seguente ha un riferimento a Amazon.EC2.Model.Filter. Questo tipo di riferimento non può attivare l'importazione automatica, quindi è necessario chiamare prima Import-Module o il comando fallisce.

PS > $filter = [Amazon.EC2.Model.Filter]@{Name="vpc-id";Values="vpc-1234abcd"} InvalidOperation: Unable to find type [Amazon.EC2.Model.Filter].
PS > Import-Module AWS.Tools.EC2 PS > $filter = [Amazon.EC2.Model.Filter]@{Name="vpc-id";Values="vpc-1234abcd"} PS > Get-EC2Instance -Filter $filter -Select Reservations.Instances.InstanceId i-0123456789abcdefg i-0123456789hijklmn

Nuovo cmdlet Get-AWSService

Per facilitare l'individuazione dei nomi dei moduli per ogni AWS servizio nell'AWS.Toolsinsieme di moduli, è possibile utilizzare il Get-AWSService cmdlet.

PS > Get-AWSService Service : ACMPCA CmdletNounPrefix : PCA ModuleName : AWS.Tools.ACMPCA SDKAssemblyVersion : 3.3.101.56 ServiceName : Certificate Manager Private Certificate Authority Service : AlexaForBusiness CmdletNounPrefix : ALXB ModuleName : AWS.Tools.AlexaForBusiness SDKAssemblyVersion : 3.3.106.26 ServiceName : Alexa For Business ...

Nuovo parametro -Select per controllare l'oggetto restituito da un cmdlet

La maggior parte dei cmdlet nella versione 4 supporta un nuovo parametro -Select. Ogni cmdlet chiama il AWS servizio automaticamente utilizzando APIs . AWS SDK per .NET Il AWS Strumenti per PowerShell client converte quindi la risposta in un oggetto che è possibile utilizzare negli PowerShell script e reindirizzare ad altri comandi. A volte l' PowerShell oggetto finale ha più campi o proprietà nella risposta originale del necessario e altre volte potresti volere che l'oggetto includa campi o proprietà della risposta che non sono presenti per impostazione predefinita. Il parametro -Select consente di specificare gli elementi inclusi nell'oggetto.NET restituito dal cmdlet.

Ad esempio, il Get-S3Objectcmdlet richiama l'operazione SDK Amazon S3. ListObjects Tale operazione restituisce un oggetto. ListObjectsResponse Tuttavia, per impostazione predefinita, il Get-S3Object cmdlet restituisce all'utente solo l'S3Objectselemento della risposta SDK. PowerShell Nell'esempio seguente, tale oggetto è un array con due elementi.

PS > Get-S3Object -BucketName amzn-s3-demo-bucket ETag : "01234567890123456789012345678901111" BucketName : amzn-s3-demo-bucket Key : file1.txt LastModified : 9/30/2019 1:31:40 PM Owner : Amazon.S3.Model.Owner Size : 568 StorageClass : STANDARD ETag : "01234567890123456789012345678902222" BucketName : amzn-s3-demo-bucket Key : file2.txt LastModified : 7/15/2019 9:36:54 AM Owner : Amazon.S3.Model.Owner Size : 392 StorageClass : STANDARD

Nella AWS Strumenti per PowerShell versione 4, è possibile specificare di -Select * restituire l'oggetto di risposta.NET completo restituito dalla chiamata API SDK.

PS > Get-S3Object -BucketName amzn-s3-demo-bucket -Select * IsTruncated : False NextMarker : S3Objects : {file1.txt, file2.txt} Name : amzn-s3-demo-bucket Prefix : MaxKeys : 1000 CommonPrefixes : {} Delimiter :

È inoltre possibile specificare il percorso della proprietà nidificata specifica desiderata. L'esempio seguente restituisce solo la proprietà Key di ciascun elemento della matrice S3Objects.

PS > Get-S3Object -BucketName amzn-s3-demo-bucket -Select S3Objects.Key file1.txt file2.txt

In alcune situazioni può essere utile restituire un parametro cmdlet. Tale operazione può essere eseguita con -Select ^ParameterName. Questa funzione sostituisce il parametro -PassThru, che è ancora disponibile ma deprecato.

PS > Get-S3Object -BucketName amzn-s3-demo-bucket -Select S3Objects.Key | >> Write-S3ObjectTagSet -Select ^Key -BucketName amzn-s3-demo-bucket -Tagging_TagSet @{ Key='key'; Value='value'} file1.txt file2.txt

L' argomento di riferimento per ogni cmdlet consente di identificare se supporta il parametro -Select.

Limitazione più coerente del numero di elementi nell'output

Le versioni precedenti di AWS Strumenti per PowerShell consentivano di utilizzare il -MaxItems parametro per specificare il numero massimo di oggetti restituiti nell'output finale.

Questo comportamento è stato rimosso da AWS.Tools.

Questo comportamento è obsoleto in Shell. AWSPower NetCore e AWSPower Shell, e verranno rimossi da tali versioni in una versione futura.

Se l'API del servizio sottostante supporta un parametro MaxItems, è ancora disponibile e funziona come specificato dall'API. Ma non ha più il comportamento ulteriore di limitare il numero di elementi restituiti nell'output del cmdlet.

Per limitare il numero di elementi restituiti nell'output finale, reindirizzate l'output al Select-Object cmdlet e specificate il -First n parametro, dove n è il numero massimo di elementi da includere nell'output finale.

PS > Get-S3ObjectV2 -BucketName amzn-s3-demo-bucket -Select S3Objects.Key | select -first 2 file1.txt file2.txt

Non tutti i AWS servizi sono supportati -MaxItems allo stesso modo, quindi questo elimina l'incoerenza e i risultati imprevisti che a volte si verificavano. Inoltre, -MaxItems in combinazione con il nuovo parametro -Select a volte potrebbe portare a risultati confusi.

Parametri di flusso più facili da usare

Parametri di tipo Stream o byte[] possono ora accettare valori string, string[] o FileInfo.

Ad esempio, è possibile utilizzare uno dei seguenti esempi.

PS > Invoke-LMFunction -FunctionName MyTestFunction -PayloadStream '{ >> "some": "json" >> }'
PS > Invoke-LMFunction -FunctionName MyTestFunction -PayloadStream (ls .\some.json)
PS > Invoke-LMFunction -FunctionName MyTestFunction -PayloadStream @('{', '"some": "json"', '}')

AWS Strumenti per PowerShell converte tutte le stringhe byte[] utilizzando la codifica UTF-8.

Estendere la pipe in base al nome della proprietà

Per rendere l'esperienza utente più coerente, è ora possibile passare l'input della pipeline specificando il nome della proprietà per qualsiasi parametro.

Nell'esempio seguente viene creato un oggetto personalizzato con proprietà con nomi corrispondenti ai nomi dei parametri del cmdlet di destinazione. Quando viene eseguito il cmdlet, vengono automaticamente consumate tali proprietà come parametri.

PS > [pscustomobject] @{ BucketName='amzn-s3-demo-bucket'; Key='file1.txt'; PartNumber=1 } | Get-S3ObjectMetadata
Nota

Alcune proprietà lo supportavano nelle versioni precedenti di. AWS Strumenti per PowerShell La versione 4 rende questo più coerente abilitandolo per tutti i parametri.

Parametri comuni statici

Per migliorare la coerenza nella versione 4.0 di AWS Strumenti per PowerShell, tutti i parametri sono statici.

Nelle versioni precedenti di AWS Strumenti per PowerShell, alcuni parametri comuni comeAccessKey,, o SecretKeyProfileName, erano dinamici Region, mentre tutti gli altri parametri erano statici. Ciò potrebbe creare problemi perché PowerShell associa i parametri statici prima di quelli dinamici. Ad esempio, supponiamo che tu abbia eseguito il seguente comando.

PS > Get-EC2Region -Region us-west-2

Le versioni precedenti di PowerShell associavano il valore us-west-2 al parametro -RegionName statico anziché al parametro -Region dinamico. Probabilmente, questo potrebbe confondere gli utenti.

AWS.Tools Dichiara e applica i parametri obbligatori

I moduli AWS.Tools.* ora dichiarano e applicano parametri cmdlet obbligatori. Quando un AWS servizio dichiara che è necessario un parametro di un'API, PowerShell richiede il parametro del cmdlet corrispondente se non lo si è specificato. Questo vale solo per AWS.Tools. Per garantire la compatibilità con le versioni precedenti, ciò non si applica a Shell. AWSPower NetCore o AWSPower Shell.

Tutti i parametri sono “nullable”

È ora possibile assegnare $null ai parametri del tipo di valore (numeri e date). Questa modifica non dovrebbe influire sugli script esistenti. Ciò consente di ignorare la richiesta di un parametro obbligatorio. I parametri obbligatori sono applicati solo in AWS.Tools.

Se viene eseguito l’esempio seguente utilizzando la versione 4, il medesimo ignora effettivamente la convalida lato client perché si fornisce un «valore» per ogni parametro obbligatorio. Tuttavia, la chiamata al servizio Amazon EC2 API non riesce perché il AWS servizio richiede ancora tali informazioni.

PS > Get-EC2InstanceAttribute -InstanceId $null -Attribute $null WARNING: You are passing $null as a value for parameter Attribute which is marked as required. In case you believe this parameter was incorrectly marked as required, report this by opening an issue at https://github.com/aws/aws-tools-for-powershell/issues. WARNING: You are passing $null as a value for parameter InstanceId which is marked as required. In case you believe this parameter was incorrectly marked as required, report this by opening an issue at https://github.com/aws/aws-tools-for-powershell/issues. Get-EC2InstanceAttribute : The request must contain the parameter instanceId

Rimozione di funzionalità precedentemente deprecate

Le seguenti funzionalità erano obsolete nelle versioni precedenti di AWS Strumenti per PowerShell e sono state rimosse nella versione 4:

  • Rimosso il parametro -Terminate dal cmdlet Stop-EC2Instance. Usare invece Remove-EC2Instance.

  • È stato rimosso il -ProfileName parametro dal cmdlet Clear-. AWSCredential Usare invece Remove-AWSCredentialProfile.

  • Rimossi i cmdlet Import-EC2Instance e Import-EC2Volume.

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.