Indirizzamento e $AWSHistory - AWS Tools for 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à.

Indirizzamento e $AWSHistory

Per le chiamate di servizio AWS che restituiscono raccolte, gli oggetti all'interno della raccolta sono enumerati alla pipeline. Gli oggetti risultato che contengono campi aggiuntivi oltre la raccolta e che non sono campi di controllo di paginazione dispongono di questi campi aggiunti come proprietà della nota per le chiamate. Queste proprietà della nota sono registrate nella nuova variabile di sessione $AWSHistory, se fosse necessario accedere a questi dati. La variabile $AWSHistory è descritta nella sezione successiva.

Nota

Nelle versioni dei Tools for Windows PowerShell precedenti alla 1.1, veniva restituito l'oggetto di raccolta, il che richiedeva l'uso di foreach {$_.getenumerator()} per continuare l'indirizzamento.

Examples (Esempi)

Il seguente esempio restituisce un elenco delle Regioni AWS e delle AMI Amazon EC2 in ogni Regione.

PS > Get-AWSRegion | % { Echo $_.Name; Get-EC2Image -Owner self -Region $_ }

Il seguente esempio arresta tutte le istanze Amazon EC2 nella Regione corrente predefinita.

PS > Get-EC2Instance | Stop-EC2Instance

Poiché le raccolte sono enumerate alla pipeline, l'output di un determinato cmdlet potrebbe essere $null, un singolo oggetto o una raccolta. Se è una raccolta, è possibile utilizzare la proprietà .Count per determinare le dimensioni della raccolta stessa. Tuttavia, la proprietà .Count non è presente quando viene emesso un singolo oggetto. Se lo script deve determinare, in modo coerente, il numero di oggetti emessi, puoi usare la proprietà EmittedObjectsCount dell'ultimo valore di comando in $AWSHistory.

$AWSHistory

Per supportare meglio l'indirizzamento, l'output dai cmdlet AWS non viene rimodellato per includere la risposta del servizio e le istanze del risultato come Proprietà della nota sull'oggetto raccolta restituito. Al contrario, per le chiamate che emettono una singola raccolta come output, la raccolta è ora enumerata alla pipeline della PowerShell. Ciò significa che la risposta dell'SDK AWS e i dati del risultato non possono esistere nella pipe, poiché non esiste un oggetto raccolta a essi collegato che li contenga.

Sebbene non siano necessari alla maggior parte degli utenti, questi dati possono essere utili a scopi diagnostici, perché consentono di vedere esattamente ciò che è stato inviato e ricevuto dalle chiamate effettuate dal cmdlet al servizio AWS sottostante.

A partire dalla versione 1.1, questi e altri dati sono ora disponibili in una nuova variabile shell denominata $AWSHistory. Questa variabile mantiene una registrazione delle chiamate del cmdlet AWS e delle risposte del servizio ricevute per ogni chiamata. Facoltativamente, questa cronologia può essere configurata anche per registrare le richieste di servizio effettuate da ogni cmdlet. Inoltre, da ogni voce possono essere ottenuti altri dati utili, ad esempio il tempo di esecuzione complessivo del cmdlet. Per motivi di sicurezza, le richieste e le risposte che contengono dati sensibili non vengono registrate per impostazione predefinita. Tuttavia, la cronologia può essere configurata per sovrascrivere questo comportamento, se necessario. Per ulteriori informazioni, consulta il cmdlet Set-AWSHistoryConfiguration riportato di seguito.

Ogni voce nell'elenco $AWSHistory.Commands è di tipo AWSCmdletHistory. Questo tipo ha i seguenti membri utili:

CmdletName

Nome del cmdlet.

CmdletStart

DateTime di esecuzione del cmdlet.

CmdletEnd

DateTime di fine di tutti i processi del cmdlet.

Richieste

Se la richiesta di registrazione è abilitata, vengono elencate le ultime richieste di servizio.

Risposte

Elenco delle ultime risposte di servizio ricevute.

LastServiceResponse

Helper per restituire la più recente risposta del servizio.

LastServiceRequest

Helper per restituire la più recente richiesta del servizio, se disponibile.

Tieni presente che la variabile $AWSHistory non viene creata finché non viene utilizzato un cmdlet AWS che effettua una chiamata di servizio. Viene valutata su $null fino a quel momento.

Nota

Le versioni precedenti dei Tools for Windows PowerShell restituivano dati relativi alle risposte del servizio come proprietà Note sull'oggetto restituito. Queste sono ora disponibili sulle voci di risposta registrate per ogni invocazione nell'elenco.

Set-AWSHistoryConfiguration

