Uso degli script di Windows PowerShell per la pubblicazione in ambienti di sviluppo e testUsing Windows PowerShell scripts to publish to dev and test environments

Quando si crea un'applicazione web in Visual Studio, è possibile generare uno script Windows PowerShell che può essere utilizzato in un secondo momento per automatizzare la pubblicazione del sito Web in Azure come un'applicazione Web nel servizio App Azure o una macchina virtuale.When you create a web application in Visual Studio, you can generate a Windows PowerShell script that you can use later to automate the publishing of your website to Azure as a Web App in Azure App Service or a virtual machine. È possibile modificare ed estendere lo script di Windows PowerShell nell'editor di Visual Studio in base alle proprie esigenze o integrare lo script di compilazione esistente, il test e la pubblicazione di script.You can edit and extend the Windows PowerShell script in the Visual Studio editor to suit your requirements, or integrate the script with existing build, test, and publishing scripts.

Utilizzando questi script, è possibile eseguire il provisioning (noto anche come ambienti di sviluppo e test) di versioni personalizzate del sito per un utilizzo temporaneo.Using these scripts, you can provision customized versions (also known as dev and test environments) of your site for temporary use. Ad esempio, si potrebbe impostare una particolare versione del sito Web in una macchina virtuale di Azure o in una slot di gestione temporanea in un sito Web per eseguire un gruppo di test, riprodurre un bug, testare una correzione di bug, una versione di valutazione di una modifica proposta o configurare un ambiente personalizzato per una dimostrazione o una presentazione.For example, you might set up a particular version of your website on an Azure virtual machine or on the staging slot on a website to run a test suite, reproduce a bug, test a bug fix, trial a proposed change, or set up a custom environment for a demo or presentation. Dopo aver creato uno script che pubblica il progetto, è possibile ricreare ambienti identici eseguendo nuovamente lo script in base alle esigenze o eseguire lo script con la build dell'applicazione Web per creare un ambiente di test personalizzato.After you've created a script that publishes your project, you can recreate identical environments by rerunning the script as needed, or run the script with your own build of your web application to create a custom environment for testing.

PrerequisitiPrerequisites

Strumenti aggiuntiviAdditional tools

Sono disponibili altri strumenti e risorse per l'utilizzo di PowerShell in Visual Studio per lo sviluppo in Azure.Additional tools and resources for working with PowerShell in Visual Studio for Azure development are available. Vedere PowerShell Tools per Visual Studio.See PowerShell Tools for Visual Studio.

Come generare script di pubblicazioneGenerating the publish scripts

È possibile generare gli script di pubblicazione per una macchina virtuale che ospita il sito Web quando si crea un nuovo progetto seguendo queste istruzioni.You can generate the publish scripts for a virtual machine that hosts your website when you create a new project by following these instructions. È possibile anche generare script di pubblicazione per le app Web del Servizio app di Azure.You can also generate publish scripts for web apps in Azure App Service.

Script generati da Visual StudioScripts that Visual Studio generates

Visual Studio genera una cartella a livello di soluzione denominata PublishScripts che contiene due file di Windows PowerShell, uno script di pubblicazione per la macchina virtuale o sito Web e un modulo che contiene funzioni che è possibile utilizzare negli script.Visual Studio generates a solution-level folder called PublishScripts that contains two Windows PowerShell files, a publish script for your virtual machine or website, and a module that contains functions that you can use in the scripts. Visual Studio genera inoltre un file in formato JSON che specifica i dettagli del progetto in distribuzione.Visual Studio also generates a file in the JSON format that specifies the details of the project you are deploying.

Pubblicazione di script da parte di Windows PowerShellWindows PowerShell publish script

Lo script di pubblicazione contiene specifici passaggi di pubblicazione per la distribuzione in una macchina virtuale o in un sito Web.The publish script contains specific publish steps for deploying to a website or virtual machine. Visual Studio fornisce la colorazione della sintassi per lo sviluppo di Windows PowerShell .Visual Studio provides syntax coloring for Windows PowerShell development. La Guida per le funzioni è disponibile, ed è possibile modificare liberamente le funzioni nello script per adattarle ai propri requisiti.Help for the functions is available, and you can freely edit the functions in the script to suit your changing requirements.

Modulo di Windows PowerShellWindows PowerShell module

