Aggiornare lo schema per il linguaggio di definizione del flusso di lavoro in App per la logica di Azure - 1 giugno 2016

Si applica a: App per la logica di Azure (consumo)

La versione più recente dello schema del linguaggio di definizione del flusso di lavoro giugno-01-2016 e API per App per la logica di Azure include miglioramenti chiave che rendono i flussi di lavoro dell'app per la logica di consumo più affidabili e più facili da usare:

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

Per aggiornare le definizioni del flusso di lavoro meno recenti allo schema corrente, vedere Aggiornare lo schema.

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": {
      "Scope": {
         "type": "Scope",
         "actions": {
            "Http": {
               "inputs": {
                   "method": "GET",
                   "uri": "https://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 ora disponibili come tipi di azione. Vedere altre informazioni su cicli e ambiti, condizioni oppure esaminare questo esempio di base di un'azione condizione:

{
   "Condition - If trigger is some trigger": {
      "type": "If",
      "expression": "@equals(triggerBody(), '<trigger-name>')",
      "runAfter": {},
      "actions": {
         "Http_2": {
            "inputs": {
                "method": "GET",
                "uri": "https://www.bing.com"
            },
            "runAfter": {},
            "type": "Http"
         }
      },
      "else": 
      {
         "Condition - 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 se "l'azione è stata eseguita e ha avuto esito positivo", in base a se l'azione precedente ha avuto esito positivo, non è riuscita, oppure è stata ignorata. Non indica il numero di volte che si desiderava eseguire l'azione. La proprietà runAfter offre 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 ad esempio l'esecuzione dopo l'esito positivo dell'azione A e dopo l'esito positivo o negativo dell'azione B, ad esempio, impostare la proprietà runAfter:

{
   // Other parts in action definition
   "runAfter": {
      "A": ["Succeeded"],
      "B": ["Succeeded", "Failed"]
    }
}

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 fino a un set di elementi più piccolo, il filter tipo accetta una matrice e una condizione, valuta la condizione per ogni elemento e restituisce una matrice con elementi che soddisfano la condizione.

Restrizioni per le azioni "foreach" e "until"

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

'trackedProperties' per le azioni

Le azioni hanno una proprietà aggiuntiva denominata trackedProperties, ovvero un elemento di pari livello alle runAfter proprietà e type . Questo oggetto specifica determinati input o output di azione che si desidera includere nei dati di telemetria di diagnostica di Azure, generati come parte di un flusso di lavoro, ad esempio:

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

Aggiornare lo schema

Se si dispone di un flusso di lavoro dell'app per la logica di consumo che usa uno schema precedente del linguaggio di definizione del flusso di lavoro, è possibile aggiornare il flusso di lavoro per usare lo schema più recente. Questa funzionalità si applica solo ai flussi di lavoro dell'app per la logica di consumo. Per eseguire l'aggiornamento allo schema più recente, sono necessari solo pochi passaggi. Il processo di aggiornamento include l'esecuzione dello script di aggiornamento, il salvataggio del flusso di lavoro dell'app per la logica originale come nuovo flusso di lavoro dell'app per la logica di consumo e, se si vuole, sovrascrivere il flusso di lavoro dell'app per la logica originale.

Procedure consigliate

L'elenco seguente include alcune procedure consigliate per aggiornare il flusso di lavoro dell'app per la logica allo schema più recente:

  • Non sovrascrivere il flusso di lavoro originale fino al termine del test e verificare che il flusso di lavoro aggiornato funzioni come previsto.

  • Copiare lo script aggiornato in un nuovo flusso di lavoro dell'app per la logica.

  • Testare il flusso di lavoro prima della distribuzione in produzione.

  • Al termine e confermare una migrazione riuscita, aggiornare i flussi di lavoro dell'app per la logica per usare le versioni più recenti per i connettori gestiti in App per la logica di Azure, dove possibile. Ad esempio, sostituire le versioni precedenti del connettore Dropbox con la versione più recente.

Aggiornare lo schema del flusso di lavoro

Quando si seleziona l'opzione per aggiornare lo schema, App per la logica di Azure esegue automaticamente i passaggi di migrazione e fornisce l'output del codice. È possibile usare questo output per aggiornare la definizione del flusso di lavoro. Tuttavia, prima di aggiornare la definizione del flusso di lavoro usando questo output, assicurarsi di esaminare e seguire le procedure consigliate come descritto nella sezione Procedure consigliate .

  1. Nella portale di Azure aprire la risorsa dell'app per la logica di consumo.

  2. Nel menu delle risorse dell'app per la logica selezionare Panoramica. Sulla barra degli strumenti selezionare Aggiorna schema.

    Nota

    Se il comando Aggiorna schema non è disponibile, il flusso di lavoro usa già lo schema corrente.

    Screenshot che mostra portale di Azure, risorsa dell'app per la logica di consumo, pagina Panoramica e comando Aggiorna schema selezionato.

    Viene aperto il riquadro Aggiorna schema e viene visualizzato un collegamento a un documento che descrive i miglioramenti dello schema corrente. È possibile copiare e incollare la definizione del flusso di lavoro restituita, che è possibile copiare e incollare nella definizione della risorsa dell'app per la logica, se necessario.

  3. Nella barra degli strumenti del riquadro di aggiornamento selezionare Salva con nome in modo che tutti i riferimenti alla connessione rimangano validi nella definizione del flusso di lavoro dell'app per la logica aggiornata.

  4. Specificare un nome per il flusso di lavoro dell'app per la logica e immettere lo stato.

  5. Per distribuire il flusso di lavoro dell'app per la logica aggiornata, selezionare Crea. Verificare che l'app per la logica aggiornata funzioni come previsto.

    Importante

    Se il flusso di lavoro usa un trigger Request (precedentemente denominato "manuale"), l'URL di callback cambia per questo trigger nel flusso di lavoro aggiornato. Testare il nuovo URL di callback per assicurarsi che l'esperienza end-to-end funzioni. Per mantenere gli URL precedenti, è possibile clonare il flusso di lavoro dell'app per la logica esistente.

  6. Facoltativo: per sovrascrivere il flusso di lavoro dell'app per la logica originale con la versione aggiornata, sulla barra degli strumenti, accanto a Aggiorna schema selezionare Clona.

    Questo passaggio è necessario solo se si desidera mantenere lo stesso ID risorsa o l'URL di callback del trigger richiesta per il flusso di lavoro dell'app per la logica.

Note sullo strumento di aggiornamento

Tag delle risorse

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

Mapping delle condizioni

Nella definizione del flusso di lavoro aggiornato, lo strumento fa il massimo sforzo per raggruppare le azioni true e false di ramo insieme come 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

Nello schema aggiornato è possibile usare l'azione filtro per replicare il modello che usa un ciclo For ogni con una condizione per ogni elemento. Tuttavia, la modifica avviene automaticamente quando esegue l'aggiornamento. La condizione diventa un'azione di filtro che appare prima del ciclo For each per restituire solo una matrice di elementi che soddisfano la condizione e passare tale matrice all'azione For each. Per un esempio, vedere l'articolo relativo a cicli e ambiti.

Passaggi successivi