Binding di tabelle esterne in Funzioni di Azure (Anteprima)Azure Functions External Table binding (Preview)

Questo articolo illustra come gestire i dati tabulari sul provider SaaS (ad esempio, Sharepoint, Dynamics) all'interno della funzione con binding incorporati.This article shows how to manipulate tabular data on SaaS providers (e.g. Sharepoint, Dynamics) within your function with built-in bindings. Funzioni di Azure supporta i binding di input e output per le tabelle esterne.Azure Functions supports input, and output bindings for external tables.

Informazioni di riferimento per gli sviluppatori delle Funzioni di Azure.This is reference information for Azure Functions developers. Se non si ha familiarità con le Funzioni di Azure, iniziare con le seguenti risorse:If you're new to Azure Functions, start with the following resources:

Connessioni APIAPI Connections

I binding di tabella usano connessioni API esterne per l'autenticazione con i provider SaaS di terzi.Table bindings leverage external API connections to authenticate with 3rd party SaaS providers.

Quando si assegna un binding è possibile creare una nuova connessione API o usare una connessione API esistente nello stesso gruppo di risorseWhen assigning a binding you can either create a new API connection or use an existing API connection within the same resource group

Connessioni API supportate (Tabella)Supported API Connections (Table)s

ConnettoreConnector TriggerTrigger InputInput OutputOutput
DB2DB2 xx xx
Dynamics 365 for OperationsDynamics 365 for Operations xx xx
Dynamics 365Dynamics 365 xx xx
Dynamics NAVDynamics NAV xx xx
Fogli GoogleGoogle Sheets xx xx
InformixInformix xx xx
Dynamics 365 for FinancialsDynamics 365 for Financials xx xx
MySQLMySQL xx xx
Oracle DatabaseOracle Database xx xx
Common Data ServiceCommon Data Service xx xx
SalesforceSalesforce xx xx
SharePointSharePoint xx xx
SQL ServerSQL Server xx xx
TeradataTeradata xx xx
UserVoiceUserVoice xx xx
ZendeskZendesk xx xx

Nota

È possibile usare le connessioni alle tabelle esterne anche nelle App per la logica di AzureExternal Table connections can also be used in Azure Logic Apps

Creazione di una connessione API: procedura dettagliataCreating an API connection: step by step

  1. Creare una funzione > funzione personalizzata Creare una funzione personalizzataCreate a function > custom function Create a custom function
  2. Modello scenario Experimental > ExternalTable-CSharp > Creare un nuovo External Table connection Scegliere il modello di input tabellaScenario Experimental > ExternalTable-CSharp template > Create a new External Table connection Choose table input template
  3. Scegliere il provider SaaS > scegliere o creare una connessione Configurare una connessione SaaSChoose your SaaS provider > choose/create a connection Configure SaaS connection
  4. Selezionare la connessione API > creare la funzione funzione Crea tabellaSelect your API connection > create the function Create table function
  5. Selezionare Integrate > External TableSelect Integrate > External Table
    1. Configurare la connessione per usare la tabella di destinazione.Configure the connection to use your target table. Queste impostazioni variano tra i provider SaaS.These settings will very between SaaS providers. Sono indicate qui di seguito in impostazioni dell'origine dati Configura tabellaThey are outline below in data source settings Configure table

UtilizzoUsage

Questo esempio si connette a una tabella denominata "Contatto" con le colonne Id, LastName e FirstName.This example connects to a table named "Contact" with Id, LastName, and FirstName columns. Il codice elenca le entità Contatto nella tabella e registra i nomi e i cognomi.The code lists the Contact entities in the table and logs the first and last names.

AssociazioniBindings

{
  "bindings": [
    {
      "type": "manualTrigger",
      "direction": "in",
      "name": "input"
    },
    {
      "type": "apiHubTable",
      "direction": "in",
      "name": "table",
      "connection": "ConnectionAppSettingsKey",
      "dataSetName": "default",
      "tableName": "Contact",
      "entityId": "",
    }
  ],
  "disabled": false
}

entityId deve essere vuoto per i binding di tabella.entityId must be empty for table bindings.

