Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 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 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.
- Windows
- macOS
- Linux
En los pasos siguientes se usa un instalador de Windows (MSI) para instalar Core Tools v4.x. Para obtener más información sobre otros instaladores basados en paquetes, consulte el archivo Léame Core Tools.
Descargue y ejecute el instalador de Core Tools, en función de la versión de Windows:
- v4.x - Windows de 64 bits (Recomendado. La depuración de Visual Studio Code requiere 64 bits).
- v4.x: Windows de 32 bits
Si anteriormente utilizó el instalador de Windows (MSI) para instalar Core Tools en Windows, debe desinstalar la versión anterior desde Agregar o quitar programas antes de instalar la versión más reciente.
Sugerencia
Para instalar Core Tools en Subsistema de Windows para Linux (WSL), siga las instrucciones de la pestaña Linux.
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 obtener más información, vea Quickstart: 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 :
- Modelo de trabajo aislado
- Modelo de proceso
func init MyProjFolder --worker-runtime dotnet-isolated
De forma predeterminada, este comando crea un proyecto que se ejecuta en proceso con el host de Functions en la versión actual Long-Term Support (LTS) de .NET Core. Puede usar la opción --target-framework para tener como destino una versión admitida específica de .NET, incluida .NET Framework. Para más información, consulte la referencia de .
Para una comparación entre los dos modelos de proceso de .NET, consulte el artículo de comparación de modelos de proceso.
Java usa un arquetipo de Maven para crear el proyecto local, junto con la primera función desencadenada por HTTP. En lugar de usar y , siga los pasos que se describen en la guía de inicio rápido de la línea de comandos.
- v4
- v3
func init MyProjFolder --worker-runtime javascript --model V4
Este comando crea un proyecto de JavaScript que usa la versión deseada del modelo de programación.
- v4
- v3
func init MyProjFolder --worker-runtime typescript --model V4
Este comando crea un proyecto de TypeScript que usa la versión deseada del modelo de programación.
func init MyProjFolder --worker-runtime powershell
- v2
- v1
func init MyProjFolder --worker-runtime python --model V2
Este comando crea un proyecto de Python que usa la versión del modelo de programación deseada.
Cuando se ejecuta sin la opción , se le pedirá que elija el lenguaje del proyecto. Para obtener más información sobre las opciones disponibles para el comando , consulte la referencia de .
Creación de una función
Para agregar una función al proyecto, ejecute el comando con la opción para seleccionar la plantilla de desencadenador. En el siguiente ejemplo, se crea un desencadenador HTTP denominado :
func new --template "Http Trigger" --name MyHttpTrigger
En este ejemplo se crea un desencadenador de Queue Storage denominado :
func new --template "Azure Queue Storage Trigger" --name MyQueueTrigger
Al agregar funciones deben tenerse en cuenta las consideraciones siguientes:
Cuando se ejecuta sin la opción , se le pedirá que elija una plantilla.
Use el comando para ver la lista completa de plantillas disponibles para su lenguaje.
Al agregar un desencadenador que se conecta a un servicio, también deberá agregar una configuración de aplicación que haga referencia a un 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 específica de enlace en tu proyecto de C#.
Para obtener más información sobre las opciones disponibles para el comando , consulte la referencia de .
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 obtener más información, consulte conceptos de activadores y enlaces 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:
- Proceso aislado
- En proceso
Dado que una función activada por HTTP también devuelve una respuesta HTTP, la función devuelve un objeto , que representa tanto la salida HTTP como la de la cola.
[Function("HttpExample")]
public MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req)
{
Este ejemplo muestra la definición del objeto , que incluye el enlace de salida:
public class MultiResponse
{
[QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
public string[] Messages { get; set; }
public IActionResult HttpResponse { get; set; }
}
En este ejemplo se usa ASP.NET Core integration. Si no usa ASP.NET Core integración, debe cambiar HttpRequest a HttpRequestData y IActionResult a HttpResponseData.
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.
- v4
- v3
const { app, output } = require('@azure/functions');
const sendToQueue = output.storageQueue({
queueName: 'outqueue',
connection: 'AzureWebJobsStorage',
});
app.http('HttpExample', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
extraOutputs: [sendToQueue],
handler: async (request, context) => {
try {
context.log(`Http function processed request for url "${request.url}"`);
const name = request.query.get('name') || (await request.text());
context.log(`Name: ${name}`);
if (name) {
const msg = `Name passed to the function ${name}`;
context.extraOutputs.set(sendToQueue, [msg]);
return { body: msg };
} else {
context.log('Missing required data');
return { status: 404, body: 'Missing required data' };
}
} catch (error) {
context.log(`Error: ${error}`);
return { status: 500, body: 'Internal Server Error' };
}
},
});
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.
- v2
- v1
@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.
- v4
- v3
import {
app,
output,
HttpRequest,
HttpResponseInit,
InvocationContext,
StorageQueueOutput,
} from '@azure/functions';
const sendToQueue: StorageQueueOutput = output.storageQueue({
queueName: 'outqueue',
connection: 'AzureWebJobsStorage',
});
export async function HttpExample(
request: HttpRequest,
context: InvocationContext,
): Promise<HttpResponseInit> {
try {
context.log(`Http function processed request for url "${request.url}"`);
const name = request.query.get('name') || (await request.text());
context.log(`Name: ${name}`);
if (name) {
const msg = `Name passed to the function ${name}`;
context.extraOutputs.set(sendToQueue, [msg]);
return { body: msg };
} else {
context.log('Missing required data');
return { status: 404, body: 'Missing required data' };
}
} catch (error) {
context.log(`Error: ${error}`);
return { status: 500, body: 'Internal Server Error' };
}
}
app.http('HttpExample', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
handler: HttpExample,
});
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 obtener más información, consulte Connect functions to Azure services using bindings.
- 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 a una identidad administrada en el fichero 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 estar instalada cuando la aplicación usa el paquete 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
- Modelo de trabajo aislado
- Modelo de proceso
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
La forma en que se cargan las funciones depende de la configuración del proyecto. Para más información, consulte Registro de una función.
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 . Para más información, consulte Nivel de autorización. Puede usar la opción para requerir autorización al ejecutarse localmente. Para obtener más información, consulte:
Puede usar el emulador de Azurite local cuando se ejecutan localmente funciones que requieren acceso a 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 local de Azurite para cumplir el requisito de almacenamiento del trabajador 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 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 la terminal o la línea de comandos. Puede usar una herramienta de su elección para enviar solicitudes HTTP al servidor local. La herramienta cURL está disponible de forma predeterminada en sistemas basados en Linux y Windows 10 compilación 17063 y versiones posteriores. En Windows anteriores, primero debe descargar e instalar la herramienta cURL.
- desencadenador HTTP
- Desencadenador no HTTP
- Desencadenador de Event Grid
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, es el nombre de la función o ruta y es el puerto local en el que func.exe escucha.
Por ejemplo, este comando cURL activa la función de inicio rápido desde una solicitud GET con el parámetro name pasado en la cadena de consulta.
curl --get http://localhost:7071/api/MyHttpTrigger?name=Azure%20Rocks
Este ejemplo muestra la misma función invocada desde una solicitud POST que pasa name en el cuerpo de la solicitud, y se muestra para ambos, 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 navegador pasando 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
Core Tools de Azure Functions 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 el CLI de Azure o Azure PowerShell instalado localmente para poder publicar 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 en los comandos de implementación.
Implementación de los archivos de proyecto
Para publicar el 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 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 para 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, se crean recursos de Azure durante la implementación inicial basada en la configuración de su archivo pom.xml. Para obtener más información, consulte Deploy the function project to 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.
Ya debe haber creado una aplicación para funciones en su 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 funciones desde el símbolo del sistema o la ventana de terminal mediante el CLI de Azure o Azure PowerShell, consulte CLI de Azure Samples. También puede crear estos recursos en el portal de Azure. Recibirá un error si intenta publicar en un 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 .
En proyectos compilados se lleva a cabo una compilación remota. Esta acción se puede controlar usando la opción .
Use la opción 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 opción .
Despliegue de contenedores
Core Tools permite implementar la aplicación de funciones containerized tanto en entornos de Azure Container Apps administrados como en clústeres de Kubernetes que administra.
- Aplicaciones de contenedores
- Clúster de Kubernetes
Use el siguiente comando 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 cadena de conexión de la cuenta de almacenamiento que proporcione se utiliza en la aplicación de funciones implementada.
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 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 obtener más información, consulte el alojamiento de Azure Functions en Azure Container Apps.
Trabajar localmente con la configuración de la aplicación
Cuando la aplicación de funciones se ejecuta en Azure, la configuración necesaria para tus funciones se almacena cifrada en la configuración de la aplicación. Durante el desarrollo local, estas configuraciones se agregan a la colección en el archivo local.settings.json. El archivo local.settings.json también almacena la configuración que usan las herramientas de desarrollo local.
Los elementos de la colección Values del archivo local.settings.json de tu proyecto están diseñados para reflejar elementos en la configuración de la aplicación de tu función 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 forma predeterminada, la configuración local no se migra automáticamente cuando el proyecto se publica en Azure. Use la opción
--publish-local-settingsal publicar los archivos del proyecto para asegurarse de que esta configuración se agrega a la aplicación de funciones en Azure. Los valores de la sección no se publican nunca. También puede cargar la configuración desde el archivo local.settings.json en cualquier momento.Puede descargar y sobrescribir las configuraciones de su archivo local.settings.json con las configuraciones de su 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 funciones 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 funciones 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 funciones 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 funciones 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 funciones 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 una cadena de conexión de almacenamiento válida para
AzureWebJobsStoragey no se usa un emulador de almacenamiento local, se muestra un error. Puede usar Core Tools para descargar una cadena de conexión específica desde cualquiera de sus cuentas de almacenamiento de Azure.
Descargar la configuración de la aplicación
En la raíz del proyecto, use el comando siguiente 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 .
Descargar una cadena de conexión de almacenamiento
Core Tools también facilita la obtención del cadena de conexión de cualquier cuenta de almacenamiento a la que tenga acceso. En la raíz del proyecto, use el comando siguiente para descargar el cadena de conexión desde una cuenta de almacenamiento denominada mystorage12345.
func azure storage fetch-connection-string mystorage12345
Este comando agrega un valor denominado mystorage12345_STORAGE al archivo local.settings.json, que contiene el cadena de conexión de la cuenta de mystorage12345. Para obtener más información, vea el comando .
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 con la opción para cargar solo la configuración sin volver a publicar los archivos del proyecto.
En el ejemplo siguiente se cargan solo los ajustes de la colección Values del 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 lo hace 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 del archivo también se actualiza.
Configuración de extensiones de enlace
Funciones, los desencadenadores y los enlaces se implementan como paquetes de extensión de .NET (NuGet). 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 .
Versiones de Core Tools
Las versiones principales de Azure Functions Core Tools están vinculadas a 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 Azure Functions Core Tools.
a partir de la versión 4.0.6517 de Core Tools, los proyectos de modelo en proceso deben hacer referencia a version 4.5.0 o posterior de Microsoft.NET.Sdk.Functions. Si se usa una versión anterior, se producirá un error en el comando .
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 la más reciente. O bien, si ha usado npm, vuelva a ejecutar el .
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 obtener más información, consulte la descripción general de las versiones del tiempo de ejecución 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 se código abierto y se hospeda en GitHub. Para reportar un error o una solicitud de función, abre un problema de GitHub.