Il modulo Windows PowerShell generato da Visual Studio contiene funzioni che utilizzano lo script di pubblicazione.The Windows PowerShell module that Visual Studio generates contains functions that the publish script uses. Queste funzioni di Azure PowerShell non possono essere modificate.These Azure PowerShell functions are not intended to be modified. Vedere Come installare e configurare Azure PowerShell.See How to install and configure Azure PowerShell.

File di configurazione JSON.JSON configuration file

Il file JSON viene creato nella cartella Configurazioni e contiene dati di configurazione che consentono di specificare esattamente quali risorse distribuire in Azure.The JSON file is created in the Configurations folder and contains configuration data that specifies exactly which resources to deploy to Azure. Il nome del file generato da Visual Studio è project-name-WAWS-dev. json se è stato creato un sito Web, o project name-VM-dev.json se è stata creata una macchina virtuale.The name of the file that Visual Studio generates is project-name-WAWS-dev.json if you created a website, or project name-VM-dev.json if you created a virtual machine. Di seguito è riportato un esempio di un file di configurazione JSON generato quando si crea un sito Web.Here's an example of a JSON configuration file that's generated when you create a website. La maggior parte dei valori è facilmente comprensibile.Most of the values are self-explanatory. Il nome del sito Web viene generato da Azure, pertanto potrebbe non corrispondere al nome del progetto.The website name is generated by Azure, so it might not match your project name.

{
    "environmentSettings": {
        "webSite": {
            "name": "WebApplication26632",
            "location": "West US"
        },
        "databases": [{
            "connectionStringName": "DefaultConnection",
            "databaseName": "WebApplication26632_db",
            "serverName": "YourDatabaseServerName",
            "user": "sqluser2",
            "password": "",
            "edition": "",
            "size": "",
            "collation": "",
            "location": "West US"
        }]
    }
}

Quando si crea una macchina virtuale, il file di configurazione JSON è simile al seguente.When you create a virtual machine, the JSON configuration file looks similar to the following. Viene creato un servizio cloud come contenitore per la macchina virtuale.A cloud service is created as a container for the virtual machine. La macchina virtuale contiene i consueti endpoint per l'accesso web tramite HTTP e HTTPS, come pure gli endpoint per distribuzione Web, che consente di pubblicare nel sito Web dal computer locale, Desktop remoto e Windows PowerShell.The virtual machine contains the usual endpoints for web access through HTTP and HTTPS, as well as endpoints for Web Deploy, which lets you publish to the website from your local machine, Remote Desktop, and Windows PowerShell.

{
    "environmentSettings": {
        "cloudService": {
            "name": "myusernamevm1",
            "affinityGroup": "",
            "location": "West US",
            "virtualNetwork": "",
            "subnet": "",
            "availabilitySet": "",
            "virtualMachine": {
                "name": "myusernamevm1",
                "vhdImage": "a699494373c04fc0bc8f2bb1389d6106__Win2K8R2SP1-Datacenter-201403.01-en.us-127GB.vhd",
                "size": "Small",
                "user": "vmuser1",
                "password": "",
                "enableWebDeployExtension": true,
                "endpoints": [{
                        "name": "Http",
                        "protocol": "TCP",
                        "publicPort": "80",
                        "privatePort": "80"
                    },
                    {
                        "name": "Https",
                        "protocol": "TCP",
                        "publicPort": "443",
                        "privatePort": "443"
                    },
                    {
                        "name": "WebDeploy",
                        "protocol": "TCP",
                        "publicPort": "8172",
                        "privatePort": "8172"
                    },
                    {
                        "name": "Remote Desktop",
                        "protocol": "TCP",
                        "publicPort": "3389",
                        "privatePort": "3389"
                    },
                    {
                        "name": "Powershell",
                        "protocol": "TCP",
                        "publicPort": "5986",
                        "privatePort": "5986"
                    }
                ]
            }
        },
        "databases": [{
            "connectionStringName": "",
            "databaseName": "",
            "serverName": "",
            "user": "",
            "password": ""
        }],
        "webDeployParameters": {
            "iisWebApplicationName": "Default Web Site"
        }
    }
}

È possibile modificare la configurazione JSON per modificare l'operazione eseguita quando si eseguono gli script di pubblicazione.You can edit the JSON configuration to change what happens when you run the publish scripts. Le sezioni cloudService e virtualMachine sono necessarie, ma è possibile eliminare la sezione databases se non è necessario.The cloudService and virtualMachine sections are required, but you can delete the databases section if you don't need it. Le proprietà che sono vuote nel file di configurazione predefinito generato da Visual Studio sono facoltative, mentre quelle in cui sono presenti valori sono obbligatorie.The properties that are empty in the default configuration file that Visual Studio generates are optional; those properties that have values in the default configuration file are required.

