Creare elementi personalizzati per la macchina virtuale di DevTest LabsCreate custom artifacts for your DevTest Labs virtual machine

Guardare il video seguente per una panoramica dei passaggi descritti in questo articolo:Watch the following video for an overview of the steps described in this article:

PanoramicaOverview

È possibile usare gli elementi per distribuire e configurare l'applicazione dopo il provisioning di una macchina virtuale.You can use artifacts to deploy and set up your application after you provision a VM. Un elemento è costituito da un file di definizione dell'elemento e da altri file di script archiviati in una cartella in un repository Git.An artifact consists of an artifact definition file and other script files that are stored in a folder in a Git repository. I file di definizione dell’elemento sono costituiti da JSON ed espressioni che è possibile utilizzare per specificare gli elementi da installare in una macchina virtuale.Artifact definition files consist of JSON and expressions that you can use to specify what you want to install on a VM. È ad esempio possibile definire il nome di un elemento, il comando da eseguire e i parametri disponibili quando si esegue il comando.For example, you can define the name of an artifact, a command to run, and parameters that are available when the command is run. È possibile fare riferimento ad altri file di script all'interno del file di definizione dell'elemento in base al nome.You can refer to other script files within the artifact definition file by name.

Formato del file di definizione dell’elementoArtifact definition file format

L'esempio seguente illustra le sezioni che compongono la struttura di base di un file di definizione:The following example shows the sections that make up the basic structure of a definition file:

{
  "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json",
  "title": "",
  "description": "",
  "iconUri": "",
  "targetOsType": "",
  "parameters": {
    "<parameterName>": {
      "type": "",
      "displayName": "",
      "description": ""
    }
  },
  "runCommand": {
    "commandToExecute": ""
  }
}
Nome dell'elementoElement name Obbligatorio?Required? DescrizioneDescription
$schema$schema NoNo Posizione del file di schema JSON.Location of the JSON schema file. Il file di schema JSON aiuta a testare la validità del file di definizione.The JSON schema file can help you test the validity of the definition file.
titletitle Yes Nome dell'elemento visualizzato nel lab.Name of the artifact displayed in the lab.
Descrizionedescription Yes Descrizione dell'elemento visualizzato nel lab.Description of the artifact displayed in the lab.
iconUriiconUri NoNo URI dell'icona visualizzata nel lab.URI of the icon displayed in the lab.
targetOsTypetargetOsType Yes Sistema operativo della macchina virtuale in cui è installato l'elemento.Operating system of the VM where the artifact is installed. Le opzioni supportate sono Windows e Linux.Supported options are Windows and Linux.
parametersparameters NoNo Valori forniti quando viene eseguito il comando di installazione dell'elemento in un computer.Values that are provided when the artifact install command is run on a machine. Questi valori consentono di personalizzare l'elemento.This helps you customize your artifact.
runCommandrunCommand Yes Il comando di installazione dell’elemento che viene eseguito in una macchina virtuale.Artifact install command that is executed on a VM.

Parametri dell'elementoArtifact parameters

Nella sezione dei parametri del file di definizione è possibile specificare i valori che un utente può immettere quando installa un elemento.In the parameters section of the definition file, specify which values a user can input when they install an artifact. È possibile fare riferimento a questi valori nel comando di installazione dell'elemento.You can refer to these values in the artifact install command.

Per definire i parametri, usare la struttura seguente:To define parameters, use the following structure:

"parameters": {
    "<parameterName>": {
      "type": "<type-of-parameter-value>",
      "displayName": "<display-name-of-parameter>",
      "description": "<description-of-parameter>"
    }
  }
Nome dell'elementoElement name Obbligatorio?Required? DescrizioneDescription
typetype Yes Tipo di valore del parametro.Type of parameter value. Vedere l'elenco seguente per informazioni sui tipi consentiti.See the following list for the allowed types.
displayNamedisplayName Yes Nome del parametro che viene visualizzato a un utente nel lab.Name of the parameter that is displayed to a user in the lab.
Descrizionedescription Yes Descrizione del parametro che viene visualizzato nel lab.Description of the parameter that is displayed in the lab.

I tipi consentiti sono:Allowed types are:

  • string (tutte le stringhe JSON valide)string (any valid JSON string)
  • int (tutti i valori integer JSON validi)int (any valid JSON integer)
  • bool (tutti i valori booleani JSON validi)bool (any valid JSON Boolean)
  • array (tutte le matrici JSON valide)array (any valid JSON array)

Espressioni e funzioni dell’elementoArtifact expressions and functions

