Bagikan melalui


Contoh skrip PowerShell

Azure Remote Rendering menyediakan dua API REST berikut ini:

Repositori sampel ARR berisi contoh skrip di folder Skrip untuk berinteraksi dengan REST API layanan. Artikel ini menjelaskan penggunaannya.

Tip

Ada juga alat berbasis UI yang disebut ARRT untuk berinteraksi dengan layanan, yang merupakan alternatif praktis untuk menggunakan skrip.

Perhatian

Panggilan REST API yang terlalu sering akan menyebabkan server dibatasi dan akhirnya menampilkan kegagalan. ID kode kegagalan HTTP dalam kasus ini adalah 429 ("terlalu banyak permintaan"). Sebagai aturan praktis, harus ada penundaan 5-10 detik antara panggilan berikutnya.

Prasyarat

Untuk menjalankan contoh skrip, Anda memerlukan pengaturan fungsional Azure PowerShell.

  1. Pasang Azure PowerShell:

    1. Buka jendela PowerShell dengan hak admin.
    2. Jalankan: Install-Module -Name Az -AllowClobber
  2. Jika Anda mendapatkan kesalahan tentang menjalankan skrip, pastikan kebijakan eksekusi Anda ditetapkan dengan tepat:

    1. Buka jendela PowerShell dengan hak admin.
    2. Jalankan: Set-ExecutionPolicy -ExecutionPolicy Unrestricted
  3. Siapkan akun Azure Storage

  4. Masuk ke langganan Anda yang berisi akun Azure Remote Rendering Anda:

    1. Buka jendela PowerShell.
    2. Jalankan: Connect-AzAccount dan ikuti petunjuk di layar.

    Catatan

    Jika organisasi Anda memiliki lebih dari satu langganan, Anda mungkin perlu menentukan argumen SubscriptionId dan Tenant. Temukan detailnya dalam dokumentasi Connect-AzAccount.

  5. Unduh folder Skrip dari repositori Azure Remote Rendering GitHub.

File konfigurasi

Di samping file .ps1, terdapat arrconfig.json yang perlu Anda isi:

{
    "accountSettings": {
        "arrAccountId": "<fill in the account ID from the Azure Portal>",
        "arrAccountKey": "<fill in the account key from the Azure Portal>",
        "arrAccountDomain": "<select from available regions: australiaeast, eastus, eastus2, japaneast, northeurope, southcentralus, southeastasia, uksouth, westeurope, westus2 or specify the full url>"
    },
    "renderingSessionSettings": {
        "remoteRenderingDomain": "<select from available regions: australiaeast, eastus, eastus2, japaneast, northeurope, southcentralus, southeastasia, uksouth, westeurope, westus2 or specify the full url>",
        "vmSize": "<select standard or premium>",
        "maxLeaseTime": "<hh:mm:ss>"
    },
  "assetConversionSettings": {
    "resourceGroup": "<resource group which contains the storage account you created, only needed when uploading or generating SAS>",
    "storageAccountName": "<name of the storage account you created>",
    "blobInputContainerName": "<input container inside the storage container>",
    "blobOutputContainerName": "<output container inside the storage container>",
    "localAssetDirectoryPath": "<fill in a path to a local directory containing your asset (and files referenced from it like textures)>",
    "inputFolderPath": "<optional: base folderpath in the input container for asset upload. uses / as dir separator>",
    "inputAssetPath": "<the path to the asset under inputcontainer/inputfolderpath pointing to the input asset e.g. box.fbx>",
    "outputFolderPath": "<optional: base folderpath in the output container - the converted asset and log files will be placed here>",
    "outputAssetFileName": "<optional: filename for the converted asset, this will be placed in the output container under the outputpath>"
  }
}

Perhatian

Pastikan untuk menghindari garis miring terbalik dengan benar di jalur LocalAssetDirectoryPath dengan menggunakan garis miring terbalik ganda: "\\" dan gunakan garis miring ke depan "/" di semua jalur lain seperti inputFolderPath dan inputAssetPath.

Perhatian

