Creazione di una soluzione di gestione in Operations Management Suite (OMS) (anteprima)Creating a management solution file in Operations Management Suite (OMS) (Preview)

Nota

Questa è una documentazione preliminare per la creazione di soluzioni di gestione in OMS attualmente disponibili in versione di anteprima.This is preliminary documentation for creating management solutions in OMS which are currently in preview. Qualsiasi schema descritto di seguito è soggetto a modifiche.Any schema described below is subject to change.

Le soluzioni di gestione in Operations Management Suite (OMS) vengono implementate come modelli di Resource Manager.Management solutions in Operations Management Suite (OMS) are implemented as Resource Manager templates. L'attività principale della creazione di soluzioni di gestione consiste nel creare un modello.The main task in learning how to author management solutions is learning how to author a template. Questo articolo fornisce informazioni dettagliate sui modelli usati per le soluzioni e illustra come configurare le risorse tipiche di una soluzione.This article provides unique details of templates used for solutions and how to configure typical solution resources.

StrumentiTools

È possibile usare qualsiasi editor di testo per interagire con i file della soluzione, ma si consiglia di avvalersi delle funzionalità disponibili in Visual Studio o Visual Studio Code, come descritto negli articoli seguenti.You can use any text editor to work with solution files, but we recommend leveraging the features provided in Visual Studio or Visual Studio Code as described in the following articles.

StructureStructure

La struttura di base di un file di una soluzione di gestione corrisponde a quella di un modello di Resource Manager, come descritto di seguito.The basic structure of a management solution file is the same as a Resource Manager Template which is as follows. Ognuna delle sezioni seguenti descrive gli elementi principali di una soluzione e i relativi contenuti.Each of the sections below describes the top level elements and and their contents in a solution.

{
   "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0",
   "parameters": {  },
   "variables": {  },
   "resources": [  ],
   "outputs": {  }
}

ParametriParameters

I parametri sono valori richiesti all'utente al momento dell'installazione della soluzione di gestione.Parameters are values that you require from the user when they install the management solution. Ci sono parametri standard comuni a tutte le soluzioni ed è possibile aggiungere altri parametri in base a quanto necessario per la soluzione specifica.There are standard parameters that all solutions will have, and you can add additional parameters as required for your particular solution. Il modo in cui gli utenti forniranno i valori dei parametri quando installano la soluzione dipende dal parametro specifico e dalla modalità di installazione della soluzione.How users will provide parameter values when they install your solution will depend on the particular parameter and how the solution is being installed.

Quando un utente installa la soluzione di gestione tramite Azure Marketplace o i modelli di avvio rapido di Azure, viene chiesto di selezionare un'area di lavoro OMS e un account di Automazione.When a user installs your management solution through the Azure Marketplace or Azure QuickStart templates they are prompted to select an OMS workspace and Automation account. Questi elementi vengono usati per popolare i valori di ognuno dei parametri standard.These are used to populate the values of each of the standard parameters. All'utente non viene chiesto di fornire direttamente i valori per i parametri standard, ma viene chiesto di fornire i valori per eventuali parametri aggiuntivi.The user is not prompted to directly provide values for the standard parameters, but they are prompted to provide values for any additional parameters.

Quando l'utente installa la soluzione con un altro metodo, deve specificare un valore per tutti i parametri standard e tutti i parametri aggiuntivi.When the user installs your solution another method, they must provide a value for all standard parameters and all additional parameters.

Di seguito è illustrato un parametro di esempio.A sample parameter is shown below.

