Creación de su primera función de PowerShell en AzureCreate your first PowerShell function in Azure

Esta guía de inicio rápido le explica cómo crear su primera función de PowerShell sin servidor mediante Visual Studio Code.This quickstart article walks you through how to create your first serverless PowerShell function using Visual Studio Code.

Código Azure Functions en un proyecto de Visual Studio Code

Use la extensión de Azure Functions para Visual Studio Code para crear una función de PowerShell localmente y, a continuación, implementarla en una nueva aplicación de función en Azure.You use the Azure Functions extension for Visual Studio Code to create a PowerShell function locally and then deployed it to a new function app in Azure. Actualmente, la extensión se encuentra en versión preliminar.The extension is currently in preview. Para más información, consulte la página de la extensión de Azure Functions para Visual Studio Code.To learn more, see the Azure Functions extension for Visual Studio Code extension page.

Los pasos siguientes se admiten en sistemas operativos basados en Linux, Windows y macOS.The following steps are supported on macOS, Windows, and Linux-based operating systems.

PrerrequisitosPrerequisites

Para completar esta guía de inicio rápido:To complete this quickstart:

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.If you don't have an Azure subscription, create a free account before you begin.

Instalación de la extensión de Azure FunctionsInstall the Azure Functions extension

Puede usar la extensión de Azure Functions para crear y probar funciones e implementarlas en Azure.You can use the Azure Functions extension to create and test functions and deploy them to Azure.

  1. En Visual Studio Code, abra Extensiones y busque azure functions o seleccione este vínculo en Visual Studio Code.In Visual Studio Code, open Extensions and search for azure functions, or select this link in Visual Studio Code.

  2. Seleccione Instalar para instalar la extensión en Visual Studio Code.Select Install to install the extension for Visual Studio Code:

    Instalación de la extensión de Azure Functions

  3. Después de la instalación, seleccione el icono de Azure en la barra de actividad.After installation, select the Azure icon on the Activity bar. Debería ver un área de Azure Functions en la barra lateral.You should see an Azure Functions area in the Side Bar.

    Área de Azure Functions en la barra lateral

Creación de un proyecto de aplicación de funciónCreate a function app project

La plantilla del proyecto de Azure Functions de Visual Studio Code crea un proyecto que se puede publicar en una aplicación de función en Azure.The Azure Functions project template in Visual Studio Code creates a project that can be published to a function app in Azure. Una aplicación de función permite agrupar funciones como una unidad lógica para facilitar la administración, la implementación, el escalado y el uso compartido de recursos.A function app lets you group functions as a logical unit for easier management, deployment, scaling, and sharing of resources.

  1. En Visual Studio Code, seleccione el logotipo de Azure para mostrar la zona Azure: Functions y, a continuación, seleccione el icono Crear proyecto.In Visual Studio Code, select the Azure logo to display the Azure: Functions area, and then select the Create New Project icon.

    Creación de un proyecto de aplicación de función

  2. Elija una ubicación para el área de trabajo del proyecto de Functions y elija Seleccionar.Choose a location for your Functions project workspace and choose Select.

    Nota

    Este artículo se ha diseñado para completarse fuera de un área de trabajo.This article was designed to be completed outside of a workspace. Por tanto, no seleccione una carpeta de proyecto que forme parte de un área de trabajo.In this case, do not select a project folder that is part of a workspace.

  3. Seleccione Powershell como lenguaje para el proyecto de aplicación de función y, a continuación, Azure Functions v2.Select the Powershell as the language for your function app project and then Azure Functions v2.

  4. Elija el desencadenador HTTP como plantilla para su primera función, utilice HTTPTrigger como nombre de la función y elija un nivel de autorización de Función.Choose HTTP Trigger as the template for your first function, use HTTPTrigger as the function name, and choose an authorization level of Function.

    Nota

    El nivel de autorización Función requiere un valor para la clave de función al llamar al punto de conexión de la función en Azure.The Function authorization level requires a function key value when calling the function endpoint in Azure. Esto dificulta que cualquier persona pueda llamar a la función.This makes it harder for just anyone to call your function.

  5. Cuando se le solicite, elija Agregar al área de trabajo.When prompted, choose Add to workspace.

Visual Studio Code crea el proyecto de la aplicación de función de PowerShell en una nueva área de trabajo.Visual Studio Code creates the PowerShell function app project in a new workspace. Este proyecto contiene los archivos de configuración host.json y local.settings.json, que se aplican a todas las funciones del proyecto.This project contains the host.json and local.settings.json configuration files, which apply to all function in the project. Este proyecto de PowerShell es igual que una aplicación de función que se ejecuta en Azure.This PowerShell project is the same as a function app running in Azure.