Nilai opsional perlu diisi atau Anda harus menghapus semua kunci dan nilai. Misalnya, jika Anda tidak menggunakan "outputAssetFileName" parameter , Anda perlu menghapus seluruh baris di dalam arrconfig.json.

accountSettings

Untuk arrAccountId dan arrAccountKey, lihat Buat akun Azure Remote Rendering. arrAccountDomain harus menjadi wilayah dari daftar wilayah yang tersedia.

renderingSessionSettings

Struktur ini harus diisi jika Anda ingin menjalankan RenderingSession.ps1:

  • vmSize: Memilih ukuran komputer virtual. Pilih standar atau premium. Matikan sesi penyajian saat Anda tidak membutuhkannya lagi.
  • maxLeaseTime: Durasi penyewaan VM. VM dimatikan ketika sewa kedaluwarsa. Waktu sewa dapat diperpanjang nanti (lihat di sini).
  • remoteRenderingDomain: Wilayah tempat VM remote rendering berada.

assetConversionSettings

Struktur ini harus diisi jika Anda ingin menjalankan Conversion.ps1.

Untuk detailnya, lihat Menyiapkan akun Azure Storage.

Skrip: RenderingSession.ps1

Skrip ini digunakan untuk membuat, mengkueri, dan menghentikan sesi penyajian.

Penting

Pastikan Anda telah mengisi bagian accountSettings dan renderingSessionSettings di arrconfig.json.

Membuat sesi penyajian

Penggunaan normal dengan arrconfig.json yang terisi penuh:

.\RenderingSession.ps1

Skrip memanggil REST API manajemen sesi untuk memutar VM penyajian dengan pengaturan yang ditentukan. Setelah berhasil, ia mengambil sessionId. Setelah itu polling properti sesi sampai sesi siap atau terjadi kesalahan.

Untuk menggunakan file konfigurasi alternatif:

.\RenderingSession.ps1 -ConfigFile D:\arr\myotherconfigFile.json

Anda dapat menimpa pengaturan individual dari file konfigurasi:

.\RenderingSession.ps1 -ArrAccountDomain <arrAccountDomain> -RemoteRenderingDomain <remoteRenderingDomain> -VmSize <vmsize> -MaxLeaseTime <hh:mm:ss>

Untuk memulai sesi tanpa polling saja, Anda dapat menggunakan:

.\RenderingSession.ps1 -CreateSession

sessionId yang diambil skrip harus diteruskan ke sebagian besar perintah sesi lainnya.

Ambil properti sesi

Untuk mendapatkan properti sesi, jalankan:

.\RenderingSession.ps1 -GetSessionProperties -Id <sessionID> [-Poll]

Gunakan -Poll untuk menunggu hingga sesi siap atau terjadi kesalahan.

Buat daftar sesi aktif

.\RenderingSession.ps1 -GetSessions

Hentikan sesi

.\RenderingSession.ps1 -StopSession -Id <sessionID>

Ubah properti sesi

Saat ini, kami hanya mendukung perubahan maxLeaseTime sesi.

Catatan

Waktu sewa selalu dihitung dari waktu ketika sesi VM awal dibuat. Jadi, untuk memperpanjang sewa sesi satu jam lagi, tingkatkan maxLeaseTime menjadi satu jam.

.\RenderingSession.ps1 -UpdateSession -Id <sessionID> -MaxLeaseTime <hh:mm:ss>

Skrip: Conversion.ps1

Skrip ini digunakan untuk mengonversi model input ke dalam format runtime spesifik Azure Remote Rendering.

Penting

Pastikan Anda telah mengisi bagian accountSettings dan assetConversionSettings , dan opsi remoteRenderingDomain di renderingSessionSettings di arrconfig.json.

Skrip menunjukkan dua opsi penggunaan akun penyimpanan dengan layanan:

  • Akun penyimpanan ditautkan dengan Akun Azure Remote Rendering
  • Menyediakan akses ke penyimpanan melalui Tanda Tangan Akses Bersama (SAS)

Akun penyimpanan tertaut

