Desarrollo de Azure Functions localmente mediante Core Tools
Azure Functions Core Tools le permite desarrollar y probar las funciones en el equipo local. Cuando esté listo, también puede usar Core Tools para implementar el proyecto de código en Azure y trabajar con la configuración de la aplicación.
Está viendo la versión de C# de este artículo. Asegúrese de seleccionar su lenguaje de programación de Functions preferido en la parte superior del artículo.
Si desea empezar de inmediato, complete el artículo de inicio rápido de Core Tools.
Está viendo la versión de Java de este artículo. Asegúrese de seleccionar su lenguaje de programación de Functions preferido en la parte superior del artículo.
Si desea empezar de inmediato, complete el artículo de inicio rápido de Core Tools.
Está viendo la versión de JavaScript de este artículo. Asegúrese de seleccionar su lenguaje de programación de Functions preferido en la parte superior del artículo.
Si desea empezar de inmediato, complete el artículo de inicio rápido de Core Tools.
Está viendo la versión de PowerShell de este artículo. Asegúrese de seleccionar su lenguaje de programación de Functions preferido en la parte superior del artículo.
Si desea empezar de inmediato, complete el artículo de inicio rápido de Core Tools.
Está viendo la versión de Python de este artículo. Asegúrese de seleccionar su lenguaje de programación de Functions preferido en la parte superior del artículo.
Si desea empezar de inmediato, complete el artículo de inicio rápido de Core Tools.
Está viendo la versión de TypeScript de este artículo. Asegúrese de seleccionar su lenguaje de programación de Functions preferido en la parte superior del artículo.
Si desea empezar de inmediato, complete el artículo de inicio rápido de Core Tools.
Instalación de Azure Functions Core Tools
La manera recomendada de instalar Core Tools depende del sistema operativo del equipo de desarrollo local.
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:
- v4.x: Windows 64 bits (recomendado. La depuración de Visual Studio Code requiere 64 bits).
- v4.x: Windows de 32 bits
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.
Para obtener ayuda con problemas relacionados con la versión, consulte Versiones de Core Tools.
Creación del proyecto local
Importante
Para Python, debe ejecutar comandos de Core Tools en un entorno virtual. Para más información, consulte Inicio rápido: Creación de una función de Python en Azure desde la línea de comandos.
En la ventana de terminal, o desde un símbolo del sistema, ejecute el siguiente comando para crear un proyecto en la carpeta MyProjFolder
:
func init MyProjFolder --worker-runtime dotnet-isolated
De forma predeterminada, este comando crea un proyecto que se ejecuta In-Process con el host Functions en la versión actual de Soporte técnico a largo plazo (LTS) de .NET Core. Puede usar la opción --target-framework
para tener como destino una versión admitida específica de .NET, incluido .NET Framework. Para más información, consulte la referencia de func init
.
Para obtener una comparación entre los dos modelos de proceso de .NET, consulte el artículo de comparación del modo de proceso.
Java utiliza un arquetipo de Maven para crear el proyecto local, junto con la primera función desencadenada por HTTP. En lugar de usar func init
y func new
, siga los pasos que se describen en la guía de inicio rápido de la línea de comandos.
Este comando crea un proyecto de JavaScript que usa la versión deseada del modelo de programación.
Este comando crea un proyecto de TypeScript que usa la versión deseada del modelo de programación.
func init MyProjFolder --worker-runtime powershell
Este comando crea un proyecto de Python que usa la versión deseada del modelo de programación.
Cuando se ejecuta func init
sin la opción --worker-runtime
, se le pedirá que elija el lenguaje del proyecto. Para obtener más información sobre las opciones disponibles para el comando func init
, consulte la referencia de func init
.
Creación de una función
Para agregar una función al proyecto, ejecute el comando func new
con la opción --template
para seleccionar la plantilla de desencadenador. En el siguiente ejemplo, se crea un desencadenador HTTP denominado MyHttpTrigger
:
func new --template "Http Trigger" --name MyHttpTrigger
En este ejemplo se crea un desencadenador de Queue Storage denominado MyQueueTrigger
:
func new --template "Azure Queue Storage Trigger" --name MyQueueTrigger
Al agregar funciones deben tenerse en cuenta las consideraciones siguientes:
Cuando se ejecuta
func new
sin la opción--template
, se le pedirá que elija una plantilla.Use el comando
func templates list
para ver la lista completa de plantillas disponibles para su lenguaje.Al agregar un desencadenador que se conecta a un servicio, también tendrá que agregar una configuración de aplicación que haga referencia a una cadena de conexión o una identidad administrada al archivo local.settings.json. El uso de la configuración de la aplicación de esta manera evita que tenga que insertar credenciales en el código. Para más información, consulte Trabajar con la configuración de la aplicación localmente.
- Core Tools también agrega una referencia a la extensión de enlace específica al proyecto de C#.
Para obtener más información sobre las opciones disponibles para el comando func new
, consulte la referencia de func new
.
Agregar un enlace a su función
Functions proporciona un conjunto de enlaces de entrada y salida específicos del servicio, lo que facilita la conexión de la función a otros servicios de Azure sin tener que usar los SDK de cliente específicos del servicio. Para más información, vea Conceptos básicos sobre los enlaces y desencadenadores de Azure Functions.
Para agregar un enlace de entrada o salida a una función existente, debe actualizar manualmente la definición de la función.
En el ejemplo siguiente se muestra la definición de función después de agregar un Enlace de salida de Queue Storage a una función desencadenada por HTTP:
Dado que una función de desencadenador por HTTP también devuelve una respuesta HTTP, la función devolverá un objeto MultiResponse
, que representa la salida de la cola y HTTP.
[Function("HttpExample")]
public static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req,
FunctionContext executionContext)
{
Este ejemplo muestra la definición del objeto MultiResponse
, que incluye el enlace de salida:
public class MultiResponse
{
[QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
public string[] Messages { get; set; }
public IActionResult HttpResponse { get; set; }
}
Al aplicar ese ejemplo a su propio proyecto, es posible que tenga que cambiar HttpRequest
por HttpRequestData
y IActionResult
por HttpResponseData
, dependiendo de si usa integración ASP.NET Core o no.
Los mensajes se envían a la cola cuando se completa la función. La forma de definir el enlace de salida depende de su modelo de proceso. Para obtener más información, incluidos los vínculos al código de enlace de ejemplo al que puede hacer referencia, consulte Agregar enlaces a una función.
@FunctionName("HttpExample")
public HttpResponseMessage run(
@HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS)
HttpRequestMessage<Optional<String>> request,
@QueueOutput(name = "msg", queueName = "outqueue",
connection = "AzureWebJobsStorage") OutputBinding<String> msg,
final ExecutionContext context) {
Para obtener más información, incluidos los vínculos al código de enlace de ejemplo al que puede hacer referencia, consulte Agregar enlaces a una función.
La forma de definir el enlace de salida depende de la versión del modelo de Node.js. Para obtener más información, incluidos los vínculos al código de enlace de ejemplo al que puede hacer referencia, consulte Agregar enlaces a una función.
$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg
Para obtener más información, incluidos los vínculos al código de enlace de ejemplo al que puede hacer referencia, consulte Agregar enlaces a una función.
@app.route(route="HttpExample")
@app.queue_output(arg_name="msg", queue_name="outqueue", connection="AzureWebJobsStorage")
def HttpExample(req: func.HttpRequest, msg: func.Out [func.QueueMessage]) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
La forma de definir el enlace de salida depende de la versión del modelo de Python. Para obtener más información, incluidos los vínculos al código de enlace de ejemplo al que puede hacer referencia, consulte Agregar enlaces a una función.
La forma de definir el enlace de salida depende de la versión del modelo de Node.js. Para obtener más información, incluidos los vínculos al código de enlace de ejemplo al que puede hacer referencia, consulte Agregar enlaces a una función.
Las consideraciones siguientes se aplican al agregar enlaces a una función:
- En el caso de los lenguajes que definen funciones mediante el archivo de configuración function.json, Visual Studio Code simplifica el proceso de agregar enlaces a una definición de función existente. Para más información, consulte Conexión de funciones a servicios de Azure mediante enlaces.
- Al agregar enlaces que se conectan a un servicio, también debe agregar una configuración de aplicación que haga referencia a una cadena de conexión o una identidad administrada al archivo local.settings.json. Para más información, consulte Trabajar con la configuración de la aplicación localmente.
- Al agregar un enlace compatible, la extensión ya debe instalarse cuando la aplicación usa la agrupación de extensiones. Para obtener más información, consulte conjuntos de extensión.
- Al agregar un enlace que requiera una nueva extensión de enlace, también debe agregar una referencia a esa extensión de enlace específica en el proyecto de C#.
Para obtener más información, incluidos los vínculos al código de enlace de ejemplo al que puede hacer referencia, consulte Agregar enlaces a una función.
Para obtener más información, incluidos los vínculos al código de enlace de ejemplo al que puede hacer referencia, consulte Agregar enlaces a una función.
Para obtener más información, incluidos los vínculos al código de enlace de ejemplo al que puede hacer referencia, consulte Agregar enlaces a una función.
Para obtener más información, incluidos los vínculos al código de enlace de ejemplo al que puede hacer referencia, consulte Agregar enlaces a una función.
Para obtener más información, incluidos los vínculos al código de enlace de ejemplo al que puede hacer referencia, consulte Agregar enlaces a una función.
Para obtener más información, incluidos los vínculos al código de enlace de ejemplo al que puede hacer referencia, consulte Agregar enlaces a una función.
Iniciar el runtime de Functions
Para poder ejecutar o depurar las funciones del proyecto, debe iniciar el host de Functions desde el directorio raíz del proyecto. El host habilita desencadenadores para todas las funciones del proyecto. Use este comando para iniciar el runtime local:
mvn clean package
mvn azure-functions:run
func start
func start
npm install
npm start
Este comando debe ejecutarse en un entorno virtual.
Cuando se inicia el host de Functions, genera una lista de funciones en el proyecto, incluidas las direcciones URL de cualquier función desencadenada por HTTP, como en este ejemplo:
Found the following functions: Host.Functions.MyHttpTrigger Job host started Http Function MyHttpTrigger: http://localhost:7071/api/MyHttpTrigger
Tenga en cuenta las siguientes consideraciones al ejecutar las funciones localmente:
De manera predeterminada, no se aplica la autorización local para puntos de conexión HTTP. Esto significa que todas las solicitudes HTTP locales se tratan como
authLevel = "anonymous"
. Para más información, consulte Nivel de autorización. Puede usar la opción--enableAuth
para requerir autorización al ejecutarse localmente. Para obtener más información, consulte:func start
Puede usar el emulador de Azurite local cuando se ejecutan funciones locales que requieren acceso a los servicios de Azure Storage (Queue Storage, Blob Storage y Table Storage) sin tener que conectarse a estos servicios en Azure. Al usar la emulación local, asegúrese de iniciar Azurite antes de iniciar el host local (func.exe). Para obtener más información, consulte Emulador de almacenamiento local.
- Puede usar la emulación de Azurite local para cumplir el requisito de almacenamiento del trabajo de Python v2.
Puede desencadenar funciones que no son HTTP localmente sin conectarse a un servicio activo. Para obtener más información, consulte Ejecutar una función local.
Al incluir la información de conexión de Application Insights en el archivo local.settings.json, los datos de registro locales se escriben en la instancia específica de Application Insights. Para mantener los datos de telemetría locales separados de los datos de producción, considere la posibilidad de usar una instancia independiente de Application Insights para desarrollo y pruebas.
- Cuando use la versión 1.x de Core Tools, use el comando
func host start
para iniciar el runtime local.
Ejecutar una función local
Con el host local de Functions (func.exe) en ejecución, ahora puede desencadenar funciones individuales para ejecutar y depurar el código de función. La forma en que se ejecuta una función individual depende de su tipo de desencadenador.
Nota:
En los ejemplos de este tema se usa la herramienta cURL para enviar solicitudes HTTP desde el terminal o un símbolo del sistema. Puede usar una herramienta de su elección para enviar solicitudes HTTP al servidor local. La herramienta cURL está disponible de forma predeterminada en los sistemas basados en Linux y en la compilación 17063 de Windows 10, y en las posteriores. En las versiones anteriores de Windows, primero debe descargar e instalar la herramienta cURL.
Los desencadenadores HTTP se inician enviando una solicitud HTTP al punto de conexión local y al puerto tal y como se muestra en la salida de func.exe, que tiene este formato general:
http://localhost:<PORT>/api/<FUNCTION_NAME>
En esta plantilla de dirección URL, <FUNCTION_NAME>
es el nombre de la función o ruta y <PORT>
es el puerto local en el que func.exe escucha.
Por ejemplo, este comando desencadena la MyHttpTrigger
función de inicio rápido desde una solicitud GET con el parámetro name transferido en la cadena de consulta:
curl --get http://localhost:7071/api/MyHttpTrigger?name=Azure%20Rocks
Este ejemplo es la misma función llamada desde una solicitud POST que pasa el nombre en el cuerpo de la solicitud, que se muestra para el shell de Bash y la línea de comandos de Windows:
curl --request POST http://localhost:7071/api/MyHttpTrigger --data '{"name":"Azure Rocks"}'
curl --request POST http://localhost:7071/api/MyHttpTrigger --data "{'name':'Azure Rocks'}"
Las consideraciones siguientes se aplican al llamar a puntos de conexión HTTP localmente:
Puede realizar solicitudes GET desde un explorador que transfiere datos en la cadena de consulta. Para todos los demás métodos HTTP, debe usar una herramienta de prueba HTTP que también mantenga los datos seguros. Para obtener más información, consulte Herramientas de prueba HTTP.
Asegúrese de usar el mismo nombre del servidor y puerto en el que escucha el host de Functions. Puede ver un punto de conexión similar en la salida generada al iniciar el host de Functions. Puede llamar a esta dirección URL mediante cualquier método HTTP admitido por el desencadenador.
Publicar en Azure
Azure Functions Core Tools admite tres tipos de implementación:
Tipo de implementación | Get-Help | Descripción |
---|---|---|
Archivos de proyecto | func azure functionapp publish |
Implementa los archivos de proyecto de función directamente en su aplicación de funciones usando la implementación mediante ZIP. |
Azure Container Apps | func azurecontainerapps deploy |
Implementa una aplicación de funciones en contenedor en un entorno de Container Apps existente. |
Clúster de Kubernetes | func kubernetes deploy |
Implementa la aplicación de funciones de Linux como contenedor de Docker personalizado en un clúster de Kubernetes. |
Debe tener la CLI de Azure o bien Azure PowerShell instalado localmente para poder realizar la publicación en Azure desde Core Tools. De forma predeterminada, Core Tools usa estas herramientas para autenticarse con su cuenta de Azure.
Si no tiene instaladas estas herramientas, debe obtener un token de acceso válido para usarlo durante la implementación. Puede presentar un token de acceso mediante la opción --access-token
en los comandos de implementación.
Implementación de los archivos de proyecto
Para publicar su código local en una aplicación de funciones en Azure, use el comando func azure functionapp publish
, como en el ejemplo siguiente:
func azure functionapp publish <FunctionAppName>
Este comando publica archivos de proyecto desde el directorio actual en <FunctionAppName>
como un paquete de implementación de .zip. Si el proyecto requiere compilación, se realiza de forma remota durante la implementación.
Java usa Maven para publicar el proyecto local en Azure en lugar de Core Tools. Use el siguiente comando de Maven para publicar el proyecto en Azure:
mvn azure-functions:deploy
Al ejecutar este comando, los recursos de Azure se crean durante la implementación inicial en función de la configuración del archivo pom.xml. Para más información, consulte Implementación del proyecto de función en Azure.
Tenga en cuenta los siguientes aspectos con relación a este tipo de implementación:
La publicación sobrescribe los archivos existentes en la implementación de la aplicación de funciones remotas.
Previamente, debe haber creado una aplicación de función en la suscripción de Azure. Core Tools implementa el código del proyecto en este recurso de aplicación de funciones. Para obtener información sobre cómo crear una aplicación de función desde el símbolo del sistema o la ventana de Terminal mediante la CLI de Azure o Azure PowerShell, vea Creación de una aplicación de función para la ejecución de código sin servidor. También puede crear estos recursos en el Azure Portal. Obtendrá un error si intenta publicarla en un
<FunctionAppName>
que no exista en su suscripción.Una carpeta de proyecto puede contener archivos y directorios específicos del idioma que no deben publicarse. Los elementos excluidos se enumeran en un archivo .funcignore en la carpeta raíz del proyecto.
De manera predeterminada, su proyecto se implementa de tal forma que se ejecute desde el paquete de implementación. Para deshabilitar este modo de implementación recomendado, use la opción
--nozip
.En proyectos compilados se lleva a cabo una compilación remota. Esta acción se puede controlar usando la opción
--no-build
.Use la opción
--publish-local-settings
para crear automáticamente la configuración de aplicación en su aplicación de funciones a partir de los valores del archivo local.settings.json.Para publicar en una ranura con nombre específica en la aplicación de funciones, use la
--slot
opción.
Implementación de contenedores
Core Tools le permite implementar la aplicación de funciones en contenedores en entornos administrados de Azure Container Apps y en clústeres de Kubernetes que administre.
Use el siguiente comando func azurecontainerapps deploy
para implementar una imagen de contenedor existente en un entorno de Container Apps:
func azurecontainerapps deploy --name <APP_NAME> --environment <ENVIRONMENT_NAME> --storage-account <STORAGE_CONNECTION> --resource-group <RESOURCE_GROUP> --image-name <IMAGE_NAME> [--registry-password] [--registry-server] [--registry-username]
Al implementar en un entorno de Azure Container Apps, se aplican las siguientes consideraciones:
El entorno y la cuenta de almacenamiento ya deben existir. La aplicación de funciones implementada usa la cadena de conexión de la cuenta de almacenamiento que proporcione.
No es necesario crear un recurso de aplicación de funciones independiente al implementar en Container Apps.
Las cadenas de conexión de almacenamiento y otras credenciales de servicio son secretos importantes. Asegúrese de almacenar de forma segura los archivos de script mediante
func azurecontainerapps deploy
y no los almacene en ningún sistema de control de código fuente accesible públicamente. Puede cifrar el archivo local.settings.json para mayor seguridad.
Para más información, vea Hospedaje de Azure Functions en Azure Container Apps.
Trabajar con la configuración de la aplicación localmente
Cuando se ejecuta en una aplicación de funciones de Azure, la configuración requerida por las funciones se almacena de forma segura en la configuración de la aplicación. Durante el desarrollo local, esta configuración se agrega en su lugar a la colección Values
del archivo local.settings.json. El archivo local.settings.json almacena también la configuración que usan las herramientas locales de desarrollo.
Los elementos de la colección Values
del archivo local.settings.json del proyecto están diseñados para reflejar elementos en la configuración de la aplicación de la aplicación de funciones en Azure.
Las consideraciones siguientes se aplican al trabajar con el archivo de configuración local:
Dado que local.settings.json puede contener secretos, como cadenas de conexión, nunca debe almacenarlo en un repositorio remoto. Core Tools le ayuda a cifrar este archivo de configuración local para mejorar la seguridad. Para más información, consulte Archivo de configuración local. También puede cifrar el archivo local.settings.json para mayor seguridad.
De manera predeterminada, las opciones de configuración local no se migran automáticamente cuando el proyecto se publica en Azure. Use la opción
--publish-local-settings
cuando publique sus archivos del proyecto para asegurarse de que la configuración se agregue a la aplicación de funciones en Azure. Los valores de la secciónConnectionStrings
no se publican nunca. También puede cargar la configuración desde el archivo local.settings.json en cualquier momento.Puede descargar y sobrescribir la configuración en el archivo local.settings.json con la configuración de la aplicación de funciones en Azure. Para más información, vea Descargar la configuración de la aplicación.
- Esta configuración de la aplicación de función también se puede leer en el código como variables de entorno. Para más información, consulte Variables de entorno.
- Esta configuración de la aplicación de función también se puede leer en el código como variables de entorno. Para más información, consulte Variables de entorno.
- Esta configuración de la aplicación de función también se puede leer en el código como variables de entorno. Para más información, consulte Variables de entorno.
- Esta configuración de la aplicación de función también se puede leer en el código como variables de entorno. Para más información, consulte Variables de entorno.
- Esta configuración de la aplicación de función también se puede leer en el código como variables de entorno. Para más información, consulte Variables de entorno.
- Cuando no se establece ninguna cadena de conexión de almacenamiento válida para
AzureWebJobsStorage
y no se usa un emulador de almacenamiento local, se muestra un mensaje de error. Puede usar Core Tools para descargar una cadena de conexión específica de cualquiera de las cuentas de Azure Storage.
Descargar la configuración de la aplicación
En la raíz del proyecto, use el siguiente comando para descargar toda la configuración de la aplicación desde la aplicación myfunctionapp12345
en Azure:
func azure functionapp fetch-app-settings myfunctionapp12345
Este comando sobrescribe cualquier configuración existente en el archivo local.settings.json con valores de Azure. Cuando aún no están presente, se agregan nuevos elementos a la colección. Para obtener más información, vea el comando func azure functionapp fetch-app-settings
.
Descargar una cadena de conexión de almacenamiento
Core Tools también facilita la obtención de la cadena de conexión de cualquier cuenta de almacenamiento a la que tenga acceso. Desde el directorio raíz del proyecto, use los siguientes comandos para descargar la cadena de conexión de una cuenta de almacenamiento llamada mystorage12345
.
func azure storage fetch-connection-string mystorage12345
Este comando agrega una configuración denominada mystorage12345_STORAGE
al archivo local.settings.json, que contiene la cadena de conexión de la cuenta mystorage12345
. Para obtener más información, vea el comando func azure storage fetch-connection-string
.
Para mejorar la seguridad durante el desarrollo, considere cifrar el archivo local.settings.json.
Carga de la configuración local en Azure
Al publicar los archivos del proyecto en Azure sin usar la opción --publish-local-settings
, la configuración del archivo local.settings.json no se establece en la aplicación de funciones. Siempre puede volver a ejecutar func azure functionapp publish
con la opción --publish-settings-only
para cargar solo la configuración sin volver a publicar los archivos del proyecto.
En el ejemplo siguiente se carga solo la configuración de la colección Values
en el archivo local.settings.json en la aplicación de funciones de Azure denominada myfunctionapp12345
:
func azure functionapp publish myfunctionapp12345 --publish-settings-only
Cifrado del archivo de configuración local
Para mejorar la seguridad de las cadenas de conexión y otros datos valiosos en la configuración local, Core Tools le permite cifrar el archivo local.settings.json. Cuando se cifra este archivo, el tiempo de ejecución descifra automáticamente la configuración cuando es necesario de la misma manera que con la configuración de la aplicación en Azure. También puede descifrar un archivo cifrado localmente para trabajar con la configuración.
Use el siguiente comando para cifrar el archivo de configuración local del proyecto:
func settings encrypt
Use el siguiente comando para descifrar una configuración local cifrada, de modo que pueda trabajar con ella:
func settings decrypt
Cuando el archivo de configuración se cifra y descifra, la configuración IsEncrypted
del archivo también se actualiza.
Configuración de extensiones de enlace
Los desencadenadores y enlaces de Functions se implementan como paquetes (NuGet) con la extensión .NET. Para poder usar una extensión de enlace específica, esa extensión debe instalarse en el proyecto.
Esta sección no se aplica a la versión 1.x del entorno de ejecución de Functions. En la versión 1.x, se han incluido enlaces admitidos en la extensión de producto principal.
Para los proyectos de biblioteca de clases de C#, agregue referencias a los paquetes NuGet específicos para las extensiones de enlace requeridas por las funciones. El proyecto de script de C# (.csx) debe usar agrupaciones de extensiones.
Functions proporciona agrupaciones de extensiones para que sea fácil trabajar con extensiones de enlace en el proyecto. Las agrupaciones de extensiones, que tienen versiones y se definen en el archivo host.json, instalan un conjunto completo de paquetes de extensión de enlace compatibles para la aplicación. El archivo host.json ya debe tener habilitados los conjuntos de extensiones. Si por algún motivo necesita agregar o actualizar la agrupación de extensiones en el archivo host.json, consulte Agrupaciones de extensiones.
Si debe usar una extensión de enlace o una versión de extensión que no está en un lote admitido, debe instalar manualmente las extensiones. Para ver estos escenarios poco frecuentes, consulte el comando func extensions install
.
Versiones de Core Tools
Las versiones principales de Azure Functions Core Tools están vinculadas a las versiones principales específicas del entorno de ejecución de Azure Functions. Por ejemplo, la versión 4.x de Core Tools admite la versión 4.x del entorno de ejecución de Functions. Esta versión es la versión principal recomendada de runtime de Functions y de Core Tools. Puede determinar la versión más reciente de Core Tools en el repositorio de Azure Functions Core Tools.
A partir de la versión 4.0.6517 de Core Tools, los proyectos de modelos en proceso deben hacer referencia a la versión 4.5.0 o posterior de Microsoft.NET.Sdk.Functions
. Si se usa una versión anterior, se producirá un error en el comando func start
.
Ejecute el siguiente comando para determinar la versión de la instalación actual de Core Tools:
func --version
A menos que se indique lo contrario, los ejemplos de este artículo son para la versión 4.x.
Las siguientes consideraciones se aplican a las instalaciones de Core Tools:
Solo puede instalar una versión de Core Tools en un equipo determinado.
Al actualizar a la versión más reciente de Core Tools, debe usar el mismo método que usó en la instalación original para realizar la actualización. Por ejemplo, si usó una MSI en Windows, desinstale la MSI actual e instale el más reciente. O bien, si ha usado npm, vuelva a ejecutar el
npm install command
.Las versiones 2.x y 3.x de Core Tools se usaron con las versiones 2.x y 3.x del entorno de ejecución de Functions, cuyo soporte técnico se terminó. Para más información, consulte Selección de un destino para versiones de runtime de Azure Functions.
- La versión 1.x de Core Tools es necesaria cuando se usa la versión 1.x del entorno de ejecución de Functions, que todavía se admite. Esta versión de Core Tools solo se puede ejecutar localmente en equipos Windows. Si actualmente ejecuta la versión 1.x, debe considerar la posibilidad de migrar la aplicación a la versión 4.x hoy mismo.
Pasos siguientes
Aprenda a desarrollar, probar y publicar funciones de Azure mediante las herramientas principales de Azure Functions. Azure Functions Core Tools es código abierto que se hospeda en GitHub. Para notificar un error o realizar una solicitud de característica, abra un problema de GitHub.