Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial terperinci: Pelajari detailnya saat membangun aplikasi sampel
Tutorial mulai cepat membahas cara membangun, memulai, menghentikan, dan menghapus simulasi sampel menggunakan quick-start.py
danstop-and-delete.py
. Tutorial ini akan membahas secara rinci bagaimana skrip ini bekerja, dan parameter tambahan skrip ini dapat mengambil untuk memaksimalkan fleksibilitas untuk simulasi Weaver kustom.
Persyaratan
Sebelum Anda mulai, pastikan Anda menyelesaikan langkah-langkahnyaPengaturan untuk SimSpace Weaver.
Langkah 1: Aktifkan logging (opsional)
Untuk mengaktifkan logging
-
Arahkan ke:
sdk-folder
/Samples/PathfindingSample/tools -
Buka file skema di editor teks:
pathfinding-single-worker-schema.yaml
-
Temukan
simulation_properties:
bagian di awal file:simulation_properties: default_entity_index_key_type: "Vector3<f32>"
-
Masukkan 2 baris berikut setelah baris
simulation_properties:
:log_destination_service: "logs" log_destination_resource_name: "MySimulationLogs"
-
Konfirmasikan bahwa
simulation_properties:
bagian Anda sama dengan yang berikut:simulation_properties: log_destination_service: "logs" log_destination_resource_name: "MySimulationLogs" default_entity_index_key_type: "Vector3<f32>"
-
Simpan file dan keluar dari editor teks Anda.
Langkah 2: Mulai simulasi Anda
Seperti yang ditunjukkan dalam tutorial mulai cepat, langkah paling dasar untuk meluncurkan simulasi sampel adalah:
-
Arahkan ke:
sdk-folder/Samples/PathfindingSample/tools/cloud
-
Jalankan salah satu perintah berikut:
-
buruh pelabuhan:
python quick-start.py
-
WSL:
python quick-start.py --al2
-
Skrip ini mengotomatiskan perintah terminal umum, yang semuanya dapat dijalankan secara manual menggunakan file. AWS CLI Langkah-langkah ini adalah:
-
Unggah skema Weaver ke S3.
-
SimSpace Weaver menggunakan skema untuk mengkonfigurasi simulasi Anda. Skema adalah file teks biasa berformat YAML. Untuk informasi lebih lanjut, lihat. Mengkonfigurasi simulasi Anda
-
-
Bangun dan unggah wadah khusus (opsional).
-
Jika skema Anda mendefinisikan wadah khusus, skrip mulai cepat akan membuat gambar docker dan mengunggahnya ke Amazon ECR. Untuk informasi selengkapnya, lihat Wadah khusus. Lihat
PythonBubblesSample
skema untuk contoh fitur ini.
-
-
Bangun proyek.
-
quick-start.py
memanggilbuild_project
fungsi yang didefinisikan dalambuild.py
. Langkah ini akan bervariasi tergantung pada proyek. Untuk PathfindingSample, CMake digunakan. Perintah CMake dan Docker yang dapat ditemukan di.build.py
-
-
Unggah artefak build ke S3.
-
Anda dapat memeriksa bucket S3 Anda untuk memastikan bahwa semua unggahan berhasil. Untuk informasi selengkapnya tentang penggunaan Amazon S3, lihat Membuat, mengonfigurasi, dan bekerja dengan bucket Amazon S3 di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.
-
Contoh ritsleting aplikasi dan bucket S3 menggunakan format nama berikut:
-
weaver-sample-bucket-account-number-region
-
Aplikasi spasial:
ProjectNameSpatial.zip
-
Lihat aplikasi (kustom):
ProjectNameView.zip
-
-
-
Mulai Simulasi.
-
Ini adalah pembungkus di sekitar
aws simspaceweaver start-simulation
AWS CLI panggilan. Untuk informasi selengkapnya, lihat Referensi AWS CLI Perintah untuk SimSpace Weaver. -
Script akan loop sampai status simulasi adalah salah satu
STARTED
atauFAILED
. Diperlukan beberapa menit untuk memulai simulasi.
-
-
Dapatkan detail simulasi.
-
DescribeSimulationAPI memberikan detail tentang simulasi Anda, termasuk statusnya. Simulasi dapat berada di salah satu keadaan berikut:
Status siklus hidup simulasi
-
STARTING
— Keadaan awal setelah Anda menelepon StartSimulation -
STARTED
— semua aplikasi spasial diluncurkan dan sehat -
STOPPING
— Keadaan awal setelah Anda menelepon StopSimulation -
STOPPED
— Semua sumber daya komputasi dihentikan -
DELETING
— Keadaan awal setelah Anda menelepon DeleteSimulation -
DELETED
— Semua sumber daya yang ditugaskan untuk simulasi dihapus -
FAILED
— Simulasi memiliki kesalahan/kegagalan kritis dan berhenti -
SNAPSHOT_IN_PROGRESS
— Sebuah snapshot sedang berlangsung
Untuk mendapatkan detail simulasi Anda
-
Panggil ListSimulations API.
aws simspaceweaver list-simulations
Skrip harus menampilkan detail tentang setiap simulasi Anda, mirip dengan yang berikut:
{ "Status": "STARTED", "CreationTime": 1664921418.09, "Name": "MyProjectSimulation_22-10-04_22_10_15", "Arn": "arn:aws:simspaceweaver:us-west-2:111122223333:simulation/MyProjectSimulation_22-10-04_22_10_15", "TargetStatus": "STARTED" }
-
Hubungi DescribeSimulation untuk mendapatkan detail simulasi Anda. Gantikan
simulation-name
dengan Name simulasi Anda dari output dari langkah sebelumnya.aws simspaceweaver describe-simulation --simulation
simulation-name
Skrip harus menampilkan detail lebih lanjut tentang simulasi yang Anda tentukan, mirip dengan yang berikut ini:
{ "Status": "STARTED", "CreationTime": 1664921418.09, "Name": "MyProjectSimulation_22-10-04_22_10_15", "Arn": "arn:aws:simspaceweaver:us-west-2:111122223333:simulation/MyProjectSimulation_22-10-04_22_10_15", "TargetStatus": "STARTED" }
-
-
-
Mulai aplikasi khusus.
-
SimSpace Weaver tidak mengelola siklus hidup aplikasi khusus. Anda harus memulai aplikasi kustom Anda. Praktik terbaik adalah memulai aplikasi khusus sebelum memulai jam simulasi, tetapi Anda dapat memulai aplikasi khusus setelah memulai jam.
Anda dapat memanggil StartApp API untuk memulai aplikasi kustom Anda.
aws simspaceweaver start-app --simulation
simulation-name
--nameapp-name
--domaindomain-name
Panggilan StartApp API akan membuat dan memulai instance baru dari aplikasi kustom menggunakan nama yang Anda berikan. Jika Anda memberikan nama aplikasi yang sudah ada maka Anda akan menerima kesalahan. Jika Anda ingin memulai ulang aplikasi tertentu (instance), Anda harus terlebih dahulu menghentikan aplikasi itu dan menghapusnya.
catatan
Status simulasi Anda harus
STARTED
sebelum Anda dapat memulai aplikasi khusus.Aplikasi sampel menyediakan aplikasi
ViewApp
khusus untuk melihat simulasi Anda. Aplikasi ini memberi Anda alamat IP statis dan nomor port untuk menghubungkan klien simulasi (Anda akan melakukan ini di langkah selanjutnya dalam tutorial ini). Anda dapat menganggap a domain sebagai kelas aplikasi yang memiliki kode yang dapat dieksekusi dan opsi peluncuran yang sama. app nameMengidentifikasi instance aplikasi. Untuk informasi lebih lanjut tentang SimSpace Weaver konsep, lihatKonsep kunci untuk SimSpace Weaver.Anda dapat menggunakan DescribeApp API untuk memeriksa status aplikasi khusus setelah Anda memulainya.
aws simspaceweaver describe-app --simulation
simulation-name
--appapp-name
--domaindomain-name
Untuk memulai aplikasi tampilan dalam tutorial ini
-
Panggilan StartApp untuk
ViewApp
.aws simspaceweaver start-app --simulation
simulation-name
--name ViewApp --domain MyViewDomain -
Hubungi DescribeApp untuk memeriksa status aplikasi kustom Anda.
aws simspaceweaver describe-app --simulation
simulation-name
--app ViewApp --domain MyViewDomain
Setelah status aplikasi kustom Anda (instance)
STARTED
, output DescribeApp akan menyertakan alamat IP dan nomor port untuk aplikasi kustom tersebut (instance). Dalam contoh output berikut, alamat IP adalah nilaiAddress
dan nomor port adalah nilaiActual
diEndpointInfo
blok.{ "Status": "STARTED", "Domain": "MyViewDomain", "TargetStatus": "STARTED", "Simulation": "MyProjectSimulation_22-10-04_22_10_15", "LaunchOverrides": { "LaunchCommands": [] }, "EndpointInfo": { "IngressPortMappings": [ { "Declared": 7000, "Actual": 4321 } ], "Address": "198.51.100.135" }, "Name": "ViewApp" }
catatan
Nilai
Declared
adalah nomor port yang harus diikat oleh kode aplikasi Anda. NilaiActual
adalah nomor port yang SimSpace Weaver mengekspos klien untuk terhubung ke aplikasi Anda. SimSpace Weaver memetakanDeclared
port keActual
port.catatan
Anda dapat menggunakan prosedur yang dijelaskan di Dapatkan alamat IP dan nomor port aplikasi khusus untuk mendapatkan alamat IP dan nomor port dari setiap aplikasi kustom yang dimulai.
-
-
-
Mulai jam.
-
Ketika Anda pertama kali membuat simulasi Anda, ia memiliki jam tetapi jam tidak berjalan. Saat jam Anda tidak berjalan, simulasi Anda tidak akan memperbarui statusnya. Setelah Anda memulai jam, itu akan mulai mengirim kutu ke aplikasi Anda. Setiap centang, aplikasi spasial Anda melangkah melalui entitas yang mereka miliki dan berkomitmen hasilnya SimSpace Weaver
catatan
Diperlukan waktu 30-60 detik untuk memulai jam.
Panggil StartClock API.
aws simspaceweaver start-clock --simulation
simulation-name
catatan
StartClockAPI menggunakan Anda
, yang dapat Anda temukan menggunakan ListSimulations API:simulation-name
aws simspaceweaver list-simulations
-
parameter mulai cepat
-
-h, --membantu
-
Buat daftar parameter ini.
-
-
--bersih
-
Hapus konten direktori build sebelum membangun.
-
-
--al2
-
Dibangun langsung di mesin asli alih-alih Docker. Gunakan ini hanya jika berjalan di lingkungan Amazon Linux 2, seperti WSL.
-
-
--uploadonly
-
Hanya unggah skema dan ritsleting aplikasi ke Amazon S3, jangan mulai simulasi.
-
-
--nobuild
-
Lewati pembangunan kembali proyek.
-
-
--tidak ada wadah
-
Lewati membangun kembali wadah simulasi yang tercantum dalam skema.
-
-
--konolelien
-
Secara otomatis membangun dan menghubungkan klien konsol yang tercantum di config.py.
-
-
--skema SKEMA
-
Skema apa yang akan digunakan doa ini. Default ke nilai 'SCHEMA' di config.py.
-
-
--nama NAMA
-
Apa nama simulasi yang akan dimiliki. Default ke nilai 'project_name'-date-time di config.py.
-
Langkah 3: Periksa log (opsional)
SimSpace Weaver menulis pesan manajemen simulasi dan output konsol dari aplikasi Anda ke Amazon CloudWatch Logs. Untuk informasi selengkapnya tentang bekerja dengan log, lihat Bekerja dengan grup log dan aliran log di Panduan Pengguna Amazon CloudWatch Logs.
Setiap simulasi yang Anda buat memiliki grup lognya sendiri di CloudWatch Log. Nama grup log ditentukan dalam skema simulasi. Dalam cuplikan skema berikut, nilainya adalah. log_destination_service
logs
Ini berarti bahwa nilai log_destination_resource_name
adalah nama grup log. Dalam hal ini, grup log adalahMySimulationLogs
.
simulation_properties: log_destination_service: "logs" log_destination_resource_name: "MySimulationLogs" default_entity_index_key_type: "Vector3<f32>"
Anda juga dapat menggunakan DescribeSimulation API untuk menemukan nama grup log untuk simulasi setelah Anda memulainya.
aws simspaceweaver describe-simulation --simulation
simulation-name
Contoh berikut menunjukkan bagian dari output dari DescribeSimulation yang menjelaskan konfigurasi logging. Nama grup log ditampilkan di akhirLogGroupArn
.
"LoggingConfiguration": { "Destinations": [ { "CloudWatchLogsLogGroup": { "LogGroupArn": "arn:aws:logs:us-west-2:111122223333:log-group:MySimulationLogs" } } ] },
Setiap grup log simulasi berisi beberapa aliran log:
-
Aliran log manajemen — pesan manajemen simulasi yang dihasilkan oleh SimSpace Weaver layanan.
/sim/management
-
Aliran log kesalahan — pesan kesalahan yang dihasilkan oleh SimSpace Weaver layanan. Aliran log ini hanya ada jika ada kesalahan. SimSpace Weaver menyimpan kesalahan yang ditulis oleh aplikasi Anda di aliran log aplikasi mereka sendiri (lihat aliran log berikut).
/sim/errors
-
Aliran log aplikasi spasial (1 untuk setiap aplikasi spasial pada setiap pekerja) — keluaran konsol yang dihasilkan oleh aplikasi spasial. Setiap aplikasi spasial menulis ke aliran lognya sendiri.
spatial-app-id
Itu semua karakter setelah garis miring di akhir.worker-id
/domain/
spatial-domain-name
/app/worker-worker-id
/spatial-app-id
-
Aliran log aplikasi khusus (1 untuk setiap instance aplikasi kustom) — keluaran konsol yang dihasilkan oleh aplikasi khusus. Setiap instance aplikasi kustom menulis ke aliran lognya sendiri.
/domain/
custom-domain-name
/app/custom-app-name
/random-id
-
Aliran log aplikasi layanan (1 untuk setiap instance aplikasi layanan) — keluaran konsol yang dihasilkan oleh aplikasi layanan. Setiap aplikasi layanan menulis ke aliran lognya sendiri.
service-app-id
Itu semua karakter setelah garis miring di akhir.service-app-name
/domain/
service-domain-name
/app/service-app-name
/service-app-id
catatan
Aplikasi sampel tidak memiliki aplikasi layanan.
Langkah 4: Lihat simulasi Anda
SDK SimSpace Weaver aplikasi menyediakan opsi berbeda untuk melihat contoh aplikasi. Anda dapat menggunakan klien konsol sampel jika Anda tidak memiliki dukungan lokal untuk pengembangan Unreal Engine. Petunjuk untuk klien Unreal Engine mengasumsikan bahwa Anda menggunakan Windows.
Klien konsol menampilkan daftar peristiwa entitas saat terjadi. Klien mendapatkan informasi peristiwa entitas dariViewApp
. Jika klien konsol Anda menampilkan daftar acara, maka itu mengonfirmasi konektivitas jaringan dengan ViewApp
dan aktivitas dalam simulasi Anda.
PathfindingSample
Simulasi menciptakan entitas stasioner dan bergerak pada bidang 2 dimensi. Entitas bergerak bergerak di sekitar entitas stasioner. Klien Unreal Engine menyediakan visualisasi peristiwa entitas.
Klien konsol
Klien konsol dapat dibuat dan dihubungkan secara otomatis saat meluncurkan sampel quick-start.py
jika Anda menyertakan --consoleclient
opsi. Untuk membangun dan menghubungkan klien konsol quick-start.py
setelah dipanggil, lakukan hal berikut:
Arahkan ke:
sdk-folder/Clients/TCP/CppConsoleClient
Jalankan skrip untuk membangun dan menghubungkan klien:
python start_client.py --host ip-address --port port-number
Script akan melakukan hal berikut:
-
Bangun klien konsol dengan CMake.
-
Luncurkan executable yang dibangun dengan alamat IP dan nomor port yang diberikan.
.\WeaverNngConsoleClient.exe --url tcp://
ip-address:port-number
Klien Unreal Engine
Lihat Meluncurkan klien tampilan Unreal Engine.
Langkah 5: Hentikan dan hapus simulasi Anda
Arahkan ke:
sdk-folder/Samples/PathfindingSample/tools/cloud
Temukan nama-nama simulasi Anda:
aws simspaceweaver list-simulations
Hentikan dan hapus simulasi:
python stop-and-delete.py --simulation simulation-name
Script stop-and-delete.py
akan melakukan hal berikut:
-
Panggil AWS CLI perintah untuk menghentikan simulasi.
-
aws simspaceweaver stop-simulation
-
Untuk informasi selengkapnya, lihat Referensi AWS CLI Perintah untuk SimSpace Weaver.
-
-
Panggil AWS CLI perintah untuk menghapus simulasi.
-
aws simpaceweaver delete-simulation
-
Untuk informasi selengkapnya, lihat Referensi AWS CLI Perintah untuk SimSpace Weaver.
-
stop-and-delete parameter
-
-h, --membantu
-
Buat daftar parameter ini.
-
-
--simulasi SIMULASI
-
Nama simulasi untuk stop-and-delete
-
-
--berhenti
-
Hentikan saja simulasi. Tidak menghapusnya.
-
-
--hapus
-
Hapus saja simulasi. Hanya akan bekerja jika dia simulasi salah satu
STOPPED
atauFAILED
.
-
Pemecahan Masalah
Lihat Pemecahan Masalah di tutorial mulai cepat.