Setelah Anda sepenuhnya mengisi arrconfig.json dan menautkan akun penyimpanan, Anda dapat menggunakan perintah berikut. Menautkan akun penyimpanan Anda dijelaskan di Buat Akun.

Menggunakan akun penyimpanan tertaut adalah cara yang lebih disukai untuk menggunakan layanan konversi karena tidak perlu membuat Tanda Tangan Akses Bersama.

.\Conversion.ps1
  1. Unggah semua file yang terkandung dalam assetConversionSettings.modelLocation ke kontainer blob input di bawah yang diberikan inputFolderPath.
  2. Panggil REST API konversi model untuk memulai konversi model
  3. Polling status konversi hingga konversi berhasil atau gagal.
  4. Detail output dari lokasi file yang dikonversi (akun penyimpanan, kontainer output, jalur file dalam kontainer).

Akses ke penyimpanan melalui Tanda Tangan Akses Bersama

.\Conversion.ps1 -UseContainerSas

Ini akan:

  1. Mengunggah file lokal dari assetConversionSettings.localAssetDirectoryPath ke kontainer blob input.
  2. Membuat SAS URI untuk kontainer input.
  3. Membuat SAS URI untuk kontainer output.
  4. Panggil REST API konversi model untuk memulai konversi model.
  5. Polling status konversi hingga konversi berhasil atau gagal.
  6. Detail output dari lokasi file yang dikonversi (akun penyimpanan, kontainer output, jalur file dalam kontainer).
  7. Keluarkan SAS URI ke model yang dikonversi dalam kontainer blob output.

Opsi baris perintah tambahan

Untuk menggunakan file konfigurasi alternatif:

.\Conversion.ps1 -ConfigFile D:\arr\myotherconfigFile.json

Untuk memulai konversi model tanpa polling saja, Anda dapat menggunakan:

.\Conversion.ps1 -ConvertAsset

Anda dapat menimpa pengaturan individual dari file konfigurasi menggunakan sakelar baris perintah berikut:

  • Id: ConversionId digunakan dengan GetConversionStatus
  • ArrAccountId: arrAccountId dari accountSettings
  • ArrAccountKey: menimpa arrAccountKey dari accountSettings
  • ArrAccountDomain: menimpa arrAccountDomain dari accountSettings
  • RemoteRenderingDomain: menimpa remoteRenderingDomain dari renderingSessionSettings
  • ResourceGroup: menimpa resourceGroup dari assetConversionSettings
  • StorageAccountName: menimpa storageAccountName dari assetConversionSettings
  • BlobInputContainerName: menimpa blobInputContainer dari asetConversionSettings
  • LocalAssetDirectoryPath: menimpa localAssetDirectoryPath dari assetConversionSettings
  • InputAssetPath: menimpa inputAssetPath dari assetConversionSettings
  • BlobOutputContainerName: menimpa blobOutputContainerName dari assetConversionSettings
  • OutputFolderPath: menimpa outputFolderPath dari assetConversionSettings
  • OutputAssetFileName: menimpa outputAssetFileName dari asetConversionSettings

Misalnya, Anda dapat menggabungkan opsi yang diberikan seperti ini:

.\Conversion.ps1 -LocalAssetDirectoryPath "C:\\models\\box" -InputAssetPath box.fbx -OutputFolderPath another/converted/box -OutputAssetFileName newConversionBox.arrAsset

Jalankan tahap konversi individual

Jika Anda ingin menjalankan langkah-langkah individual proses, Anda bisa menggunakan:

Hanya unggah data dari LocalAssetDirectoryPath yang diberikan.

.\Conversion.ps1 -Upload

Hanya mulai proses konversi model yang sudah diunggah ke penyimpanan blob (jangan jalankan Unggah, jangan polling status konversi) Skrip mengembalikan conversionId.

.\Conversion.ps1 -ConvertAsset

Dan Anda dapat mengambil status konversi dari konversi ini menggunakan:

.\Conversion.ps1 -GetConversionStatus -Id <conversionId> [-Poll]

Gunakan -Poll untuk menunggu hingga konversi selesai atau terjadi kesalahan.

Langkah berikutnya