Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pipelining dan $AWSHistory
Untuk panggilan layanan AWS yang mengembalikan pengumpulan, obyek yang dikumpulkan dihitung ke alur. Hasil obyek yang berisi bidang tambahan di luar pengumpulan dan yang tidak membagi bidang kontrol mendapatkan bidang ini ditambahkan sebagai properti Catatan untuk panggilan. Properti Catatan ini dicatat dalam variabel sesi $AWSHistory
, jika Anda perlu untuk mengakses data ini. Variabel $AWSHistory
dijelaskan di bagian berikut.
catatan
Dalam versi Tools for Windows PowerShell sebelum v1.1, objek pengumpulan itu sendiri dipancarkan, yang memerlukan penggunaan foreach {$_.getenumerator ()} untuk melanjutkan pipelining.
Contoh
Contoh berikut mengembalikan daftar WIlayah AWS dan citra mesin Amazon EC2 (AMIS) Anda di setiap WIlayah.
PS >
Get-AWSRegion | % { Echo $_.Name; Get-EC2Image -Owner self -Region $_ }
Contoh berikut memfilter stopword semua instans Amazon EC2 di wilayah default saat ini.
PS >
Get-EC2Instance | Stop-EC2Instance
Karena pengumpulan menghitung alur, output dari cmdlet tertentu mungkin berupa $null
, satu objek, atau kumpulan obyek. Jika berupa kumpulan obyek, Anda dapat menggunakan properti .Count
untuk menentukan ukuran kumpulan tersebut. Namun, properti .Count
tidak ada ketika hanya satu objek yang dipancarkan. Jika skrip Anda perlu menentukan, secara konsisten, berapa banyak objek yang dipancarkan, Anda dapat memeriksa properti EmittedObjectsCount
dari nilai perintah terakhir di $AWSHistory
.
$AWSHistory
Untuk mendukung pipelining yang lebih baik, output dari cmdlet AWS tidak dibentuk kembali untuk menyertakan respons layanan dan instans hasil sebagai properti Catatan pada objek pengumpulan yang dipancarkan. Sebaliknya, untuk panggilan yang memancarkan pengumpulan tunggal sebagai output, pengumpulan tersebut dihitung ke PowerShell alur. Ini berarti bahwa respon dan data hasil SDK AWS tidak dapat tersedia dalam alur, karena tidak ada objek pengumpulan yang dapat dilampirkan.
Meskipun sebagian besar pengguna mungkin tidak memerlukan data ini, ini dapat berguna untuk tujuan diagnostik, karena Anda dapat melihat dengan tepat apa yang dikirim ke dan diterima dari panggilan layanan AWS yang mendasari yang dilakukan oleh cmdlet.
Dimulai dengan versi 1.1, data ini dan banyak lagi saat ini tersedia dalam variabel shell baru bernama $AWSHistory
. Variabel ini menyimpan catatan invokasi cmdlet AWS dan respons layanan yang diterima untuk setiap invokasi. Secara opsional, riwayat ini dapat dikonfigurasi juga untuk mencatat permintaan layanan yang dibuat setiap cmdlet. Tambahan data yang berguna, seperti waktu eksekusi keseluruhan cmdlet, juga dapat diperoleh dari setiap entri. Demi alasan keamanan, permintaan dan tanggapan yang berisi data sensitif tidak direkam secara default. Namun, riwayat dapat dikonfigurasi untuk menimpa perilaku ini jika diperlukan. Untuk informasi selengkapnya, lihatSet-AWSHistoryConfiguration
cmdlet yang ditunjukkan di bawah ini.
Setiap entri di daftar $AWSHistory.Commands
adalah tipe AWSCmdletHistory
. Tipe ini memiliki anggota yang berguna sebagai berikut:
- CmdletName
-
Nama cmdlet.
- CmdletStart
-
DateTime saat cmdlet dijalankan.
- CmdletEnd
-
DateTime saat cmdlet menyelesaikan semua proses.
- Permintaan
-
Jika perekaman permintaan diaktifkan, daftar permintaan layanan terakhir.
- Tanggapan
-
Daftar tanggapan layanan terakhir yang diterima.
- LastServiceResponse
-
Helper akan mengembalikan tangggapan layanan terkini.
- LastServiceRequest
-
Helper akan mengembalikan permintaan layanan terkini, jika tersedia.
Perhatikan bahwa variabel $AWSHistory
tidak dibuat hingga cmdlet AWS yang membuat panggilan layanan digunakan. Ini mengevaluasi ke $null sampai saat itu.
catatan
Versi sebelumnya dari Tools for Windows PowerShell memancarkan data yang terkait dengan jawaban layanan sebagaiNote
properti pada objek yang dikembalikan. Ini sekarang ditemukan pada entri jawaban yang direkam untuk setiap invokasi dalam daftar.
Set-AWSHistoryConfiguration
Invokasi cmdlet dapat menahan nol atau lebih entri permintaan dan jawaban layanan. Untuk membatasi dampak memori, daftar $AWSHistory
menyimpan catatan hanya lima eksekusi cmdlet terakhir secara default; dan untuk masing-masing, lima jawaban layanan terakhir (dan jika diaktifkan, lima permintaan layanan terakhir). Anda dapat mengubah batas default ini dengan menjalankan cmdlet Set-AWSHistoryConfiguration
. Hal ini memungkinkan Anda untuk mengontrol ukuran daftar, dan apakah permintaan layanan juga dicatat atau tidak:
PS >
Set-AWSHistoryConfiguration -MaxCmdletHistory <value> -MaxServiceCallHistory <value> -RecordServiceRequests -IncludeSensitiveData
Semua parameter bersifat opsional.
Parameter MaxCmdletHistory
menetapkan jumlah maksimum cmdlet yang dapat dilacak setiap saat. Nilai 0 mematikan perekaman kegiatan cmdlet AWS. Parameter MaxServiceCallHistory
menetapkan jumlah maksimum jawaban (dan/atau permintaan) layanan yang dilacak untuk setiap cmdlet. Parameter RecordServiceRequests
, jika ditentukan, mengaktifkan pelacakan permintaan layanan untuk setiap cmdlet. IncludeSensitiveData
Parameter, jika ditentukan, mengaktifkan pelacakan jawaban layanan dan permintaan (jika dilacak) yang berisi data sensitif untuk setiap cmdlet.
Jika dijalankan tanpa parameter, Set-AWSHistoryConfiguration
hanya mematikan setiap rekaman permintaan sebelumnya, tidak merubah ukuran daftar saat ini.
Untuk menghapus semua entri dalam daftar riwayat saat ini, jalankan cmdlet Clear-AWSHistory
.
Contoh $AWSHistory
Menghitung rincian cmdlet AWS yang sedang disimpan dalam daftar ke alur.
$AWSHistory.Commands
PS >
Mengakses rincian yang cmdlet AWS terakhir yang dijalankan:
PS >
$AWSHistory.LastCommand
Mengakses rincian jawaban layanan terakhir yang diterima oleh cmdlet AWS terakhir yang dijalankan. Jika cmdlet AWS membagi output, cmdlet tersebut dapat membuat beberapa panggilan layanan untuk mendapatkan semua data atau jumlah maksimum data (ditentukan oleh parameter pada cmdlet).
PS >
$AWSHistory.LastServiceResponse
Mengakses rincian permintaan terakhir yang dibuat (sekali lagi, cmdlet dapat membuat lebih dari satu permintaan jika membaginya atas nama pengguna). Hasil $null kecuali pelacakan permintaan layanan diaktifkan.
PS >
$AWSHistory.LastServiceRequest
Page-to-Completion Otomatis untuk Operasi yang Mengembalikan Banyak Pembagian
Untuk API layanan yang memaksakan obyek maksimum default mengembalikan jumlah untuk panggilan tertentu atau yang mendukung set hasil yang dapat dihitung, semua cmdlet "page-to-completion" secara default. Setiap cmdlet membuat panggilan sebanyak yang diperlukan atas nama Anda untuk mengembalikan data lengkap ke alur.
Pada contoh berikut, yang menggunakan Get-S3Object
, variabel $c
berisi S3Object
instans untuk setiap kunci dalam test
bucket, kemungkinan merupakan data lengkap yang sangat besar.
PS >
$c = Get-S3Object -BucketName test
Jika Anda ingin mempertahankan kontrol jumlah data yang dikembalikan, Anda dapat menggunakan parameter pada masing-masing cmdlet (misalnya, MaxKey
pada Get-S3Object
) atau Anda dapat secara eksplisit menangani pembagian sendiri dengan menggunakan kombinasi parameter pembagian pada cmdlet, dan data yang ditempatkan di variabel $AWSHistory
untuk mendapatkan data token berikutnya dari layanan. Contoh berikut menggunakan MaxKeys parameter untuk membatasi jumlahS3Object
instans yang dikembalikan ke paling banyak 500 pertama yang ditemukan dalam bucket.
PS >
$c = Get-S3Object -BucketName test -MaxKey 500
Untuk mengetahui apakah lebih banyak data tersedia tetapi tidak dikembalikan, gunakan entri variabel sesi $AWSHistory
yang mencatat panggilan layanan yang dibuat oleh cmdlet.
Jika ekspresi berikut mengevaluasi ke $true, Anda dapat menemukan penanda next
untuk rangkaian hasil berikutnya menggunakan $AWSHistory.LastServiceResponse.NextMarker
:
$AWSHistory.LastServiceResponse -ne $null && $AWSHistory.LastServiceResponse.IsTruncated
Untuk mengontrol pembagian secara manual dengan Get-S3Object
, gunakan kombinasi dari parameter MaxKey
dan Marker
untuk cmdlet dan catatan IsTruncated
/NextMarker
pada jawaban yang direkam terakhir. Pada contoh berikut, variabel $c
berisi hingga maksimum 500 instans S3Object
untuk 500 objek berikutnya yang ditemukan dalam bucket setelah dimulainya penanda prefiks kunci tertentu.
PS >
$c = Get-S3Object -BucketName test -MaxKey 500 -Marker $AWSHistory.LastServiceResponse.NextMarker