Versi 5 (V5) dari Alat AWS untuk PowerShell telah dirilis!
Untuk informasi tentang melanggar perubahan dan memigrasi aplikasi Anda, lihat topik migrasi.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Migrasi dari Alat AWS untuk PowerShell versi 4 ke versi 5
Alat AWS untuk PowerShell versi 5 (V5) memiliki perubahan yang melanggar, yang dapat menyebabkan skrip Anda yang ada berhenti berfungsi. Topik ini menjelaskan perubahan yang melanggar di V5 dan kemungkinan pekerjaan yang mungkin perlu Anda lakukan untuk memigrasikan lingkungan atau kode Anda dari V4.
Untuk informasi tambahan tentang perubahan penting dalam Alat AWS untuk PowerShell juga lihat sumber daya berikut:
-
Posting blog Alat AWS untuk PowerShell V5 sekarang Umumnya Tersedia
. -
Masalah Pelacak Pengembangan V5
di. GitHub Selain daftar perubahan yang melanggar, pastikan untuk melihat detail setiap pratinjau. -
Posting blog Pratinjau 1 dari Alat AWS untuk PowerShell V5
catatan
Karena Alat AWS untuk PowerShell bergantung pada AWS SDK untuk .NET, beberapa perubahan yang terkait dengan V4 SDK mungkin juga memengaruhi V5 Alat untuk. PowerShell Untuk melihat apa yang telah berubah untuk V4 AWS SDK untuk .NET, lihat informasi migrasi di Panduan AWS SDK untuk .NET Pengembang.
PowerShell Versi minimum
Untuk versi lama, khusus Windows, tunggal, modul besar dari, yang disebut AWSPowerShell Alat AWS untuk PowerShell, versi minimum yang didukung PowerShell modul telah diperbarui ke 5.1. Ini untuk mencocokkan versi minimum AWS SDK untuk .NET baru dari .NET Framework 4.7.2.
Untuk informasi selengkapnya tentang modul AWSPower Shell lama, lihatMenginstal pada Windows.
Instal atau perbarui AWS.Tools
V4
Saat menginstal atau memperbarui versi termodulasi dari, yang disebut Alat AWS untuk PowerShellAWS.Tools
, Install-AWSToolsModule
dan Update-AWSToolsModule
cmdlet secara alami akan menggunakan versi 5 secara default. AWS.Tools
Jika karena alasan tertentu Anda perlu menginstal atau memperbarui versi 4 AWS.Tools
sebagai gantinya, Anda dapat melakukannya dengan menggunakan perintah berikut, masing-masing:
Install-AWSToolsModule -MaximumVersion '4.9.999' Update-AWSToolsModule -MaximumVersion '4.9.999'
Untuk informasi tambahan tentang menginstal dan memperbarui Alat untuk PowerShell, lihat Memulai
Batalkan eksekusi cmdlet dengan CTRL+C dan CMD+C
Versi 5 Alat AWS untuk PowerShell memungkinkan Anda untuk membatalkan eksekusi cmdlet dengan menggunakan pintasan keyboard seperti CTRL+C atau CMD+C.
Jenis nilai nullable
Jenis yang diadopsi dari AWS SDK untuk .NET telah diperbarui untuk menggunakan perubahan nullable baru SDK. Misalnya, properti tipe int
telah diubah menjadiNullable[int]
. Perubahan ini tidak memengaruhi cara nilai parameter input ditentukan untuk cmdlet AWS karena parameter tipe nilai tersebut sudah dimodelkan sebagai nullable. Namun, tipe nullable untuk output cmdlet adalah perubahan besar karena properti dalam output cmdlet akan berisi $null
alih-alih berbagai nilai default untuk tipe.
Contoh berikut menunjukkan perilaku di V4 dari Tools for. PowerShell Dalam contoh ini, MissingMeta
properti diatur ke 0 karena itu adalah nilai default dari tipeint
.
# In V4
PS >
Get-S3ObjectMetadata -BucketNameamzn-s3-demo-bucket
-Key 'test
' | >> Select LastModified, MissingMeta, ObjectLockRetainUntilDate, BucketKeyEnabled LastModified MissingMeta ObjectLockRetainUntilDate BucketKeyEnabled ------------ ----------- ------------------------- ---------------- 8/29/2023 10:20:44 PM 0 1/1/0001 12:00:00 AM
Contoh berikut menunjukkan perilaku di V5 dari Tools for. PowerShell Dalam contoh ini, MissingMeta
properti diatur ke$null
.
# In V5
PS >
Get-S3ObjectMetadata -BucketNameamzn-s3-demo-bucket
-Key 'test
' | >> Select LastModified, MissingMeta, ObjectLockRetainUntilDate, BucketKeyEnabled LastModified MissingMeta ObjectLockRetainUntilDate BucketKeyEnabled ------------ ----------- ------------------------- ---------------- 8/29/2023 10:20:44 PM
Dalam kebanyakan kasus, tidak ada perubahan kode yang diperlukan karena PowerShell memiliki konversi implisit dari tipe nilai nullable ke tipe nilai non-nullable. Namun, ini adalah perubahan besar untuk kode logika perbandingan yang memeriksa secara eksplisit untuk nilai default dari jenis nilai nullable. Logika perbandingan yang memeriksa nilai default dari tipe non-nullable harus dimodifikasi untuk diperiksa. $null
Untuk beberapa jenis ini, contoh berikut menunjukkan cara memperbarui kode yang ditulis untuk V4 yang memeriksa apakah tidak ada yang dikembalikan:
#Type int: # In V4, if you were checking whether an int is 0... if($s3Metadata.MissingMeta -eq 0){} # In V5, check if the int is null instead: if($s3Metadata.MissingMeta -eq $null) {} # Type datetime: # In V4, if you were checking whether a datetime is '0001-01-01'... if($s3Metadata.ObjectLockRetainUntilDate -eq '0001-01-01'){} # In V5, check if the datetime is null instead: if($s3Metadata.ObjectLockRetainUntilDate -eq $null){} # Type boolean: # In V4, if you were checking whether a boolean is $false... if($s3Metadata.BucketKeyEnabled -eq $false){} # In V5, check if the boolean is null instead: if($s3Metadata.BucketKeyEnabled -eq $null)
Karena Alat AWS untuk PowerShell mengandalkan AWS SDK untuk .NET, mungkin berguna untuk memeriksa bagaimana perubahan serupa memengaruhi SDK versi 4. Untuk menemukan informasi ini, lihat Konten migrasi tipe nilai di Panduan AWS SDK untuk .NET Pengembang.
Koleksi
Beberapa output cmdlet telah diubah untuk kembali, $null
bukan koleksi tipe List
kosong atau. Dictionary
Untuk informasi tambahan, termasuk cara mengembalikan ke perilaku lama, lihat konten migrasi untuk Koleksi di Panduan AWS SDK untuk .NET Pengembang.
DateTime versus UTC DateTime
Beberapa cmdlet V4 menentukan DateTime parameter yang sudah usang, serta parameter UTC alternatif. DateTime DateTime Parameter usang ini telah dihapus dari cmdlet V5, dan nama parameter UTC telah diubah menjadi nama asli DateTime parameter non-UTC. DateTime
Berikut ini adalah beberapa contoh cmdlet yang perubahannya telah diterapkan.
-
Get-ASScheduledAction
(Cmdlet V4 dan cmdlet V5):-
StartTime
Parameter telah dihapus, dan namaUtcStartTime
parameter telah diubah menjadi "StartTime”. -
EndTime
Parameter telah dihapus, dan namaUtcEndTime
parameter telah diubah menjadi "EndTime”.
-
-
Copy-S3Object
(Cmdlet V4 dan cmdlet V5):-
ModifiedSinceDate
Parameter telah dihapus, dan namaUtcModifiedSinceDate
parameter telah diubah menjadi "ModifiedSinceDate”. -
UnmodifiedSinceDate
Parameter telah dihapus, dan namaUtcUnmodifiedSinceDate
parameter telah diubah menjadi "UnmodifiedSinceDate”.
-
Berikut ini adalah daftar lengkap cmdlet yang terpengaruh oleh perubahan ini.
-
Dapatkan- CWMetric Statistik (alias Dapatkan- CWMetric Statistik)
-
Dapatkan- RSCluster Snapshot (alias Dapatkan- RSCluster Snapshots)
-
Dapatkan- RSEvent (alias Dapatkan-) RSEvents
Pipelining dan $AWSHistory
Dalam versi Alat AWS untuk PowerShell sebelum V4, variabel sesi yang disebut $AWSHistory
diperkenalkan yang menyimpan catatan pemanggilan AWS cmdlet dan respons layanan yang diterima untuk setiap pemanggilan.
Di V4 dari Tools for PowerShell, variabel sesi ini tidak digunakan lagi demi -Select *
parameter dan argumen, yang dapat digunakan untuk mengembalikan seluruh respons layanan. -Select
*
Parameter dijelaskan dalamPipelining, output, dan iterasi.
Di V5 dari Tools for PowerShell, variabel $AWSHistory
sesi telah dihapus sepenuhnya. Sebagai konsekuensinya, Clear-AWSHistory
dan Set-AWSHistoryConfiguration
cmdlet juga telah dihapus.
-PassThru
Parameternya
-PassThru
Parameter telah dihapus. Ketika cmdlet tidak mengembalikan output apa pun secara default, pengguna dapat meminta nilai parameter yang dikembalikan dengan menggunakan. -Select ^ParameterName
Untuk detail dan contoh tambahan, lihat posting blog Pratinjau 1 dari Alat AWS untuk PowerShell
V5
Beberapa cmdlet DynamoDB dipindahkan dan diganti namanya
Get-DDBStreamList
Cmdlet Get-DDBStream
dan telah dipindahkan dari modul Dynamo ke DBV2 modul baru yang disebut Dynamo. DBStreams Mereka juga telah berganti nama menjadi Get- DDBSStream dan Get- DDBSStream List, masing-masing.
Pencatatan informasi sensitif
Perilaku logging telah diubah sehingga informasi yang berpotensi sensitif cenderung tidak dimasukkan dalam output cmdlet, terutama dalam CI/CD situasi. Untuk informasi selengkapnya dan petunjuk tentang cara kembali ke perilaku V4, lihat. Pencatatan informasi sensitif
Resolusi kredensi dan profil
Alat AWS untuk PowerShell Telah diperbarui untuk menggunakan variabel lingkungan tertentu saat menyelesaikan kredensil untuk cmdlet:AWS_PROFILE
,, dan. AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN
Selain itu, ada beberapa perubahan dalam urutan resolusi untuk kredensil dan profil. Untuk informasi selengkapnya, lihat Resolusi kredensi dan profil.
Pesan kesalahan kredenal
Pesan kesalahan yang Alat AWS untuk PowerShell dikembalikan jika tidak dapat memperoleh kredensil yang sesuai telah berubah.
Di v4 alat, pesannya mirip dengan yang berikut:
Get-SFNExecutionList -Region us-west-2 Get-SFNExecutionList: No credentials specified or obtained from persisted/shell defaults.
Di V5 alat, pesannya mirip dengan yang berikut:
Get-SFNExecutionList -Region us-west-2 Get-SFNExecutionList: Failed to resolve AWS credentials. The credential providers used to search for credentials returned the following errors: ... <list of specific exceptions>
Iterasi otomatis yang konsisten
Semua cmdlet paginasi telah diperbarui untuk mengulangi semua data secara otomatis secara default. Anda dapat mengembalikan perilaku ini dengan menggunakan set- AWSAuto IterationMode cmdlet. Jika Anda menjalankanSet-AWSAutoIterationMode -IterationMode
v4
, operasi yang diulang secara otomatis di v4 masih akan diulang secara otomatis, tetapi sisanya akan kembali ke iterasi manual. Untuk menentukan mode iterasi otomatis yang disetel, gunakan cmdlet Get- AWSAuto IterationMode.
Untuk melihat contoh cmdlet yang telah diperbarui dengan cara ini, lihat cmdlet (cmdlet V4 dan Get-CWLLogEvent
cmdlet V5).
Untuk detail tentang iterasi otomatis, lihat. Iterasi melalui data halaman
Cmdlet S3 tidak digunakan lagi dan diganti
Untuk Amazon S3, cmdlet Get-S3acl dan Set-S3acl tidak digunakan lagi. Gunakan cmdlet baru berikut sebagai gantinya: Get-S3BucketACL, ACL, ACL, Set-S3BucketACL. Get-S3Object Set-S3Object
Membersihkan dan memangkas parameter kunci S3
Cmdlet Amazon S3 tertentu menerima parameter bernama dan. Key
KeyPrefix
V4 dari Alat AWS untuk PowerShell akan membersihkan dan memangkas parameter ini dengan cara berikut: hapus spasi terdepan, garis miring maju (“/”), dan garis miring terbalik (“\”), ubah semua garis miring terbalik lainnya menjadi garis miring maju, dan hapus spasi tambahan. Di V5 dari Tools for PowerShell, ini bukan lagi perilaku default. Anda dapat kembali ke perilaku ini dengan menentukan parameter. -EnableLegacyKeyCleaning
Informasi ini berlaku untuk cmdlet berikut:
Kemampuan sesi interaktif
Kemampuan sesi interaktif telah ditambahkan ke Start- SSMSession cmdlet, yang selaras dengan perilaku. AWS CLI Misalnya:
Start-SSMSession -Target 'i-1234567890abcdef0'
Jika Anda membutuhkan perilaku lama, sertakan -DisablePluginInvocation
parameter dalam Start-SSMSession
perintah.
CloudWatch alarm
Get- CWAlarm cmdlet telah diperbarui untuk mengembalikan CloudWatch alarm Amazon metrik dan komposit secara default. Untuk membatasi output ke alarm metrik atau komposit, Anda harus menentukan -AlarmType
parameter: Get-CWAlarm -AlarmType
'MetricAlarms'
atauGet-CWAlarm -AlarmType 'CompositeAlarms'
, masing-masing.
LitJson
Alat AWS untuk PowerShell Telah diperbarui untuk digunakan System.Text.Json
alih-alih LitJson
untuk serialisasi. LitJson
telah dihapus dari V5 alat.
Properti LoggedAt
output
Properti LoggedAt
output telah dihapus. Di V4 alat, properti ini dikembalikan secara default pada beberapa cmdlet (misalnya Get-SSMCommandInvocationDetail
dan). Invoke-LMFunction
Jika Anda perlu mereplikasi informasi yang disediakan oleh properti LoggedAt
output, Anda dapat menyertakan sesuatu yang mirip dengan yang berikut ini dalam skrip Anda:
$loggedAt = (Get-Date).ToUniversalTime().ToString('s')
Elemen pemrograman yang telah dihapus
Sejumlah elemen pemrograman telah dihapus dari V5 dari Tools for PowerShell. Ini tercantum di bawah ini, jika belum tercakup sebelumnya, bersama dengan langkah-langkah potensial yang dapat Anda ambil untuk mengakomodasi penghapusan mereka, jika ada.
-
Invoke-LMFunctionAsync
Cmdlet. -
Get-EC2ImageByName
Cmdlet. Gunakan cmdlet Get- SSMLatest EC2 Image sebagai gantinya. -
CalculateContentMD5Header
Parameter dari Write-S3Objectcmdlet.