Una invocazione cmdlet può contenere zero o più richieste di servizio e voci di risposta. Per limitare l'impatto della memoria, l'elenco $AWSHistory mantiene solo la registrazione delle ultime cinque esecuzioni di cmdlet come impostazione predefinita e, per ognuna, le ultime cinque risposte di servizio (e, se abilitate, le ultime cinque richieste di servizio). È possibile modificare questi limiti predefiniti eseguendo il cmdlet Set-AWSHistoryConfiguration. Questo permette di controllare la dimensione dell'elenco e se le richieste di servizio sono state registrate.

PS > Set-AWSHistoryConfiguration -MaxCmdletHistory <value> -MaxServiceCallHistory <value> -RecordServiceRequests -IncludeSensitiveData

Tutti i parametri sono opzionali:

Il parametro MaxCmdletHistory imposta il numero massimo di cmdlet che può essere monitorato in qualsiasi momento. Il valore 0 disattiva la registrazione dell'attività del cmdlet AWS. Il parametro MaxServiceCallHistory imposta il numero massimo di risposte di servizio (e/o richieste) che vengono registrate per ogni cmdlet. Il parametro RecordServiceRequests, se specificato, consente di attivare il monitoraggio delle richieste di servizio per ogni cmdlet. Il parametro IncludeSensitiveData, se specificato, attiva il tracciamento delle risposte e delle richieste di servizio (se tracciate) che contengono dati sensibili per ogni cmdlet.

Se si esegue senza parametri, Set-AWSHistoryConfiguration disattiva semplicemente , qualsiasi precedente registrazione della richiesta, lasciando invariata la dimensione corrente dell'elenco.

Per cancellare tutte le voci nell'elenco della cronologia corrente, eseguire il cmdlet Clear-AWSHistory.

Esempi di $AWSHistory

Enumerare nella pipeline i dettagli dei cmdlet AWS contenuti nell'elenco.

PS > $AWSHistory.Commands

Accedere ai dettagli dell'ultimo cmdlet AWS eseguito:

PS > $AWSHistory.LastCommand

Accedere ai dettagli dell'ultima risposta del servizio ricevuta dall'ultimo cmdlet AWS eseguito. Se un cmdlet AWS esegue l'impaginazione dell'output, può effettuare più chiamate di servizio per ottenere tutti i dati o la quantità massima di dati (determinata dai parametri del cmdlet).

PS > $AWSHistory.LastServiceResponse

Accedere ai dettagli dell'ultima richiesta fatta (come prima, un cmdlet può fare più di una richiesta, se sta impaginando per conto dell'utente). Restituisce $null, a meno che il tracciamento della richiesta di servizio non sia abilitato.

PS > $AWSHistory.LastServiceRequest

Completamento della pagina automatico per operazioni che restituiscono pagine multiple

Per le API di servizio che impongono un numero totale massimo predefinito di oggetti restituiti per una specifica chiamata o che supportano set di risultati impaginabili, tutti i cmdlet sono impostati su "pagina di completamento" per impostazione predefinita. Ogni cmdlet effettua tutte le chiamate necessarie a tuo nome per restituire l'intero set di dati alla pipeline.

In questo esempio, che utilizza Get-S3Object, la variabile $c contiene istanze S3Object per ogni chiave nel bucket test, potenzialmente un set di dati di dimensioni molto grandi.

PS > $c = Get-S3Object -BucketName test

Se desideri mantenere il controllo della quantità di dati restituiti, puoi continuare a utilizzare i parametri sui singoli cmdlet (ad esempio, MaxKey su Get-S3Object) oppure puoi gestire in modo esplicito l'impaginazione utilizzando una combinazione di parametri di impaginazione nei cmdlet e i dati inseriti nella variabile $AWSHistory per ottenere i dati token del servizio successivo. L'esempio seguente utilizza il parametro MaxKeys per limitare il numero di istanze S3Object restituite a non più delle prime 500 trovate nel bucket.

PS > $c = Get-S3Object -BucketName test -MaxKey 500

Per sapere se era disponibile una maggiore quantità di dati ma non è stata restituita, utilizzare la voce variabile di sessione $AWSHistory che ha registrato le chiamate di servizio effettuate da cmdlet.

Se la seguente espressione restituisce $true, puoi trovare il contrassegno next per i successivi set di risultati utilizzando $AWSHistory.LastServiceResponse.NextMarker:

$AWSHistory.LastServiceResponse -ne $null && $AWSHistory.LastServiceResponse.IsTruncated

Per controllare manualmente l'impaginazione con Get-S3Object, utilizzare una combinazione di parametri MaxKey e Marker per il cmdlet e le note IsTruncated/NextMarker sull'ultima risposta di registrazione. Nel seguente esempio, la variabile $c contiene fino a un massimo di 500 istanze S3Object per i successivi 500 oggetti trovati nel bucket dopo l'avvio del contrassegno del prefisso della chiave specificato.

PS > $c = Get-S3Object -BucketName test -MaxKey 500 -Marker $AWSHistory.LastServiceResponse.NextMarker