"startTime": {
    "type": "string",
    "metadata": {
        "description": "Enter time for starting VMs by resource group.",
        "control": "datetime",
        "category": "Schedule"
    }

La tabella seguente descrive gli attributi di un parametro.The following table describes the attributes of a parameter.

AttributoAttribute DescrizioneDescription
typetype Tipo di dati per il parametro.Data type for the parameter. Il controllo di input visualizzato per l'utente dipende dal tipo di dati.The input control displayed for the user depends on the data type.

bool - Casella di riepilogo a discesabool - Drop down box
string - Casella di testostring - Text box
int - Casella di testoint - Text box
securestring - Campo della passwordsecurestring - Password field
categorycategory Categoria facoltativa per il parametro.Optional category for the parameter. I parametri della stessa categoria vengono raggruppati insieme.Parameters in the same category are grouped together.
controlcontrol Funzionalità aggiuntiva per i parametri di stringa.Additional functionality for string parameters.

datetime - Viene visualizzato un controllo Datetime.datetime - Datetime control is displayed.
guid - Il valore Guid viene generato automaticamente e il parametro non viene visualizzato.guid - Guid value is automatically generated, and the parameter is not displayed.
descriptiondescription Descrizione facoltativa del parametro.Optional description for the parameter. Viene visualizzata in un fumetto di informazioni accanto al parametro.Displayed in an information balloon next to the parameter.

Parametri standardStandard parameters

La tabella seguente elenca i parametri standard per tutte le soluzioni di gestione.The following table lists the standard parameters for all management solutions. Quando la soluzione viene installata da Azure Marketplace o dai modelli di avvio rapido, questi valori vengono popolati automaticamente per l'utente senza che venga chiesto di immetterli.These values are populated for the user instead of prompting for them when your solution is installed from the Azure Marketplace or Quickstart templates. L'utente deve fornire i valori se la soluzione viene installata con un altro metodo.The user must provide values for them if the solution is installed with another method.

Nota

L'interfaccia utente in Azure Marketplace e nei modelli di avvio rapido prevede i nomi di parametro indicati nella tabella.The user interface in the Azure Marketplace and Quickstart templates is expecting the parameter names in the table. Se si usano nomi di parametro diversi, all'utente verrà chiesto di specificarli e non verranno popolati automaticamente.If you use different parameter names then the user will be prompted for them, and they will not be automatically populated.

ParametroParameter TipoType DescrizioneDescription
accountNameaccountName stringstring Nome dell'account di Automazione di Azure.Azure Automation account name.
pricingTierpricingTier stringstring Piano tariffario dell'area di lavoro di Log Analytics e dell'account di Automazione di Azure.Pricing tier of both Log Analytics workspace and Azure Automation account.
regionIdregionId stringstring Area dell'account di Automazione di Azure.Region of the Azure Automation account.
solutionNamesolutionName stringstring Nome della soluzione.Name of the solution. Se si distribuisce la soluzione tramite modelli di avvio rapido, è necessario definire solutionName come un parametro, in modo da poter definire una stringa anziché richiedere all'utente di specificarne una.If you are deploying your solution through Quickstart templates, then you should define solutionName as a parameter so you can define a string instead requiring the user to specify one.
workspaceNameworkspaceName stringstring Nome dell'area di lavoro di Log Analytics.Log Analytics workspace name.
workspaceRegionIdworkspaceRegionId stringstring Area dell'area di lavoro di Log Analytics.Region of the Log Analytics workspace.

Di seguito viene mostrata la struttura dei parametri standard, che è possibile copiare e incollare nel file della soluzione.Following is the structure of the standard parameters that you can copy and paste into your solution file.

"parameters": {
    "workspaceName": {
        "type": "string",
        "metadata": {
            "description": "A valid Log Analytics workspace name"
        }
    },
    "accountName": {
           "type": "string",
           "metadata": {
               "description": "A valid Azure Automation account name"
           }
    },
    "workspaceRegionId": {
           "type": "string",
           "metadata": {
               "description": "Region of the Log Analytics workspace"
        }
    },
    "regionId": {
        "type": "string",
        "metadata": {
            "description": "Region of the Azure Automation account"
        }
    },
    "pricingTier": {
        "type": "string",
        "metadata": {
            "description": "Pricing tier of both Log Analytics workspace and Azure Automation account"
        }
    }
}

Per fare riferimento ai valori di parametro negli altri elementi della soluzione si usa la sintassi parameters('nome parametro').You refer to parameter values in other elements of the solution with the syntax parameters('parameter name'). Per accedere, ad esempio, al nome dell'area di lavoro, usare parameters('workspaceName')For example, to access the workspace name, you would use parameters('workspaceName')

VariabiliVariables

Le variabili sono valori che verranno usati nella parte rimanente della soluzione di gestione.Variables are values that you will use in the rest of the management solution. Questi valori non sono esposti all'utente che esegue l'installazione della soluzione.These values are not exposed to the user installing the solution. La loro funzione è quella di offrire all'autore un'unica posizione in cui gestire i valori che possono essere usati più volte all'interno della soluzione.They are intended to provide the author with a single location where they can manage values that may be used multiple times throughout the solution. È consigliabile inserire eventuali valori specifici della soluzione in variabili anziché impostarli come hardcoded nell'elemento resources.You should put any values specific to your solution in variables as opposed to hard coding them in the resources element. In questo modo, il codice risulta più leggibile ed è possibile modificare facilmente questi valori nelle versioni successive.This makes the code more readable and allows you to easily change these values in later versions.

Di seguito è riportato un esempio di elemento variables con i parametri tipici usati nelle soluzioni.Following is an example of a variables element with typical parameters used in solutions.

"variables": {
    "SolutionVersion": "1.1",
    "SolutionPublisher": "Contoso",
    "SolutionName": "My Solution",
    "LogAnalyticsApiVersion": "2015-11-01-preview",
    "AutomationApiVersion": "2015-10-31"
},

Per fare riferimento ai valori di variabile all'interno della soluzione si usa la sintassi variables('nome variabile').You refer to variable values through the solution with the syntax variables('variable name'). Per accedere, ad esempio, alla variabile SolutionName, usare variables('SolutionName').For example, to access the SolutionName variable, you would use variables('SolutionName').

È possibile anche definire variabili complesse che moltiplicano set di valori;You can also define complex variables that multiple sets of values. risultano particolarmente utili nelle soluzioni di gestione in cui si definiscono più proprietà per diversi tipi di risorse.These are particularly useful in management solutions where you are defining multiple properties for different types of resources. È possibile, ad esempio, ristrutturare come indicato di seguito le variabili di soluzione illustrate in precedenza.For example, you could restructure the solution variables shown above to the following.

"variables": {
    "Solution": {
      "Version": "1.1",
      "Publisher": "Contoso",
      "Name": "My Solution"
    },
    "LogAnalyticsApiVersion": "2015-11-01-preview",
    "AutomationApiVersion": "2015-10-31"
},

In questo caso, per fare riferimento ai valori di variabile all'interno della soluzione è possibile usare la sintassi variables('nome variabile').proprietà.In this case, you refer to variable values through the solution with the syntax variables('variable name').property. Per accedere, ad esempio, alla variabile SolutionName, è necessario usare variables('Solution').Name.For example, to access the Solution Name variable, you would use variables('Solution').Name.

RisorseResources

Le risorse definiscono i vari tipi di risorse che la soluzione di gestione installerà e configurerà.Resources define the different resources that your management solution will install and configure. Si tratta della parte più estesa e complessa del modello.This will be the largest and most complex portion of the template. È possibile ottenere informazioni sulla struttura e una descrizione completa degli elementi di risorsa in Creazione di modelli di Azure Resource Manager.You can get the structure and complete description of resource elements in Authoring Azure Resource Manager templates. In altri articoli di questa documentazione sono descritti i tipi di risorse definiti più comunemente.Different resources that you will typically define are detailed in other articles in this documentation.

DipendenzeDependencies

L'elemento dependsOn specifica una dipendenza da un'altra risorsa.The dependsOn elements specifies a dependency on another resource. Quando si installa la soluzione, una risorsa viene creata solo dopo che sono state create tutte le relative dipendenze.When the solution is installed, a resource is not created until all of its dependencies have been created. La soluzione potrebbe ad esempio avviare un runbook quando viene installata usando una risorsa processo.For example, your solution might start a runbook when it's installed using a job resource. La risorsa processo dipenderà dalla risorsa runbook, per assicurarsi che il runbook venga creato prima del processo.The job resource would be dependent on the runbook resource to make sure that the runbook is created before the job is created.

Area di lavoro OMS e account di AutomazioneOMS workspace and Automation account

Le soluzioni di gestione richiedono un'area di lavoro OMS per contenere le viste e un account di Automazione per contenere i runbook e le risorse correlate.Management solutions require an OMS workspace to contain views and an Automation account to contain runbooks and related resources. Questi elementi devono essere disponibili prima della creazione delle risorse nella soluzione e non devono essere definiti nella soluzione stessa.These must be available before the resources in the solution are created and should not be defined in the solution itself. L'utente specificherà un'area di lavoro e un account quando distribuisce la soluzione, ma l'autore della soluzione deve tenere presente quanto segue.The user will specify a workspace and account when they deploy your solution, but as the author you should consider the following points.

Risorse della soluzioneSolution resource

Per ogni soluzione è necessario specificare una risorsa nell'elemento resources che definisce la soluzione stessa.Each solution requires a resource entry in the resources element that defines the solution itself. La risorsa sarà di tipo Microsoft.OperationsManagement/solutions e avrà la struttura seguente.This will have a type of Microsoft.OperationsManagement/solutions and have the following structure. Sono inclusi i parametri standard e le variabili generalmente usati per definire le proprietà della soluzione.This includes standard parameters and variables that are typically used to define properties of the solution.

{
  "name": "[concat(variables('Solution').Name, '[' ,parameters('workspacename'), ']')]",
  "location": "[parameters('workspaceRegionId')]",
  "tags": { },
  "type": "Microsoft.OperationsManagement/solutions",
  "apiVersion": "[variables('LogAnalyticsApiVersion')]",
  "dependsOn": [
    <list-of-resources>
  ],
  "properties": {
    "workspaceResourceId": "[resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspacename'))]",
    "referencedResources": [
        <list-of-referenced-resources>
    ],
    "containedResources": [
        <list-of-contained-resources>
    ]
  },
  "plan": {
    "name": "[concat(variables('Solution').Name, '[' ,parameters('workspaceName'), ']')]",
    "Version": "[variables('Solution').Version]",
    "product": "[variables('ProductName')]",
    "publisher": "[variables('Solution').Publisher]",
    "promotionCode": ""
  }
}

DipendenzeDependencies

La risorsa soluzione deve avere una dipendenza da ogni altra risorsa nella soluzione, perché ogni risorsa deve esistere affinché la soluzione possa essere creata.The solution resource must have a dependency on every other resource in the solution since they need to exist before the solution can be created. A tale scopo, aggiungere una voce per ogni risorsa nell'elemento dependsOn.You do this by adding an entry for each resource in the dependsOn element.

ProprietàProperties

La risorsa della soluzione ha le proprietà descritte nella tabella seguente.The solution resource has the properties in the following table. Sono incluse le risorse cui viene fatto riferimento dalla soluzione e incluse nella soluzione che definisce come viene gestita la risorsa dopo l'installazione della soluzione.This includes the resources referenced and contained by the solution which defines how the resource is managed after the solution is installed. Ogni risorsa nella soluzione deve essere presente nella proprietà referencedResources o containedResources.Each resource in the solution should be listed in either the referencedResources or the containedResources property.

ProprietàProperty DescriptionDescription
workspaceResourceIdworkspaceResourceId ID dell'area di lavoro Log Analytics nel formato /providers/Microsoft.OperationalInsights/workspaces/<Nome area di lavoro>.ID of the Log Analytics workspace in the form /providers/Microsoft.OperationalInsights/workspaces/<Workspace Name>.
referencedResourcesreferencedResources Elenco delle risorse nella soluzione che non devono essere rimosse quando la soluzione viene rimossa.List of resources in the solution that should not be removed when the solution is removed.
containedResourcescontainedResources Elenco delle risorse nella soluzione che devono essere rimosse quando la soluzione viene rimossa.List of resources in the solution that should be removed when the solution is removed.

L'esempio precedente si riferisce a una soluzione con un runbook, una pianificazione e una vista.The example above is for a solution with a runbook, a schedule, and view. Poiché sono presenti riferimenti ad essi nell'elemento properties, la pianificazione e il runbook non vengono rimossi quando la soluzione viene rimossa.The schedule and runbook are referenced in the properties element so they are not removed when the solution is removed. La vista che è invece contenuta viene rimossa quando la soluzione viene rimossa.The view is contained so it is removed when the solution is removed.

PianificazionePlan

L'entità plan della risorsa soluzione ha le proprietà descritte nella tabella seguente.The plan entity of the solution resource has the properties in the following table.

ProprietàProperty DescrizioneDescription
namename Nome della soluzione.Name of the solution.
versionversion Versione della soluzione determinata dall'autore.Version of the solution as determined by the author.
productproduct Stringa univoca che identifica la soluzione.Unique string to identify the solution.
publisherpublisher Autore della soluzione.Publisher of the solution.

EsempioSample

Esempi di file di soluzioni con una risorsa "soluzione" sono disponibili negli articoli seguenti.You can view samples of solution files with a solution resource at the following locations.

Passaggi successiviNext steps