ConnectionAppSettingsKey identifica l'impostazione dell'app che memorizza la stringa di connessione dell'API.ConnectionAppSettingsKey identifies the app setting that stores the API connection string. L'impostazione dell'app viene creata automaticamente quando si aggiunge una connessione API nell'interfaccia utente integrata.The app setting is created automatically when you add an API connection in the integrate UI.

Un connettore tabulare fornisce set di dati e ogni set di dati contiene tabelle.A tabular connector provides data sets, and each data set contains tables. Il nome del set di dati predefinito è "default".The name of the default data set is “default.” I titoli di un set di dati e di una tabella in diversi provider SaaS sono elencati di seguito:The titles for a dataset and a table in various SaaS providers are listed below:

ConnettoreConnector Set di datiDataset TabellaTable
SharePointSharePoint SitoSite Elenco SharePointSharePoint List
SQLSQL DatabaseDatabase TabellaTable
Fogli GoogleGoogle Sheet Foglio di calcoloSpreadsheet Foglio di lavoroWorksheet
ExcelExcel File di ExcelExcel file FoglioSheet

Utilizzo in C#Usage in C#

#r "Microsoft.Azure.ApiHub.Sdk"
#r "Newtonsoft.Json"

using System;
using Microsoft.Azure.ApiHub;

//Variable name must match column type
//Variable type is dynamically bound to the incoming data
public class Contact
{
    public string Id { get; set; }
    public string LastName { get; set; }
    public string FirstName { get; set; }
}

public static async Task Run(string input, ITable<Contact> table, TraceWriter log)
{
    //Iterate over every value in the source table
    ContinuationToken continuationToken = null;
    do
    {   
        //retreive table values
        var contactsSegment = await table.ListEntitiesAsync(
            continuationToken: continuationToken);

        foreach (var contact in contactsSegment.Items)
        {   
            log.Info(string.Format("{0} {1}", contact.FirstName, contact.LastName));
        }

        continuationToken = contactsSegment.ContinuationToken;
    }
    while (continuationToken != null);
}

<!--

Usage in Node.js

module.exports = function(context) {
    context.log('Node.js Queue trigger function processed', context.bindings.myQueueItem);
    context.bindings.myOutputFile = context.bindings.myInputFile;
    context.done();
};

-->

Impostazioni dell'origine dati

<!--

Usage in Node.js

module.exports = function(context) {
    context.log('Node.js Queue trigger function processed', context.bindings.myQueueItem);
    context.bindings.myOutputFile = context.bindings.myInputFile;
    context.done();
};

-->

Data Source Settings

SQL ServerSQL Server

Lo script per creare e popolare la tabella Contact è qui di seguito.The script to create and populate the Contact table is below. dataSetName è "default".dataSetName is “default.”

CREATE TABLE Contact
(
    Id int NOT NULL,
    LastName varchar(20) NOT NULL,
    FirstName varchar(20) NOT NULL,
    CONSTRAINT PK_Contact_Id PRIMARY KEY (Id)
)
GO
INSERT INTO Contact(Id, LastName, FirstName)
     VALUES (1, 'Bitt', 'Prad') 
GO
INSERT INTO Contact(Id, LastName, FirstName)
     VALUES (2, 'Glooney', 'Ceorge') 
GO

Fogli GoogleGoogle Sheets

In Documenti Google, creare un foglio di calcolo con un foglio di lavoro denominato Contact.In Google Docs, create a spreadsheet with a worksheet named Contact. Il connettore non può usare il nome visualizzato del foglio di calcolo.The connector cannot use the spreadsheet display name. Il nome interno (in grassetto) deve essere usato come dataSetName, ad esempio: docs.google.com/spreadsheets/d/1UIz545JF_cx6Chm_5HpSPVOenU4DZh4bDxbFgJOSMz0 Aggiungere i nomi di colonna Id, LastName, FirstName alla prima riga, quindi inserire dati nelle righe successive.The internal name (in bold) needs to be used as dataSetName, for example: docs.google.com/spreadsheets/d/1UIz545JF_cx6Chm_5HpSPVOenU4DZh4bDxbFgJOSMz0 Add the column names Id, LastName, FirstName to the first row, then populate data on subsequent rows.

SalesforceSalesforce

dataSetName è "default".dataSetName is “default.”

Passaggi successiviNext steps