Aggiornamenti dello schema per App per la logica di Azure: 1° giugno 2016

La nuova versione dello schema e dell'API per App per la logica di Azure include importanti miglioramenti che rendono le app per la logica più affidabili e facili da usare:

  • Gli ambiti consentono di raggruppare o annidare le azioni come una raccolta di azioni.
  • Condizioni e cicli sono ora azioni di prima classe.
  • La proprietà runAfter, che sostituisce dependsOn, consente di ordinare con maggiore precisione l'esecuzione delle azioni.

Per aggiornare le app per la logica dallo schema di anteprima del 1° agosto 2015 allo schema del 1° giugno 2016, vedere la sezione relativa all'aggiornamento.

Ambiti

Questo schema include gli ambiti, che consentono di raggruppare le azioni o annidarle all'interno di altre. Una condizione, ad esempio, può contenere un'altra condizione. Vedere altre informazioni sulla sintassi degli ambiti oppure esaminare questo esempio di ambito di base:

{
    "actions": {
        "My_Scope": {
            "type": "scope",
            "actions": {                
                "Http": {
                    "inputs": {
                        "method": "GET",
                        "uri": "http://www.bing.com"
                    },
                    "runAfter": {},
                    "type": "Http"
                }
            }
        }
    }
}

Modifiche di condizioni e cicli

Nelle versioni precedenti dello schema, le condizioni e i cicli sono parametri associati a una singola azione. In questo schema è stata rimossa questa limitazione e le condizioni e i cicli sono disponibili come tipi di azione. Vedere altre informazioni su cicli e ambiti oppure esaminare questo esempio di base di un'azione condizione:

{
    "If_trigger_is_some-trigger": {
        "type": "If",
        "expression": "@equals(triggerBody(), 'some-trigger')",
        "runAfter": { },
        "actions": {
            "Http_2": {
                "inputs": {
                    "method": "GET",
                    "uri": "http://www.bing.com"
                },
                "runAfter": {},
                "type": "Http"
            }
        },
        "else": 
        {
            "if_trigger_is_another-trigger": "..."
        }      
    }
}

Proprietà "runAfter"

La proprietà runAfter sostituisce dependsOn, offrendo maggiore precisione quando si specifica l'ordine di esecuzione delle azioni in base allo stato di azioni precedenti.

La proprietà dependsOn indica l'esecuzione riuscita dell'azione, indipendentemente dal numero di volte che si vuole eseguire un'azione a seconda che la precedente sia riuscita, abbia avuto esito negativo o sia stata ignorata. La proprietà runAfter offre tale flessibilità in quanto oggetto che specifica tutti nomi delle azioni dopo cui viene eseguito. Questa proprietà definisce anche una matrice degli stati accettabili come trigger. Per impostare l'esecuzione dopo l'esito positivo del passaggio A e dopo l'esito positivo o negativo del passaggio B, ad esempio, si costruisce questa proprietà runAfter:

{
    "...",
    "runAfter": {
        "A": ["Succeeded"],
        "B": ["Succeeded", "Failed"]
    }
}

Aggiornare lo schema

L'aggiornamento al nuovo schema richiede pochi passaggi. Il processo di aggiornamento include l'esecuzione dello script di aggiornamento, il salvataggio come nuova app per la logica ed eventualmente, se necessario, la sovrascrittura dell'app per la logica precedente.

  1. Nel portale di Azure aprire l'app per la logica.

  2. Passare a Panoramica. Sulla barra degli strumenti dell'app per la logica scegliere Aggiorna schema.

    Scegliere Aggiorna schema

    Verrà restituita la definizione aggiornata, che è possibile copiare e incollare in una definizione di risorsa, se necessario. È tuttavia altamente consigliabile scegliere Salva con nome per assicurarsi che tutti i riferimenti alla connessione siano validi nell'app per la logica aggiornata.

  3. Sulla barra degli strumenti del pannello per l'aggiornamento scegliere Salva con nome.

  4. Immettere il nome logico e lo stato. Per distribuire l'app per la logica aggiornata, scegliere Crea.

  5. Verificare che l'app per la logica aggiornata funzioni come previsto.

    Nota

    Se si usa un trigger manuale o di richiesta, l'URL di callback viene modificato nella nuova app per la logica. Testare il nuovo URL per verificare il funzionamento dell'esperienza end-to-end. Per mantenere gli URL precedenti, è possibile clonare l'app per la logica esistente.

  6. Facoltativo Per sovrascrivere l'app per la logica precedente con la nuova versione dello schema, sulla barra degli strumenti scegliere Clona accanto ad Aggiorna schema. Questo passaggio è necessario solo se si vuole mantenere lo stesso ID risorsa o lo stesso URL del trigger di richiesta dell'app per la logica.

Note sullo strumento di aggiornamento

Mapping delle condizioni

Nella definizione aggiornata, lo strumento tenta di raggruppare le azioni dei rami true e false in un ambito. In particolare, il modello di progettazione @equals(actions('a').status, 'Skipped') verrà visualizzato come un'azione else. Se lo strumento rileva modelli non riconoscibili, tuttavia, potrebbe creare condizioni separate per i rami true e false. Se necessario, è possibile modificare il mapping delle azioni dopo l'aggiornamento.

Ciclo "foreach" con condizione

Nel nuovo schema, è possibile usare l'azione di filtro per replicare il modello di un ciclo foreach con una condizione per elemento, ma questa modifica dovrebbe essere eseguita automaticamente durante l'aggiornamento. La condizione diventa un'azione di filtro prima del ciclo foreach per restituire solo una matrice di elementi che soddisfano la condizione e tale matrice viene passata nell'azione foreach. Per un esempio, vedere l'articolo relativo a cicli e ambiti.

Tag delle risorse

Dopo l'aggiornamento, i tag delle risorse vengono rimossi. È quindi necessario reimpostarli per il flusso di lavoro aggiornato.

Altre modifiche

Ridenominazione del trigger "manual" in "request"

Il tipo di trigger manual è deprecato ed è stato rinominato request con tipo http. Questa modifica offre maggiore coerenza per la tipologia di modello creata con il trigger.

Nuova azione "filtro"

Per filtrare una matrice di grandi dimensioni in modo da ottenere un set ridotto di elementi, il nuovo tipo filter accetta una matrice e una condizione, valuta la condizione per ogni elemento e restituisce una matrice con gli elementi che soddisfano la condizione.

Restrizioni per le azioni "foreach" e "until"

I cicli foreach e until sono limitati a una singola azione.

Nuova proprietà "trackedProperties" per le azioni

Le azioni possono ora includere una proprietà aggiuntiva denominata trackedProperties, di pari livello rispetto alle proprietà runAfter e type. Questo oggetto specifica determinati input o output delle azioni da includere nei dati di telemetria di Diagnostica di Azure generati come parte di un flusso di lavoro, ad esempio:

{                
    "Http": {
        "inputs": {
            "method": "GET",
            "uri": "http://www.bing.com"
        },
        "runAfter": {},
        "type": "Http",
        "trackedProperties": {
            "responseCode": "@action().outputs.statusCode",
            "uri": "@action().inputs.uri"
        }
    }
}

Passaggi successivi