Inicio rápido: Creación de una función de PowerShell en Azure desde la línea de comandos
Artikulua
En este artículo se usan herramientas de línea de comandos para crear una función de PowerShell que responda a solicitudes HTTP. Después de probar el código localmente, se implementa en el entorno sin servidor de Azure Functions.
Este inicio rápido supone un pequeño costo en su cuenta de Azure.
En los pasos siguientes se utiliza Windows Installer (MSI) para instalar Core Tools v4.x. Para más información sobre otros instaladores basados en paquetes, consulte el archivo Léame de Core Tools.
Descargue y ejecute el instalador de Core Tools según su versión de Windows:
Si ha usado previamente Windows Installer (MSI) para instalar Core Tools en Windows, debe desinstalar la versión anterior desde Agregar/Quitar programas antes de instalar la versión más reciente.
Los pasos siguientes utilizan Homebrew para instalar Core Tools en macOS.
brew tap azure/functions
brew install azure-functions-core-tools@4
# if upgrading on a machine that has 2.x or 3.x installed:
brew link --overwrite azure-functions-core-tools@4
Los siguientes pasos usan APT para instalar Core Tools en la distribución de Ubuntu/Debian Linux. Para otras distribuciones de Linux, consulte el archivo Léame de Core Tools.
Instale la clave GPG del repositorio de paquetes de Microsoft para validar la integridad del paquete:
Compruebe el archivo /etc/apt/sources.list.d/dotnetdev.list en busca de una de las cadenas de la versión Linux adecuada en la siguiente tabla:
Distribución de Linux
Versión
Debian 12
bookworm
Debian 11
bullseye
Debian 10
buster
Debian 9
stretch
Ubuntu 22.04
jammy
Ubuntu 20.04
focal
Ubuntu 19.04
disco
Ubuntu 18.10
cosmic
Ubuntu 18.04
bionic
Ubuntu 17.04
zesty
Ubuntu 16.04/Linux Mint 18
xenial
Inicie la actualización del origen de APT:
Bash
sudo apt-get update
Instale el paquete de Core Tools:
Bash
sudo apt-get install azure-functions-core-tools-4
Creación de un proyecto de función local
En Azure Functions, un proyecto de función es un contenedor para una o varias funciones individuales que responden a un desencadenador específico. Todas las funciones de un proyecto comparten las mismas configuraciones locales y de hospedaje. En esta sección, se crea un proyecto de función que contiene una sola función.
Ejecute el comando func init, de la manera siguiente, para crear un proyecto de funciones en una carpeta llamada LocalFunctionProj con el entorno de ejecución especificado:
Consola
func init LocalFunctionProj --powershell
Vaya a la carpeta del proyecto:
Consola
cd LocalFunctionProj
Esta carpeta contiene varios archivos del proyecto, incluidos los archivos de configuración local.settings.json y host.json. Como local.settings.json puede contener secretos descargados de Azure, el archivo se excluye del control de código fuente de forma predeterminada en el archivo .gitignore.
Agregue una función al proyecto mediante el comando siguiente, donde el argumento --name es el nombre único de la función (HttpExample) y el argumento --template especifica el desencadenador de esta (HTTP).
Consola
func new --name HttpExample --template "HTTP trigger" --authlevel "anonymous"
func new crea una subcarpeta que coincide con el nombre de la función que contiene un archivo de código apropiado para el lenguaje elegido del proyecto y un archivo de configuración denominado function.json.
run.ps1 define un script de función que se desencadena de acuerdo con la configuración de function.json.
PowerShell
using namespace System.Net
# Input bindings are passed in via param block.param($Request, $TriggerMetadata)
# Write to the Azure Functions log stream.Write-Host"PowerShell HTTP trigger function processed a request."# Interact with query parameters or the body of the request.$name = $Request.Query.Name
if (-not$name) {
$name = $Request.Body.Name
}
$body = "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."if ($name) {
$body = "Hello, $name. This HTTP triggered function executed successfully."
}
# Associate values to output bindings by calling 'Push-OutputBinding'.Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $body
})
Con un desencadenador HTTP, la función recibe los datos de solicitud pasados al parámetro $Request definido en function.json. El objeto devuelto, definido como Response en function.json, se pasa al cmdlet Push-OutputBinding como respuesta.
function.json
function.json es un archivo de configuración que define la entrada y salida bindings de la función, lo que incluye el tipo de desencadenador.
Cada enlace requiere una dirección, un tipo y un nombre único. El desencadenador HTTP tiene un enlace de entrada de tipo httpTrigger y un enlace de salida de tipo http.
Ejecución local de la función
Para ejecutar la función, inicie el host en tiempo de ejecución local de Azure Functions desde la carpeta LocalFunctionProj.
Consola
func start
En la parte final de la salida, deberán aparecer las líneas siguientes:
Oharra
Si HttpExample no aparece como se ha mostrado arriba, es probable que haya iniciado el host desde fuera de la carpeta raíz del proyecto. En ese caso, use Ctrl+C para detener el host, vaya a la carpeta raíz del proyecto y vuelva a ejecutar el comando anterior.
Copie la URL de su función HTTP de esta salida a un navegador y agregue la cadena de consulta ?name=<YOUR_NAME>, lo que hace que la URL completa sea como http://localhost:7071/api/HttpExample?name=Functions. El explorador debe mostrar un mensaje de respuesta que devuelve el valor de la cadena de consulta. El terminal en el que inició el proyecto también muestra la salida del registro cuando realiza solicitudes.
Cuando termine, presione Ctrl + C y escriba y para detener el host de Azure Functions.
Creación de recursos auxiliares de Azure para la función
Antes de poder implementar el código de la función en Azure, debe crear tres recursos:
Un grupo de recursos, que es un contenedor lógico de recursos relacionados.
Una cuenta de almacenamiento, que se usa para mantener el estado y otra información sobre sus funciones.
Una aplicación de funciones, que proporciona el entorno para ejecutar el código de función. Una aplicación de funciones se asigna al proyecto de funciones y le permite agrupar funciones como una unidad lógica para facilitar la administración, la implementación y el uso compartido de recursos.
Utilice los comandos siguientes para crear los elementos. Se admiten las CLI de Azure y de PowerShell.
Si todavía no lo ha hecho, inicie sesión en Azure:
az group create --name AzureFunctionsQuickstart-rg--location<REGION>
El comando az group create crea un grupo de recursos. En el comando anterior, reemplace <REGION> por una región cercana mediante un código de región disponible devuelto por el comando az account list-locations.
El comando New-AzResourceGroup crea un grupo de recursos. Por lo general, los recursos y los grupos de recursos se crean en una región cerca de usted, y se utiliza alguna de las regiones devueltas por el cmdlet Get-AzLocation.
Cree una cuenta de almacenamiento de uso general en su grupo de recursos y región:
En el ejemplo anterior, reemplace <STORAGE_NAME> por un nombre que sea apropiado para usted y único en Azure Storage. Los nombres deben contener entre 3 y 24 caracteres y solo letras minúsculas. Standard_LRS especifica una cuenta de uso general, que es compatible con Functions.
Garrantzitsua
La cuenta de almacenamiento se usa para almacenar datos importantes de la aplicación, a veces incluido el propio código de la aplicación. Debe limitar el acceso desde otras aplicaciones y usuarios a la cuenta de almacenamiento.
El cmdlet New-AzFunctionApp crea la aplicación de funciones en Azure.
En el ejemplo anterior, reemplace <STORAGE_NAME> por el nombre de la cuenta que usó en el paso anterior y reemplace <APP_NAME> por un nombre único global que le resulte adecuado. <APP_NAME> también es el dominio DNS predeterminado de la aplicación de función.
Este comando crea una aplicación de funciones que se ejecuta en el entorno de ejecución del lenguaje especificado en el plan de consumo de Azure Functions, que es gratuito para la cantidad de uso que se realiza aquí. El comando también aprovisiona una instancia asociada de Azure Application Insights en el mismo grupo de recursos con la que puede supervisar la aplicación de funciones y ver registros. Para más información, consulte Supervisión de Azure Functions. La instancia no incurrirá en ningún costo hasta que se active.
Implementación del proyecto de función en Azure
Después de haber creado correctamente su aplicación de funciones en Azure, estará listo para implementar el proyecto de funciones local mediante el comando func azure functionapp publish.
En este ejemplo, reemplace <APP_NAME> por el nombre de la aplicación. Una implementación correcta muestra resultados similares a la salida siguiente (truncada por motivos de simplicidad):
...
Getting site publishing info...
Creating archive for current directory...
Performing remote build for functions project.
...
Deployment successful.
Remote build succeeded!
Syncing triggers...
Functions in msdocs-azurefunctions-qs:
HttpExample - [httpTrigger]
Invoke url: https://msdocs-azurefunctions-qs.azurewebsites.net/api/httpexample
Invocación de la función en Azure
Como la función usa un desencadenador HTTP, para invocarla es preciso realizar una solicitud HTTP a su dirección URL en el explorador o con una herramienta como CURL.
Copie la dirección URL de invocación completa que se muestra en la salida del comando de publicación en una barra de direcciones del explorador, y anexe el parámetro de consulta ?name=Functions. El explorador debe mostrar una salida similar a cuando ejecutó la función localmente.
Ejecute curl con la dirección URL de invocación, y anexe el parámetro ?name=Functions. La salida del comando será el texto "Hello Functions".
Ejecute el siguiente comando para ver registros de streaming casi en tiempo real:
Consola
func azure functionapp logstream <APP_NAME>
En una ventana de terminal independiente o en el explorador, vuelva a llamar a la función remota. En la ventana de terminal, se mostrará un registro detallado de la ejecución de la función en Azure.
Limpieza de recursos
Si continúa con el paso siguiente y agrega un enlace de salida de la cola de Azure Storage, conserve todos los recursos intactos, ya que va a crear a partir de lo que ya ha hecho.
De lo contrario, use el siguiente comando para eliminar el grupo de recursos y todos los recursos que contiene para evitar incurrir en costos adicionales.
Bat egin IAren soluzio eskalagarrien soluzioak sortzeko topaketa sortarekin, mundu errealaren erabilera-kasuetan oinarrituak, beste garatzaile eta aditu batzuekin.
En esta ruta de aprendizaje, descubra Azure Functions que crean sistemas de proceso a petición orientados a eventos mediante la lógica del lado servidor para crear arquitecturas sin servidor.
Cree soluciones de un extremo a otro en Microsoft Azure para crear Azure Functions, implementar y administrar aplicaciones web, desarrollar soluciones que usen Azure Storage, etc.
Obtenga información sobre cómo crear una función de PowerShell y, a continuación, publicar el proyecto local en el hospedaje sin servidor de Azure Functions con la extensión de Azure Functions en Visual Studio Code.