Se si dispone di un sito Web che dispone di più ambienti di distribuzione (noti come slot) anziché di un unico sito di produzione in Azure, è possibile includere il nome dello slot nel nome del sito Web nel file di configurazione JSON.If you have a website that has multiple deployment environments (known as slots) instead of a single production site in Azure, you can include the slot name in the name of the website in the JSON configuration file. Ad esempio, se si ha un sito Web denominato mysite e uno slot denominato test, l'URI è mysite-test.cloudapp.net, ma il nome corretto da usare nel file di configurazione è mysite(test).For example, if you have a website that's named mysite and a slot for it named test then the URI is mysite-test.cloudapp.net, but the correct name to use in the configuration file is mysite(test). È possibile eseguire questo solo se il sito Web e gli slot sono già presenti nella sottoscrizione.You can only do this if the website and slots already exist in your subscription. Se non sono presenti, creare il sito Web eseguendo lo script senza specificare lo slot, quindi creare lo slot nel portale di Azure e successivamente eseguire lo script con il nome del sito Web modificato.If they don't exist, create the website by running the script without specifying the slot, then create the slot in the Azure portal, and thereafter run the script with the modified website name. Per altre informazioni sugli slot di distribuzione per le app Web, vedere Configurare ambienti di gestione temporanea per le app Web del Servizio app di Azure.For more information about deployment slots for web apps, see Set up staging environments for web apps in Azure App Service.

Come eseguire gli script di pubblicazioneHow to run the publish scripts

Se non è stato eseguito prima uno script Windows PowerShell, è innanzitutto necessario impostare i criteri di esecuzione per consentire l'esecuzione di script.If you have never run a Windows PowerShell script before, you must first set the execution policy to enable scripts to run. I criteri costituiscono una funzionalità di sicurezza volta a impedire agli utenti di eseguire script di Windows PowerShell se sono vulnerabili a malware o virus che comportano l'esecuzione di script.The policy is a security feature to prevent users from running Windows PowerShell scripts if they're vulnerable to malware or viruses that involve executing scripts.

Esecuzione dello scriptRun the script

  1. Creare il pacchetto di distribuzione Web per il progetto.Create the Web Deploy package for your project. Un pacchetto di distribuzione Web è un archivio compresso (con estensione zip) che contiene i file che si desidera copiare in una macchina virtuale o il sito Web.A Web Deploy package is a compressed archive (.zip file) that contain files that you want to copy to your website or virtual machine. È possibile creare pacchetti di distribuzione Web in Visual Studio per qualsiasi applicazione web.You can create Web Deploy packages in Visual Studio for any web application.

Creare pacchetto di distribuzione web

