PowerShell-voorbeeldscripts
Azure Remote Rendering bevat de volgende twee REST API's:
De ARR-opslagplaats bevat voorbeeldscripts in de map Scripts voor het werken met de REST API's van de service. In dit artikel wordt het gebruik hiervan beschreven.
Tip
Er is ook een op de gebruikersinterface gebaseerd hulpprogramma met de naam ARRT om met de service te communiceren. Dit is een handig alternatief in plaats van scripts.
Waarschuwing
Als REST API-functies te vaak worden aangeroepen, wordt de server trager en wordt er uiteindelijk een fout geretourneerd. De HTTP-foutcode-id is in dit geval 429 ('te veel aanvragen'). Als vuistregel moet er een vertraging van 5-10 seconden tussen opeenvolgende aanroepen in acht worden genomen.
Als u de voorbeeldscripts wilt uitvoeren, hebt u een functionele installatie van Azure PowerShell nodig.
Installeer Azure PowerShell:
- Open een PowerShell-venster met beheerdersrechten.
- Voer dit uit:
Install-Module -Name Az -AllowClobber
Als er fouten optreden bij het uitvoeren van scripts, controleert u of het uitvoeringsbeleid op de juiste wijze is ingesteld:
- Open een PowerShell-venster met beheerdersrechten.
- Voer dit uit:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
Meld u aan bij uw abonnement met uw Azure Remote Rendering-account:
- Open een Powershell-venster.
- Voer
Connect-AzAccount
uit en volg de aanwijzingen op het scherm.
Notitie
Als uw organisatie meerdere abonnementen heeft, moet u mogelijk de argumenten SubscriptionId en Tenant opgeven. Meer informatie vindt u in de documentatie bij Connect-AzAccount.
Download de map Scripts in de Azure Remote Rendering GitHub-opslagplaats.
Naast de .ps1
-bestanden ziet u een arrconfig.json
die u moet invullen:
{
"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>"
}
}
Waarschuwing
Zorg ervoor dat u backslashes in het pad LocalAssetDirectoryPath op de juiste manier escapet met behulp van dubbele backslashes: "\\" en gebruik slashes "/" in alle andere paden, zoals inputFolderPath en inputAssetPath.
Waarschuwing
Optionele waarden moeten worden ingevuld of u verwijdert de sleutel en de waarde helemaal. Als u bijvoorbeeld de "outputAssetFileName"
parameter niet gebruikt, moet u de hele regel in arrconfig.json
verwijderen.
Zie Een Azure Remote Rendering-account maken voor arrAccountId
en arrAccountKey
.
De arrAccountDomain
moet een regio zijn uit de lijst met beschikbare regio's.
Deze structuur moet worden ingevuld als u RenderingSession.ps1 wilt uitvoeren:
- vmSize: Hiermee wordt de grootte van de virtuele machine geselecteerd. Selecteer standard of premium. Schakel renderingsessies uit wanneer u deze niet meer nodig hebt.
- maxLeaseTime: De duur waarvoor u de virtuele machine wilt leasen. De VM wordt afgesloten wanneer de lease verloopt. De leasetijd kan later worden verlengd (zie hier).
-
remoteRenderingDomain: De regio waarin de externe rendering-VM zich bevindt.
- Kan afwijken van het arrAccountDomain, maar moet nog steeds een regio zijn uit de lijst met beschikbare regio's
Deze structuur moet worden ingevuld als u Conversion.ps1 wilt uitvoeren.
Zie Een Azure-opslagaccount voorbereiden voor meer informatie.
Dit script wordt gebruikt om renderingsessies te maken, op te vragen en te stoppen.
Belangrijk
Zorg ervoor dat u de secties accountSettings en renderingSessionSettings in arrconfig.json hebt ingevuld.
Normaal gebruik met een volledig ingevulde arrconfig.json:
.\RenderingSession.ps1
Het script roept de REST API voor sessiebeheer aan om een rendering-VM te maken met de opgegeven instellingen. Als dit is gelukt, wordt de sessionId opgehaald. Daarna worden de sessie-eigenschappen gepeild totdat de sessie gereed is of er een fout is opgetreden.
Een alternatief configuratiebestand gebruiken:
.\RenderingSession.ps1 -ConfigFile D:\arr\myotherconfigFile.json
U kunt de afzonderlijke instellingen van het configuratiebestand overschrijven:
.\RenderingSession.ps1 -ArrAccountDomain <arrAccountDomain> -RemoteRenderingDomain <remoteRenderingDomain> -VmSize <vmsize> -MaxLeaseTime <hh:mm:ss>
Als u alleen een sessie wilt starten zonder polling, kunt u het volgende gebruiken:
.\RenderingSession.ps1 -CreateSession
De sessionId die het script ophaalt, moet worden doorgegeven aan de meeste andere sessieopdrachten.
Als u de eigenschappen van een sessie wilt ophalen, voert u het volgende uit:
.\RenderingSession.ps1 -GetSessionProperties -Id <sessionID> [-Poll]
Gebruik -Poll
om te wachten tot de sessie gereed is of er een fout is opgetreden.
.\RenderingSession.ps1 -GetSessions
.\RenderingSession.ps1 -StopSession -Id <sessionID>
Op dit moment ondersteunen we alleen het wijzigen van de maxLeaseTime van een sessie.
Notitie
De leasetijd wordt altijd geteld vanaf het moment waarop de sessie-VM voor het eerst is gemaakt. Als u de sessielease wilt uitbreiden met een uur, moet u maxLeaseTime verhogen met één uur.
.\RenderingSession.ps1 -UpdateSession -Id <sessionID> -MaxLeaseTime <hh:mm:ss>
Dit script wordt gebruikt om invoermodellen te converteren naar de specifieke runtime-indeling van Azure Remote Rendering.
Belangrijk
Zorg ervoor dat u de secties accountSettings en assetConversionSettings en de optie remoteRenderingDomain in de renderingSessionSettings in arrconfig.json hebt ingevuld.
In het script ziet u de twee opties voor het gebruik van opslagaccounts met de service:
- Opslagaccount gekoppeld aan Azure Remote Rendering-account
- Toegang verlenen tot opslag via Shared Access Signatures (SAS)
Zodra u arrconfig.json volledig hebt ingevuld en een opslagaccount hebt gekoppeld, kunt u de volgende opdracht gebruiken. Het koppelen van uw opslagaccount wordt beschreven in Een account maken.
Het gebruik van een gekoppeld opslagaccount is de voorkeursmanier voor het gebruik van de conversieservice, omdat er geen Shared Access Signatures hoeven te worden gegenereerd.
.\Conversion.ps1
- Upload alle bestanden in de
assetConversionSettings.modelLocation
naar de invoer-blobcontainer onder de opgegeveninputFolderPath
. - De REST API voor modelconversie aanroepen om de modelconversie te starten
- De conversiestatus pollen totdat de conversie is geslaagd of mislukt.
- Uitvoerdetails van de geconverteerde bestandslocatie (opslagaccount, uitvoercontainer en bestandspad in de container).
.\Conversion.ps1 -UseContainerSas
Hiermee wordt:
- Het lokale bestand van de
assetConversionSettings.localAssetDirectoryPath
geüpload naar de invoerblobcontainer. - Een SAS-URI gegenereerd voor de invoercontainer.
- Een SAS-URI gegenereerd voor de uitvoercontainer.
- De REST API voor modelconversie aanroepen om de modelconversie te starten.
- De conversiestatus pollen totdat de conversie is geslaagd of mislukt.
- Uitvoerdetails van de geconverteerde bestandslocatie (opslagaccount, uitvoercontainer en bestandspad in de container).
- Een SAS-URI uitvoeren naar het geconverteerde model in de uitvoerblobcontainer.
Een alternatief configuratiebestand gebruiken:
.\Conversion.ps1 -ConfigFile D:\arr\myotherconfigFile.json
Als u alleen een modelconversie wilt starten zonder polling, kunt u het volgende gebruiken:
.\Conversion.ps1 -ConvertAsset
Met de volgende opdrachtregelopties kunt u de afzonderlijke instellingen uit het configuratiebestand overschrijven:
- Id: ConversionId gebruikt met GetConversionStatus
- ArrAccountId: arrAccountId van accountSettings
- ArrAccountKey: overschrijving voor arrAccountKey van accountSettings
- ArrAccountDomain: overschrijven voor arrAccountDomain van accountSettings
- RemoteRenderingDomain: override for remoteRenderingDomain of renderingSessionSettings
- ResourceGroup: overschrijving voor resourceGroup van assetConversionSettings
- StorageAccountName: overschrijving voor storageAccountName van assetConversionSettings
- BlobInputContainerName: overschrijving voor blobInputContainer van assetConversionSettings
- LocalAssetDirectoryPath: overschrijving voor localAssetDirectoryPath van assetConversionSettings
- InputAssetPath: overschrijving voor inputAssetPath van assetConversionSettings
- BlobOutputContainerName: overschrijving voor blobOutputContainerName van assetConversionSettings
- OutputFolderPath: overschrijving voor outputFolderPath van assetConversionSettings
- OutputAssetFileName: overschrijving voor outputAssetFileName van assetConversionSettings
U kunt bijvoorbeeld de opgegeven opties als volgt combineren:
.\Conversion.ps1 -LocalAssetDirectoryPath "C:\\models\\box" -InputAssetPath box.fbx -OutputFolderPath another/converted/box -OutputAssetFileName newConversionBox.arrAsset
Als u afzonderlijke stappen van het proces wilt uitvoeren, kunt u het volgende gebruiken:
Alleen gegevens uit het opgegeven LocalAssetDirectoryPath uploaden.
.\Conversion.ps1 -Upload
Start alleen het conversieproces van een model dat al is geüpload naar blobopslag (voer Uploaden niet uit, controleer de conversiestatus niet). Het script retourneert een conversionId.
.\Conversion.ps1 -ConvertAsset
En u kunt de conversiestatus van deze conversie ophalen met:
.\Conversion.ps1 -GetConversionStatus -Id <conversionId> [-Poll]
Gebruik -Poll
om te wachten tot de conversie gereed is of er een fout is opgetreden.