Örnek PowerShell betikleri

Azure Remote Rendering aşağıdaki iki REST API'yi sağlar:

ARR örnekleri deposu, Hizmetin REST API'leriyle etkileşime geçilmesi için Script klasöründeki örnek betikleri içerir. Bu makalede kullanımları açıklanmaktadır.

İpucu

Ayrıca, betikleri kullanmaya uygun bir alternatif olan, hizmetle etkileşime geçmek için ARRT adlı kullanıcı arabirimi tabanlı bir araç da vardır. ARRT

Dikkat

REST API işlevlerinin çok sık çağrılması sunucunun kısıtlamasına ve sonunda hata döndürmesine neden olur. Bu durumda HTTP hata kodu kimliği 429'dur ("çok fazla istek var"). Kural olarak, sonraki çağrılar arasında 5-10 saniyelik bir gecikme olmalıdır.

Önkoşullar

Örnek betikleri yürütmek için Azure PowerShell işlevsel bir kuruluma ihtiyacınız vardır.

  1. Azure PowerShell'i yükleme:

    1. Yönetici haklarına sahip bir PowerShell penceresi açın.
    2. Çalıştırın: Install-Module -Name Az -AllowClobber
  2. Betik çalıştırmayla ilgili hatalar alırsanız , yürütme ilkenizin uygun şekilde ayarlandığından emin olun:

    1. Yönetici haklarına sahip bir PowerShell penceresi açın.
    2. Çalıştırın: Set-ExecutionPolicy -ExecutionPolicy Unrestricted
  3. Azure Depolama hesabı hazırlama

  4. Azure Remote Rendering hesabınızı içeren aboneliğinizde oturum açın:

    1. PowerShell penceresini açın.
    2. Komutunu çalıştırın: Connect-AzAccount ve ekrandaki yönergeleri izleyin.

    Not

    Kuruluşunuzun birden fazla aboneliği varsa SubscriptionId ve Kiracı bağımsız değişkenlerini belirtmeniz gerekebilir. Ayrıntıları Connect-AzAccount belgelerinde bulabilirsiniz.

  5. Azure Remote Rendering GitHub deposundanBetikler klasörünü indirin.

Yapılandırma dosyası

Dosyaların yanında .ps1 doldurmanız gereken bir arrconfig.json dosya vardır:

{
    "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>"
  }
}

Dikkat

Çift ters eğik çizgi kullanarak LocalAssetDirectoryPath yolundaki ters eğik çizgilerden düzgün bir şekilde kaçış sağladığından emin olun: "\\" ve inputFolderPath ve inputAssetPath gibi diğer tüm yollarda "/" eğik çizgilerini kullanın.

Dikkat

İsteğe bağlı değerlerin doldurulması veya anahtarı ve değeri tamamen kaldırmanız gerekir. Örneğin parametresini "outputAssetFileName" kullanmıyorsanız içindeki arrconfig.jsonsatırın tamamını silmeniz gerekir.

accountSettings

ve arrAccountKeyiçin arrAccountId bkz. Azure Remote Rendering hesabı oluşturma. kullanılabilir arrAccountDomainbölgeler listesinden bir bölge olmalıdır.

renderingSessionSettings

RenderingSession.ps1çalıştırmak istiyorsanız bu yapı doldurulmalıdır:

  • vmSize: Sanal makinenin boyutunu seçer. Standart veya premium'ı seçin. Artık ihtiyacınız olmadığında işleme oturumlarını kapatın.
  • maxLeaseTime: VM'yi kiralamak istediğiniz süre. Kira süresi dolduğunda VM kapatılır. Kiralama süresi daha sonra uzatılabilir ( buraya bakın).
  • remoteRenderingDomain: Uzaktan işleme VM'sinin bulunduğu bölge.

assetConversionSettings

Conversion.ps1çalıştırmak istiyorsanız bu yapı doldurulmalıdır.

Ayrıntılar için bkz. Azure Depolama hesabı hazırlama.

Betik: RenderingSession.ps1

Bu betik, işleme oturumlarını oluşturmak, sorgulamak ve durdurmak için kullanılır.

Önemli

arrconfig.json dosyasında accountSettings ve renderingSessionSettings bölümlerini doldurduğunuzdan emin olun.

İşleme oturumu oluşturma

Tamamen doldurulmuş arrconfig.json ile normal kullanım:

.\RenderingSession.ps1

Betik, belirtilen ayarlarla bir işleme VM'sini çalıştırmak için oturum yönetimi REST API'sini çağırır. Başarılı olduğunda sessionId değerini alır. Daha sonra oturum hazır olana veya bir hata oluşana kadar oturum özelliklerini yoklar.

Alternatif bir yapılandırma dosyası kullanmak için:

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

Yapılandırma dosyasından tek tek ayarları geçersiz kılabilirsiniz :

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

Oturumu yalnızca yoklama olmadan başlatmak için şunları kullanabilirsiniz:

.\RenderingSession.ps1 -CreateSession

Betiğin aldığınız sessionId değeri diğer oturum komutlarının çoğuna geçirilmelidir.

Oturum özelliklerini alma

Oturumun özelliklerini almak için şunu çalıştırın:

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

Oturum hazır olana veya bir hata oluşana kadar beklemek için kullanın-Poll.

Etkin oturumları listeleme

.\RenderingSession.ps1 -GetSessions

Oturumu durdurma

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

Oturum özelliklerini değiştirme

Şu anda yalnızca oturumun maxLeaseTime değerini değiştirmeyi destekliyoruz.