È possibile usare espressioni e funzioni per costruire il comando di installazione dell'elemento.You can use expressions and functions to construct the artifact install command. Le espressioni sono racchiuse tra parentesi quadre ([ e ]) e vengono valutate al momento dell’installazione dell’elemento.Expressions are enclosed with brackets ([ and ]), and are evaluated when the artifact is installed. Le espressioni possono trovarsi in qualsiasi punto in un valore stringa JSON.Expressions can appear anywhere in a JSON string value. Le espressioni restituiscono sempre un altro valore JSON.Expressions always return another JSON value. Se è necessario usare una stringa letterale che inizia con una parentesi quadra ([), usare due parentesi quadre ([[).If you need to use a literal string that starts with a bracket ([), you must use two brackets ([[). In genere, si usano espressioni con funzioni per costruire un valore.Typically, you use expressions with functions to construct a value. Proprio come in JavaScript, le chiamate di funzione sono formattate come functionName(arg1,arg2,arg3).Just like in JavaScript, function calls are formatted as functionName(arg1,arg2,arg3).

L'elenco seguente riporta le funzioni comuni:The following list shows common functions:

  • parameters(parameterName): restituisce un valore di parametro fornito quando viene eseguito il comando dell'elemento.parameters(parameterName): Returns a parameter value that is provided when the artifact command is run.
  • concat(arg1,arg2,arg3, …..): combina più valori stringa.concat(arg1,arg2,arg3, …..): Combines multiple string values. Questa funzione può accettare diversi argomenti.This function can take a variety of arguments.

L'esempio seguente mostra come usare espressioni e funzioni per costruire un valore:The following example shows how to use expressions and functions to construct a value:

runCommand": {
     "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./startChocolatey.ps1'
, ' -RawPackagesList ', parameters('packages')
, ' -Username ', parameters('installUsername')
, ' -Password ', parameters('installPassword'))]"
}

Creare un elemento personalizzatoCreate a custom artifact

  1. Installare un editor JSON.Install a JSON editor. È necessario un editor JSON per lavorare con i file di definizione dell'elemento.You need a JSON editor to work with artifact definition files. È consigliabile usare Visual Studio Code disponibile per Windows, Linux e OS X.We recommend using Visual Studio Code, which is available for Windows, Linux, and OS X.
  2. Ottenere un file di definizione artifactfile.json di esempio.Get a sample artifactfile.json definition file. Esaminare gli elementi creati dal team di DevTest Labs nel repository GitHub.Check out the artifacts created by the DevTest Labs team in our GitHub repository. È stata creata una libreria completa di elementi utili per creare i propri elementi.We have created a rich library of artifacts that can help you create your own artifacts. Scaricare un file di definizione dell’elemento e apportare modifiche al codice per creare i propri elementi.Download an artifact definition file and make changes to it to create your own artifacts.
  3. Usare IntelliSense.Make use of IntelliSense. Usare IntelliSense per vedere gli elementi validi che è possibile usare per costruire un file di definizione dell'elemento.Use IntelliSense to see valid elements that you can use to construct an artifact definition file. È anche possibile vedere le diverse opzioni per i valori di un elemento.You also can see the different options for values of an element. Quando, ad esempio, si modifica l'elemento targetOsType, IntelliSense mostra due opzioni, per Windows o Linux.For example, when you edit the targetOsType element, IntelliSense shows you two choices, for Windows or Linux.
  4. Archiviare l'elemento in un repository Git.Store the artifact in a Git repository.

    1. Creare una directory distinta per ogni elemento.Create a separate directory for each artifact. Il nome della directory deve corrispondere a quello dell'elemento.The directory name should be the same as the artifact name.
    2. Archiviare il file di definizione dell'elemento (artifactfile.json) nella directory creata.Store the artifact definition file (artifactfile.json) in the directory that you created.
    3. Archiviare gli script a cui viene fatto riferimento tramite il comando di installazione dell'elemento.Store the scripts that are referenced from the artifact install command.

      Di seguito è riportato un esempio di come potrebbe apparire una cartella di elementi:Here is an example of how an artifact folder might look:

      Esempio di cartella di elementi

  5. Aggiungere il repository di elementi al lab.Add the artifacts repository to the lab. Vedere Aggiungere un repository Git per elementi e modelli.See Add a Git repository for artifacts and templates.

Introduzione ad Azure DevTest LabsGet started with Azure DevTest Labs

Non si è ancora provato Azure?New to Azure? Creare un account Azure gratuito.Create a free Azure account.

Si usa già Azure?Already on Azure? È possibile iniziare a usare il primo laboratorio in DevTest Labs.Get started with your first lab in DevTest Labs!

Iniziare a usare Azure DevTest Labs in pochi minutiGet started with Azure DevTest Labs in minutes

Passaggi successiviNext steps