Ejecución local de la funciónRun the function locally

Azure Functions Core Tools se integra con Visual Studio Code para permitirle ejecutar y depurar un proyecto de Azure Functions localmente.Azure Functions Core Tools integrates with Visual Studio Code to let you run and debug an Azure Functions project locally.

  1. Para depurar la función, inserte una llamada al cmdlet Wait-Debugger en el código de la función antes de adjuntar el depurador y luego presione F5 para iniciar el proyecto de la aplicación de función y adjuntar el depurador.To debug your function, insert a call to the Wait-Debugger cmdlet in the function code before you want to attach the debugger, then press F5 to start the function app project and attach the debugger. La salida de Core Tools aparece en el panel Terminal.Output from Core Tools is displayed in the Terminal panel.

  2. En el panel Terminal, copie el punto de conexión de la dirección URL de la función desencadenada por HTTP.In the Terminal panel, copy the URL endpoint of your HTTP-triggered function.

    Salida local de Azure

  3. Anexe la cadena de consulta ?name=<yourname> a esta dirección URL y use después Invoke-RestMethod en un segundo símbolo del sistema de PowerShell para ejecutar la solicitud, del modo siguiente:Append the query string ?name=<yourname> to this URL, and then use Invoke-RestMethod in a second PowerShell command prompt to execute the request, as follows:

    PS > Invoke-RestMethod -Method Get -Uri http://localhost:7071/api/HttpTrigger?name=PowerShell
    Hello PowerShell
    

    También puede ejecutar la solicitud GET de un explorador desde la siguiente dirección URL.You can also execute the GET request from a browser from the following URL:

    http://localhost:7071/api/HttpExample?name=PowerShell

    Cuando se llama al punto de conexión HttpTrigger sin pasar un parámetro name como un parámetro de consulta o en el cuerpo, la función devuelve un error BadRequest.When you call the HttpTrigger endpoint without passing a name parameter either as a query parameter or in the body, the function returns a BadRequest error. Al revisar el código de run.ps1, verá que este error se produce por diseño.When you review the code in run.ps1, you see that this error occurs by design.

  4. La información sobre la solicitud se muestra en el panel Terminal.Information about the request is shown in Terminal panel.

    Ejecución de función en el panel Terminal

  5. Para detener la depuración, presione Ctrl + C para detener Core Tools.To stop debugging, press Ctrl + C to stop Core Tools.

Después de comprobar que la función se ejecuta correctamente en el equipo local es el momento de publicar el proyecto en Azure.After you've verified that the function runs correctly on your local computer, it's time to publish the project to Azure.

Nota

No olvide quitar todas las llamadas a Wait-Debugger antes de publicar sus funciones en Azure.Remember to remove any calls to Wait-Debugger before you publish your functions to Azure.

Publicar el proyecto en AzurePublish the project to Azure