Not

Kira süresi, oturum VM'sinin ilk oluşturulduğu zamandan itibaren her zaman sayılır. Bu nedenle oturum kirasını bir saat daha uzatmak için maxLeaseTime değerini bir saat artırın.

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

Betik: Conversion.ps1

Bu betik, giriş modellerini Azure Remote Rendering belirli çalışma zamanı biçimine dönüştürmek için kullanılır.

Önemli

accountSettings ve assetConversionSettings bölümlerini ve arrconfig.json dosyasında renderingSessionSettings içindeki remoteRenderingDomain seçeneğini doldurduğunuzdan emin olun.

Betik, depolama hesaplarını hizmetle birlikte kullanmak için iki seçeneği gösterir:

  • Azure Remote Rendering Hesabı ile bağlantılı depolama hesabı
  • Paylaşılan Erişim İmzaları (SAS) aracılığıyla depolamaya erişim sağlama

Bağlı depolama hesabı

arrconfig.json dosyasını tam olarak doldurup bir depolama hesabını bağladıktan sonra aşağıdaki komutu kullanabilirsiniz. Depolama hesabınızı bağlama işlemi Hesap Oluşturma bölümünde açıklanmıştır.

Paylaşılan Erişim İmzaları oluşturmaya gerek olmadığından, dönüştürme hizmetini kullanmanın tercih edilen yolu bağlı depolama hesabı kullanmaktır.

.\Conversion.ps1
  1. içindeki assetConversionSettings.modelLocation tüm dosyaları verilen inputFolderPathaltındaki giriş blob kapsayıcısına yükleyin.
  2. Model dönüştürmeyi başlatmaya başlamak için model dönüştürme REST API'sini çağırma
  3. Dönüştürme başarılı veya başarısız olana kadar dönüştürme durumunu yoklama.
  4. Dönüştürülen dosya konumunun (depolama hesabı, çıkış kapsayıcısı, kapsayıcıdaki dosya yolu) çıkış ayrıntıları.

Paylaşılan Erişim İmzaları aracılığıyla depolamaya erişim

.\Conversion.ps1 -UseContainerSas

Bu işlem:

  1. yerel dosyasını dosyasından assetConversionSettings.localAssetDirectoryPath giriş blob kapsayıcısına yükleyin.
  2. Giriş kapsayıcısı için bir SAS URI'sini oluşturun.
  3. Çıkış kapsayıcısı için bir SAS URI'sini oluşturun.
  4. Model dönüştürmeyi başlatmaya başlamak için model dönüştürme REST API'sini çağırın.
  5. Dönüştürme başarılı veya başarısız olana kadar dönüştürme durumunu yoklama.
  6. Dönüştürülen dosya konumunun (depolama hesabı, çıkış kapsayıcısı, kapsayıcıdaki dosya yolu) çıkış ayrıntıları.
  7. Çıkış blob kapsayıcısında dönüştürülen modele bir SAS URI'sinin çıkışını verin.

Ek komut satırı seçenekleri

Alternatif bir yapılandırma dosyası kullanmak için:

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

Yoklama olmadan yalnızca model dönüştürmeyi başlatmak için şunları kullanabilirsiniz:

.\Conversion.ps1 -ConvertAsset

Aşağıdaki komut satırı anahtarlarını kullanarak yapılandırma dosyasındaki tek tek ayarları geçersiz kılabilirsiniz :

  • Kimliği: GetConversionStatus ile kullanılan ConversionId
  • ArrAccountId: accountSettings arrAccountId
  • ArrAccountKey: accountSettings arrAccountKey için geçersiz kılma
  • ArrAccountDomain: accountSettings arrAccountDomain için geçersiz kılma
  • RemoteRenderingDomain: override for remoteRenderingDomain of renderingSessionSettings
  • ResourceGroup: assetConversionSettings resourceGroup için geçersiz kılma
  • StorageAccountName: assetConversionSettings'in storageAccountName değerini geçersiz kılma
  • BlobInputContainerName: assetConversionSettings blobInputContainer için geçersiz kılma
  • LocalAssetDirectoryPath: assetConversionSettings localAssetDirectoryPath için geçersiz kılma
  • InputAssetPath: assetConversionSettings inputAssetPath için geçersiz kılma
  • BlobOutputContainerName: assetConversionSettings blobOutputContainerName için geçersiz kılma
  • OutputFolderPath: assetConversionSettings outputFolderPath için geçersiz kılma
  • OutputAssetFileName: assetConversionSettings outputAssetFileName için geçersiz kılma

Örneğin, aşağıdaki gibi verilen seçenekleri birleştirebilirsiniz:

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

Tek tek dönüştürme aşamalarını çalıştırma

İşlemin adımlarını tek tek çalıştırmak istiyorsanız şunları kullanabilirsiniz:

Yalnızca verilen LocalAssetDirectoryPath'ten verileri karşıya yükleyin.

.\Conversion.ps1 -Upload

Yalnızca blob depolama alanına zaten yüklenmiş olan bir modelin dönüştürme işlemini başlatın (Karşıya Yükle'yi çalıştırmayın, dönüştürme durumunu yoklamayın) Betik bir conversionId döndürür.

.\Conversion.ps1 -ConvertAsset

Ayrıca aşağıdakini kullanarak bu dönüştürmenin dönüştürme durumunu alabilirsiniz:

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

Dönüştürme yapılana veya hata oluşana kadar beklemek için kullanın -Poll .

Sonraki adımlar