Per ulteriori informazioni, vedere Procedura: Creare un pacchetto di distribuzione Web in Visual Studio.For more information, see How to: Create a Web Deployment Package in Visual Studio. È anche possibile automatizzare la creazione del pacchetto di distribuzione Web, come descritto in [Personalizzazione ed estensione degli script di pubblicazione[(#customizing-and-extending-publish-scripts)]You can also automate the creation of your Web Deploy package, as described in [Customizing and extending the publish scripts[(#customizing-and-extending-publish-scripts)]

  1. In Esplora soluzioni aprire il menu di scelta rapida per lo script e quindi scegliere Apri con PowerShell ISE.In Solution Explorer, open the context menu for the script, and then choose Open with PowerShell ISE.
  2. Se gli script di Windows PowerShell vengono eseguiti su questo computer per la prima volta, aprire una finestra del prompt dei comandi con privilegi di amministratore e digitare il comando seguente:If running Windows PowerShell scripts on this computer for the first time, open a command prompt window with Administrator privileges and type the following command:

    Set-ExecutionPolicy RemoteSigned
    
  3. Accedere ad Azure usando il comando seguente.Sign in to Azure by using the following command.

    Add-AzureAccount
    

    Quando richiesto, fornire nome utente e password.When prompted, supply your username and password.

    Osservare come, quando si automatizza lo script, questo metodo di assegnazione delle credenziali di Azure non funzioni.Note that when you automate the script, this method of providing Azure credentials doesn't work. Per l'assegnazione delle credenziali usare invece il file .publishsettings.Instead, you should use the .publishsettings file to provide credentials. Una sola volta, si usa il comando Get-AzurePublishSettingsFile per scaricare il file da Azure e quindi Import-AzurePublishSettingsFile per importare il file.One time only, you use the command Get-AzurePublishSettingsFile to download the file from Azure, and thereafter use Import-AzurePublishSettingsFile to import the file. Per istruzioni dettagliate, vedere Come installare e configurare Azure PowerShell.For detailed instructions, see How to install and configure Azure PowerShell.

  4. (Facoltativo) Se si vuole creare risorse con Azure, ad esempio la macchina virtuale, il database e il sito Web senza pubblicare l'applicazione Web, usare il comando Publish-WebApplication.ps1 con l'argomento -Configuration impostato sul file di configurazione JSON.(Optional) If you want to create Azure resources such as the virtual machine, database, and website without publishing your web application, use the Publish-WebApplication.ps1 command with the -Configuration argument set to the JSON configuration file. Questa riga di comando utilizza il file di configurazione JSON per determinare le risorse da creare.This command line uses the JSON configuration file to determine which resources to create. Poiché utilizza le impostazioni predefinite per gli altri argomenti della riga di comando, crea le risorse, ma non pubblica l'applicazione web.Because it uses the default settings for other command-line arguments, it creates the resources, but doesn't publish your web application. L’opzione Verbose fornisce ulteriori informazioni sulle attività in corso.The –Verbose option gives you more information about what's happening.

    Publish-WebApplication.ps1 -Verbose –Configuration C:\Path\WebProject-WAWS-dev.json
    
  5. Utilizzare il comando Pubblica WebApplication.ps1 come indicato in uno dei seguenti esempi per richiamare lo script e pubblicare l'applicazione web.Use the Publish-WebApplication.ps1 command as shown in one of the following examples to invoke the script and publish your web application. Se è necessario eseguire l'override delle impostazioni predefinite per gli altri argomenti, ad esempio il nome della sottoscrizione, pubblicare il nome del pacchetto, le credenziali di macchina virtuale o le credenziali del server database, è possibile specificare tali parametri.If you need to override the default settings for any of the other arguments, such as the subscription name, publish package name, virtual machine credentials, or database server credentials, you can specify those parameters. Utilizzare l’opzione – Verbose per visualizzare ulteriori informazioni sullo stato di avanzamento del processo di pubblicazione.Use the –Verbose option to see more information about the progress of the publishing process.

    Publish-WebApplication.ps1 –Configuration C:\Path\WebProject-WAWS-dev-json `
    –SubscriptionName Contoso `
    -WebDeployPackage C:\Documents\Azure\ADWebApp.zip `
    -DatabaseServerPassword @{Name="dbServerName";Password="adminPassword"} `
    -Verbose
    

    Se si crea una macchina virtuale, il comando è simile al seguente.If you're creating a virtual machine, the command looks like the following. In questo esempio viene inoltre illustrato come specificare le credenziali per più database.This example also shows how to specify the credentials for multiple databases. Per le macchine virtuali create da questi script, il certificato SSL non è da un'autorità radice attendibile.For the virtual machines that these scripts create, the SSL certificate is not from a trusted root authority. Pertanto, è necessario utilizzare l’opzione -AllowUntrusted .Therefore, you need to use the –AllowUntrusted option.

    Publish-WebApplication.ps1 `
    -Configuration C:\Path\ADVM-VM-test.json `
    -SubscriptionName Contoso `
    -WebDeployPackage C:\Path\ADVM.zip `
    -AllowUntrusted `
    -VMPassword @{name = "vmUserName"; password = "YourPasswordHere"} `
    -DatabaseServerPassword @{Name="server1";Password="adminPassword1"}, @{Name="server2";Password="adminPassword2"} `
    -Verbose
    

    Lo script può creare database, ma non crea server di database.The script can create databases, but it doesn't create database servers. Se si desidera creare un server di database, è possibile utilizzare la funzione New-AzureSqlDatabaseServer nel modulo di Azure.If you want to create a database server, you can use the New-AzureSqlDatabaseServer function in the Azure module.

Personalizzazione ed estensione degli script di pubblicazioneCustomizing and extending the publish scripts

È possibile personalizzare lo script di pubblicazione e i file di configurazione JSON.You can customize the publish script and JSON configuration file. Le funzioni nel modulo Windows PowerShell AzureWebAppPublishModule.psm1 non possono essere modificati.The functions in the Windows PowerShell module AzureWebAppPublishModule.psm1 are not intended to be modified. Se si desidera specificare un database diverso o modificare alcune delle proprietà della macchina virtuale, modificare il file di configurazione JSON.If you just want to specify a different database or change some of the properties of the virtual machine, edit the JSON configuration file. Se si desidera estendere le funzionalità dello script per automatizzare la compilazione e il test del progetto, è possibile implementare stub di funzioni in Pubblica WebApplication.ps1.If you want to extend the functionality of the script to automate building and testing your project, you can implement function stubs in Publish-WebApplication.ps1.

Per automatizzare la compilazione del progetto, aggiungere il codice che chiama MSBuild New-WebDeployPackage come illustrato nell'esempio di codice.To automate building your project, add code that calls MSBuild to New-WebDeployPackage as shown in this code example. Il percorso del comando MSBuild è diverso a seconda della versione di Visual Studio installata.The path to the MSBuild command is different depending on the version of Visual Studio you have installed. Per ottenere il percorso corretto, è possibile utilizzare la funzione Get-msbuildcmd come, come illustrato nell'esempio seguente.To get the correct path, you can use the function Get-MSBuildCmd, as shown in this example.

Per automatizzare la compilazione del progettoTo automate building your project

  1. Aggiungere il parametro $ProjectFile nella sezione param globale.Add the $ProjectFile parameter in the global param section.

    [Parameter(Mandatory = $false)]
    [ValidateScript({Test-Path $_ -PathType Leaf})]
    [String]
    $ProjectFile,
    
  2. Copiare la funzione Get-MSBuildCmd nel file di script.Copy the function Get-MSBuildCmd into your script file.

    function Get-MSBuildCmd
    {
            process
    {
    
                $path =  Get-ChildItem "HKLM:\SOFTWARE\Microsoft\MSBuild\ToolsVersions\" |
                                    Sort-Object {[double]$_.PSChildName} -Descending |
                                    Select-Object -First 1 |
                                    Get-ItemProperty -Name MSBuildToolsPath |
                                    Select -ExpandProperty MSBuildToolsPath
    
                $path = (Join-Path -Path $path -ChildPath 'msbuild.exe')
    
            return Get-Item $path
        }
    }
    
  3. Sostituire New-WebDeployPackage con il seguente codice e sostituire i segnaposto per la costruzione di riga $msbuildCmd.Replace New-WebDeployPackage with the following code and replace the placeholders in the line constructing $msbuildCmd. Questo codice è per Visual Studio 2017.This code is for Visual Studio 2017. Se si usa Visual Studio 2015, modificare la proprietà VisualStudioVersion su 14.0 (12.0 per Visual Studio 2013).If you're using Visual Studio 2015, change the VisualStudioVersion property to 14.0 (12.0 for Visual Studio 2013).

    function New-WebDeployPackage
    {
        #Write a function to build and package your web application
    

    Per compilare l'applicazione Web, usare MsBuild.exe.To build your web application, use MsBuild.exe. Per informazioni, vedere il riferimento della riga di comando di MSBuild all'indirizzo: http://go.microsoft.com/fwlink/?LinkId=391339For help, see MSBuild Command-Line Reference at: http://go.microsoft.com/fwlink/?LinkId=391339

    Write-VerboseWithTime 'Build-WebDeployPackage: Start'
    
    $msbuildCmd = '"{0}" "{1}" /T:Rebuild;Package /P:VisualStudioVersion=15.0 /p:OutputPath="{2}\MSBuildOutputPath" /flp:logfile=msbuild.log,v=d' -f (Get-MSBuildCmd), $ProjectFile, $scriptDirectory
    
    Write-VerboseWithTime ('Build-WebDeployPackage: ' + $msbuildCmd)
    

Avviare l'esecuzione del comando di compilazioneStart execution of the build command

$job = Start-Process cmd.exe -ArgumentList('/C "' + $msbuildCmd + '"') -WindowStyle Normal -Wait -PassThru

if ($job.ExitCode -ne 0) {
    throw('MsBuild exited with an error. ExitCode:' + $job.ExitCode)
}

#Obtain the project name
$projectName = (Get-Item $ProjectFile).BaseName

#Construct the path to web deploy zip package
$DeployPackageDir =  '.\MSBuildOutputPath\_PublishedWebsites\{0}_Package\{0}.zip' -f $projectName

#Get the full path for the web deploy zip package. This is required for MSDeploy to work
$WebDeployPackage = Resolve-Path –LiteralPath $DeployPackageDir

Write-VerboseWithTime 'Build-WebDeployPackage: End'

return $WebDeployPackage
}
  1. Chiamare la funzione New-WebDeployPackage prima di questa riga: $Config = Read-ConfigFile $Configuration per le applicazioni web o $Config = Read-ConfigFile $Configuration -HasWebDeployPackage:([Bool]$WebDeployPackage) per le macchine virtuali.Call the New-WebDeployPackage function before this line: $Config = Read-ConfigFile $Configuration for web apps or $Config = Read-ConfigFile $Configuration -HasWebDeployPackage:([Bool]$WebDeployPackage) for virtual machines.

    if($ProjectFile)
    {
    $WebDeployPackage = New-WebDeployPackage
    }
    
  2. Richiamare uno script personalizzato dalla riga di comando mediante il passaggio dell'argomento $Project, come illustrato nell'esempio seguente.Invoke the customized script from command line using passing the $Project argument, as in the following example:

    .\Publish-WebApplicationVM.ps1 -Configuration .\Configurations\WebApplication5-VM-dev.json `
    -ProjectFile ..\WebApplication5\WebApplication5.csproj `
    -VMPassword @{Name="VMUser";Password="Test.123"} `
    -AllowUntrusted `
    -Verbose
    

    Per automatizzare il test dell'applicazione, aggiungere codice al Test-WebApplication.To automate testing of your application, add code to Test-WebApplication. Assicurarsi di rimuovere il commento dalle righe in Pubblica WebApplication.ps1 dove queste funzioni vengono chiamate.Be sure to uncomment the lines in Publish-WebApplication.ps1 where these functions are called. Se non si fornisce un'implementazione, è possibile compilare manualmente il progetto con Visual Studio e quindi eseguire lo script per pubblicare in Azure.If you don't provide an implementation, you can manually build your project with Visual Studio, and then run the publish script to publish to Azure.

Riepilogo della funzione di pubblicazionePublishing function summary

Per visualizzare la Guida per le funzioni è possibile utilizzare il prompt dei comandi Windows PowerShell, utilizzare il comando Get-Help function-name.To get help for functions you can use at the Windows PowerShell command prompt, use the command Get-Help function-name. Nella Guida sono inclusi esempi e informazioni sui parametri.The help includes parameter help and examples. Lo stesso testo della Guida in linea è presente anche nei file di origine script AzureWebAppPublishModule.psm1 e Publish-WebApplication.ps1.The same help text is also in the script source files AzureWebAppPublishModule.psm1 and Publish-WebApplication.ps1. Lo script e la Guida si trovano nella lingua di Visual Studio.The script and help are localized in your Visual Studio language.

AzureWebAppPublishModuleAzureWebAppPublishModule

Nome della funzioneFunction name DescriptionDescription
Aggiungere AzureSQLDatabaseAdd-AzureSQLDatabase Creare un nuovo database SQL Azure.Creates a new Azure SQL database.
Aggiungere AzureSQLDatabasesAdd-AzureSQLDatabases Crea database SQL di Azure da valori nel file di configurazione JSON generato da Visual Studio.Creates Azure SQL databases from the values in the JSON configuration file that Visual Studio generates.
Aggiungere-AzureVMAdd-AzureVM Crea una macchina virtuale di Azure e restituisce l'URL della macchina virtuale distribuita.Creates an Azure virtual machine and returns the URL of the deployed VM. La funzione imposta i prerequisiti e quindi chiama la funzione New-AzureVM (modulo di Azure) per creare una nuova macchina virtuale.The function sets up the prerequisites and then calls the New-AzureVM function (Azure module) to create a new virtual machine.
Aggiungere AzureVMEndpointsAdd-AzureVMEndpoints Aggiunge nuovi endpoint di input a una macchina virtuale e restituisce la macchina virtuale con il nuovo endpoint.Adds new input endpoints to a virtual machine and returns the virtual machine with the new endpoint.
Aggiungere AzureVMStorageAdd-AzureVMStorage Crea un nuovo account di archiviazione di Azure nella sottoscrizione corrente.Creates a new Azure storage account in the current subscription. Il nome dell'account inizia con "devtest" seguito da una stringa alfanumerica univoca.The name of the account begins with "devtest" followed by a unique alphanumeric string. La funzione restituisce il nome del nuovo account di archiviazione.The function returns the name of the new storage account. Specificare un percorso o un gruppo di affinità per il nuovo account di archiviazione.Specify either a location or an affinity group for the new storage account.
Aggiungere-AzureWebsiteAdd-AzureWebsite Crea un sito Web con nome e percorso specificati.Creates a website with the specified name and location. Questa funzione chiama la funzione New-AzureWebsite nel modulo di Azure.This function calls the New-AzureWebsite function in the Azure module. Se la sottoscrizione non include già un sito Web con il nome specificato, questa funzione crea il sito Web e restituisce un oggetto sito Web.If the subscription doesn't already include a website with the specified name, this function creates the website and returns a website object. In caso contrario, restituirà $null.Otherwise, it returns $null.
Backup-SottoscrizioneBackup-Subscription Salva la sottoscrizione di Azure corrente nella variabile $Script:originalSubscription nell'ambito dello script.Saves the current Azure subscription in the $Script:originalSubscription variable in script scope. Questa funzione salva nell'ambito dello script la sottoscrizione di Azure corrente, ottenuta da Get-AzureSubscription -Current, e il relativo account di archiviazione, nonché la sottoscrizione modificata da questo script, contenuto nella variabile $UserSpecifiedSubscription, e il relativo account di archiviazione.This function saves the current Azure subscription (as obtained by Get-AzureSubscription -Current) and its storage account, and the subscription that is changed by this script (stored in the variable $UserSpecifiedSubscription) and its storage account, in script scope. Salvando i valori, è possibile usare una funzione, ad esempio Restore-Subscription, per ripristinare allo stato corrente la sottoscrizione e l'account di archiviazione corrente originale se è stato modificato lo stato corrente.By saving the values, you can use a function, such as Restore-Subscription, to restore the original current subscription and storage account to current status if the current status has changed.
Trovare-AzureVMFind-AzureVM Ottiene la macchina virtuale di Azure specificata.Gets the specified Azure virtual machine.
Formato DevTestMessageWithTimeFormat-DevTestMessageWithTime Antepone la data e l’ora a un messaggio.Prepends the date and time to a message. Questa funzione è progettata per i messaggi scritti ai flussi di errore e dettagliati.This function is designed for messages written to the Error and Verbose streams.
Get-AzureSQLDatabaseConnectionStringGet-AzureSQLDatabaseConnectionString Assembla una stringa di connessione per connettersi a un database SQL Azure.Assembles a connection string to connect to an Azure SQL database.
Get-AzureVMStorageGet-AzureVMStorage Restituisce il nome del primo account di archiviazione con il modello di nome "devtest", senza distinzione maiuscole/minuscole, nel percorso o nel gruppo di affinità specificato. Se l'account di archiviazione "devtest" non corrisponde alla posizione o al gruppo di affinità, la funzione lo ignora.Returns the name of the first storage account with the name pattern "devtest" (case insensitive) in the specified location or affinity group. If the "devtest" storage account doesn't match the location or affinity group, the function ignores it. Specificare un percorso o un gruppo di affinità.Specify either a location or an affinity group.
Get-MSDeployCmdGet-MSDeployCmd Restituisce un comando per eseguire lo strumento MsDeploy.exe.Returns a command to run the MsDeploy.exe tool.
Nuovo AzureVMEnvironmentNew-AzureVMEnvironment Trova o crea una macchina virtuale nella sottoscrizione che corrisponde ai valori nel file di configurazione JSON.Finds or creates a virtual machine in the subscription that matches the values in the JSON configuration file.
Pubblicare-WebPackagePublish-WebPackage Utilizza MsDeploy.exe e un file Zip del pacchetto di pubblicazione web per distribuire le risorse a un sito Web.Uses MsDeploy.exe and a web publish package .Zip file to deploy resources to a website. Questa funzione non genera alcun output.This function doesn't generate any output. Se la chiamata a MSDeploy.exe non riesce, la funzione genera un'eccezione.If the call to MSDeploy.exe fails, the function throws an exception. Per ottenere un output più dettagliato, utilizzare l’opzione -Verbose .To get more detailed output, use the -Verbose option.
Pubblicar-WebPackageToVMPublish-WebPackageToVM Verifica i valori di parametro e chiama quindi la funzione Publish-WebPackage .Verifies the parameter values, and then calls the Publish-WebPackage function.
Leggere-configFileRead-ConfigFile Convalida il file di configurazione JSON e restituisce una tabella hash di valori selezionati.Validates the JSON configuration file and returns a hash table of selected values.
Ripristina-SubscriptionRestore-Subscription Reimposta la sottoscrizione corrente a quella originale.Resets the current subscription to the original subscription.
Test-AzureModuleTest-AzureModule Restituisce $true se la versione del modulo Azure installata è 0.7.4 o successiva.Returns $true if the installed Azure module version is 0.7.4 or later. Restituisce $false Se il modulo non è installato o è una versione precedente.Returns $false if the module isn't installed or is an earlier version. Questa funzione non ha parametri.This function has no parameters.
Test-AzureModuleVersionTest-AzureModuleVersion Restituisce $true se la versione del modulo Azure è 0.7.4 o successiva.Returns $true if the version of the Azure module is 0.7.4 or later. Restituisce $false Se il modulo non è installato o è una versione precedente.Returns $false if the module isn't installed or is an earlier version. Questa funzione non ha parametri.This function has no parameters.
Test-HttpsUrlTest-HttpsUrl Converte l'URL di input in un oggetto System. Uri.Converts the input URL to a System.Uri object. Restituisce $True se l'URL è assoluto e il relativo schema è https.Returns $True if the URL is absolute and its scheme is https. Restituisce $false se l'URL è relativo, lo schema non è HTTPS o la stringa di input non può essere convertita in un URL.Returns $false if the URL is relative, its scheme isn't HTTPS, or the input string can't be converted to a URL.
Test- MemberTest-Member Restituisce $true se una proprietà o metodo è un membro dell'oggetto.Returns $true if a property or method is a member of the object. In caso contrario, restituisce $false.Otherwise, returns $false.
Scrivere-ErrorWithTimeWrite-ErrorWithTime Scrive un messaggio di errore prefisso con l'ora corrente.Writes an error message prefixed with the current time. Questa funzione chiama la funzione Format-DevTestMessageWithTime per anteporre il tempo prima della scrittura del messaggio per il flusso di errore.This function calls the Format-DevTestMessageWithTime function to prepend the time before writing the message to the Error stream.
Scrivere-HostWithTimeWrite-HostWithTime Scrive un messaggio nel programma host (Write-Host) prestabilito con l'ora corrente.Writes a message to the host program (Write-Host) prefixed with the current time. L'effetto della scrittura nel programma host varia.The effect of writing to the host program varies. La maggior parte dei programmi che ospitano Windows PowerShell scrive questi messaggi nell'output standard.Most programs that host Windows PowerShell write these messages to standard output.
Scrivere-VerboseWithTimeWrite-VerboseWithTime Scrive un messaggio dettagliato con l'ora corrente.Writes a verbose message prefixed with the current time. Poiché chiama Write-Verbose, il messaggio viene visualizzato solo quando lo script viene eseguito con il parametro Verbose o quando la preferenza VerbosePreference è impostata su Continua.Because it calls Write-Verbose, the message displays only when the script runs with the Verbose parameter or when the VerbosePreference preference is set to Continue.

Pubblicare-WebApplicationPublish-WebApplication

Nome della funzioneFunction name DescriptionDescription
Nuovo-AzureWebApplicationEnvironmentNew-AzureWebApplicationEnvironment Crea risorse di Azure, ad esempio una macchina virtuale o un sito Web.Creates Azure resources, such as a website or virtual machine.
Nuovo-WebDeployPackageNew-WebDeployPackage Questa funzione non è implementata.This function isn't implemented. È possibile aggiungere comandi in questa funzione per compilare il progetto.You can add commands in this function to build your project.
Pubblicare-AzureWebApplicationPublish-AzureWebApplication Pubblicare un'applicazione Web in AzurePublishes a web application to Azure.
Pubblicare-WebApplicationPublish-WebApplication Crea e distribuisce le app Web, le macchine virtuali, i database SQL e gli account di archiviazione per un progetto web Visual Studio.Creates and deploys Web Apps, virtual machines, SQL databases, and storage accounts for a Visual Studio web project.
Test-WebApplicationTest-WebApplication Questa funzione non è implementata.This function isn't implemented. È possibile aggiungere comandi in questa funzione per testare l’applicazione.You can add commands in this function to test your application.

Passaggi successiviNext steps

Per altre informazioni sulla creazione di script PowerShell, leggere Scripting con Windows PowerShell e vedere gli altri script di Azure PowerShell nello Script Center.Learn more about PowerShell scripting by reading Scripting with Windows PowerShell and see other Azure PowerShell scripts at the Script Center.