En esta sección, va a crear una aplicación de funciones y los recursos relacionados en su suscripción de Azure y, después, va a implementar el código.In this section, you create a function app and related resources in your Azure subscription and then deploy your code.

  1. Seleccione el icono de Azure en la barra de actividades y después en el área Azure: Functions, seleccione el botón de implementación en la aplicación de funciones.Choose the Azure icon in the Activity bar, then in the Azure: Functions area, choose the Deploy to function app... button.

    Publicación del proyecto en Azure

  2. Escriba la siguiente información cuando se le indique:Provide the following information at the prompts:

    • Seleccione la suscripción: elija la suscripción que desee usar.Select subscription: Choose the subscription to use. No se mostrará esta opción si solo tiene una suscripción.You won't see this if you only have one subscription.

    • Seleccione la aplicación de funciones en Azure: Elija + Create new Function App (no Advanced).Select Function App in Azure: Choose + Create new Function App (not Advanced). En este artículo no se admite el flujo de publicación avanzada.This article doesn't support the advanced publishing flow.

    Importante

    La publicación en una aplicación de función existente sobrescribe el contenido de esa aplicación en Azure.Publishing to an existing function app overwrites the content of that app in Azure.

    • Escriba un nombre único global para la aplicación de funciones: Escriba un nombre que sea válido en una ruta de acceso de la dirección URL.Enter a globally unique name for the function app: Type a name that is valid in a URL path. El nombre que escriba se valida para asegurarse de que es único en Azure Functions.The name you type is validated to make sure that it's unique in Azure Functions.
    • Seleccione un entorno de ejecución: Elija la versión de Python en la que se ha estado ejecutando localmente.Select a runtime: Choose the version of Python you've been running on locally. Ejecute el comando python --version para comprobar la versión.You can use the python --version command to check your version.
    • Seleccione un entorno de ejecución: Elija la versión de Node.js en la que se ha estado ejecutando localmente.Select a runtime: Choose the version of Node.js you've been running on locally. Ejecute el comando node --version para comprobar la versión.You can use the node --version command to check your version.
    • Seleccione una ubicación para los nuevos recursos: Para mejorar el rendimiento, elija una región cerca de usted.Select a location for new resources: For better performance, choose a region near you.
  3. Cuando se complete, se crearán los siguientes recursos de Azure en la suscripción:When completed, the following Azure resources are created in your subscription:

    • Grupo de recursos : contiene todos los recursos de Azure creados.Resource group: Contains all of the created Azure resources. El nombre se basa en el nombre de la aplicación de función.The name is based on your function app name.
    • Cuenta de almacenamiento : se crea una cuenta de almacenamiento estándar con un nombre único en función del nombre de la aplicación de función.Storage account: A standard Storage account is created with a unique name that is based on your function app name.
    • Plan de hospedaje : se crea un plan de consumo en la región Oeste de EE. UU. para hospedar la aplicación de función sin servidor.Hosting plan: A consumption plan is created in the West US region to host your serverless function app.
    • Aplicación de función: el proyecto se implementa y ejecuta en esta aplicación de función nueva.Function app: Your project is deployed to and runs in this new function app.
    • Application Insights: Se crea una instancia, que está conectada a la aplicación de funciones, en función del nombre de la función.Application Insights: An instance, which is connected to your function app, is created based on your function name.

    Una vez que se haya creado la aplicación de función se mostrará una notificación y se aplicará el paquete de implementación.A notification is displayed after your function app is created and the deployment package is applied.

  4. Seleccione View Output (Ver salida) en esta notificación para ver la creación y los resultados de la implementación, incluidos los recursos de Azure que ha creado.Select View Output in this notification to view the creation and deployment results, including the Azure resources that you created. Si se pierde la notificación, seleccione el icono de campana en la esquina inferior derecha para verlo de nuevo.If you miss the notification, select the bell icon in the lower right corner to see it again.

    Creación de la notificación completa

Ejecución de la función en AzureRun the function in Azure

Para comprobar quela función publicada se ejecuta en Azure, ejecute el siguiente comando de PowerShell, reemplazando el parámetro Uri por la dirección URL de la función HTTPTrigger en el paso anterior.To verify that your published function runs in Azure, execute the following PowerShell command, replacing the Uri parameter with the URL of the HTTPTrigger function from the previous step. Como antes, adjunte la cadena de consulta &name=<yourname> a la dirección URL, como en el ejemplo siguiente:As before, append the query string &name=<yourname> to the URL, as in the following example:

PS > Invoke-WebRequest -Method Get -Uri "https://glengatest-vscode-powershell.azurewebsites.net/api/HttpTrigger?code=nrY05eZutfPqLo0som...&name=PowerShell"

StatusCode        : 200
StatusDescription : OK
Content           : Hello PowerShell
RawContent        : HTTP/1.1 200 OK
                    Content-Length: 16
                    Content-Type: text/plain; charset=utf-8
                    Date: Thu, 25 Apr 2019 16:01:22 GMT

                    Hello PowerShell
Forms             : {}
Headers           : {[Content-Length, 16], [Content-Type, text/plain; charset=utf-8], [Date, Thu, 25 Apr 2019 16:01:22 GMT]}
Images            : {}
InputFields       : {}
Links             : {}
ParsedHtml        : mshtml.HTMLDocumentClass
RawContentLength  : 16

Pasos siguientesNext steps

Ha usado Visual Studio Code para crear una aplicación de función de PowerShell con una función simple desencadenada por HTTP.You have used Visual Studio Code to create a PowerShell function app with a simple HTTP-triggered function. También puede obtener más información acerca de la depuración local de una función de PowerShell con Azure Functions Core Tools.You may also want to learn more about debugging a PowerShell function locally using the Azure Functions Core Tools. Consulte la guía del desarrollador de PowerShell de Azure Functions.Check out the Azure Functions PowerShell developer guide.