Aggiungere ed eseguire un codice personalizzato per le app per la logica di Azure tramite Funzioni di AzureAdd and run custom code for logic apps through Azure Functions

Per eseguire frammenti di codice personalizzati di C# o Node.js nelle app per la logica, è possibile creare funzioni personalizzate mediante Funzioni di Azure.To run custom snippets of C# or node.js in logic apps, you can create custom functions through Azure Functions. Le Funzioni di Azure offrono funzionalità di calcolo indipendenti dal server in Microsoft Azure e sono utili per eseguire queste attività:Azure Functions offers server-free computing in Microsoft Azure and are useful for performing these tasks:

  • Formattazione avanzata o calcolo di campi nelle app per la logicaAdvanced formatting or compute of fields in logic apps
  • Esecuzione di calcoli in un flusso di lavoro.Perform calculations in a workflow.
  • Estensione della funzionalità delle app per la logica con funzioni supportate in C# o node.jsExtend the logic app functionality with functions that are supported in C# or node.js

Creare funzioni personalizzate per le app per la logicaCreate custom functions for your logic apps

È consigliabile creare una funzione nel portale Funzioni di Azure dai modelli Generic Webhook - Node (Webhook generico - Node) o Generic Webhook - C# (Webhook generico - C#).We recommend that you create a function in the Azure Functions portal, from the Generic Webhook - Node or Generic Webhook - C# templates. Il risultato crea un modello popolato automaticamente che accetta application/json da un'app per la logica.The result creates an auto-populated a template that accepts application/json from a logic app. Le funzioni che vengono create da questi modelli sono individuate automaticamente ed elencate nella finestra di progettazione delle app per la logica in Funzioni di Azure nell'area.Functions that you create from these templates are automatically detected and appear in the Logic App Designer under Azure Functions in my region.

Nel portale di Azure, nel riquadro Integrazione per la funzione il modello deve visualizzare Modalità impostata su Webhook e Tipo di webhook impostato su Generic JSON (JSON generico).In the Azure portal, on the Integrate pane for your function, your template should show that Mode set to Webhook and Webhook type is set to Generic JSON.

Le funzioni webhook accettano una richiesta e la passano al metodo tramite una variabile data .Webhook functions accept a request and pass it into the method via a data variable. È possibile accedere alle proprietà del payload usando una notazione punto come data.function-name.You can access the properties of your payload by using dot notation like data.function-name. Ad esempio, una semplice funzione JavaScript che converte un valore DateTime in una stringa di dati ha un aspetto simile a quello dell'esempio seguente:For example, a simple JavaScript function that converts a DateTime value into a date string looks like the following example:

function start(req, res){
    var data = req.body;
    res = {
        body: data.date.ToDateString();
    }
}

Chiamare Funzioni di Azure da app per la logicaCall Azure Functions from logic apps

Per elencare i contenitori nella sottoscrizione e selezionare la funzione che si desidera chiamare, in Progettazione app per la logica fare clic sul menu Azionie scegliere da Azure Functions in my Region (Funzioni di Azure nella mia area).To list the containers in your subscription and select the function that you want to call, in Logic App Designer, click the Actions menu, and select from Azure Functions in my Region.

Dopo la selezione della funzione, viene richiesto di specificare un oggetto payload di input.After you select the function, you are asked to specify an input payload object. Questo oggetto è il messaggio inviato dall'app per la logica alla funzione e deve essere un oggetto JSON.This object is the message that the logic app sends to the function and must be a JSON object. Se ad esempio si vuole passare la Data ultima modifica da un trigger Salesforce, il payload della funzione potrebbe avere un aspetto analogo all'esempio seguente:For example, if you want to pass in the Last Modified date from a Salesforce trigger, the function payload might look like this example:

Data ultima modifica

Attivare app per la logica da una funzioneTrigger logic apps from a function

È possibile attivare un'app per la logica all'interno di una funzione.You can trigger a logic app from inside a function. Vedere App per la logica come endpoint che è possibile chiamare.See Logic apps as callable endpoints. Creare un'app per la logica dotata di trigger manuale, quindi dall'interno della funzione generare un HTTP POST all'URL del trigger manuale con il payload che da inviare all'app per la logica.Create a logic app that has a manual trigger, then from inside your function, generate an HTTP POST to the manual trigger URL with the payload that you want sent to the logic app.

Creare una funzione dalla finestra di progettazione delle app per la logicaCreate a function from Logic App Designer

È anche possibile creare una funzione webhook node.js dalla finestra di progettazione.You can also create a node.js webhook function from the designer. Selezionare prima di tutto Funzioni di Azure nell'area , quindi scegliere un contenitore per la funzione.First, select Azure Functions in my Region, and then choose a container for your function. Se non è ancora disponibile un contenitore, è necessario crearne uno dal portale delle funzioni di Azure.If you don't yet have a container, you need to create one from the Azure Functions portal. Selezionare quindi Crea nuovo.Then select Create New.

Per generare un modello in base ai dati da elaborare, specificare l'oggetto di contesto che si prevede di passare a una funzione.To generate a template based on the data that you want to compute, specify the context object that you plan to pass into a function. Deve trattarsi di un oggetto JSON.This object must be a JSON object. Se, ad esempio, si passa il contenuto del file da un'azione FTP, il payload di contesto è simile all'esempio seguente:For example, if you pass in the file content from an FTP action, the context payload looks like this example:

Payload di contesto

Nota

Poiché non è stato eseguito il cast per convertire questo oggetto in stringa, il contenuto viene aggiunto direttamente al payload JSON.Because this object wasn't cast as a string, the content is added directly to the JSON payload. Viene tuttavia generato un errore se l'oggetto non è un token JSON, ad esempio una stringa o un oggetto/matrice JSON.However, an error occurs if the object is not a JSON token (that is, a string or a JSON object/array). Per eseguire il cast come stringa, aggiungere le virgolette, come mostrato nella prima figura di questo articolo.To cast the object as a string, add quotes as shown in the first illustration in this article.

La finestra di progettazione genera quindi un modello di funzione che è possibile creare inline.The designer then generates a function template that you can create inline. Le variabili vengono create prima in base al contesto che si intende passare alla funzione.Variables are pre-created based on the context that you plan to pass into the function.