Associazioni di Archiviazione tabelle di Azure per Funzioni di AzureAzure Table storage bindings for Azure Functions

Questo articolo illustra come operare con le associazioni dell'archiviazione tabelle di Azure in Funzioni di Azure.This article explains how to work with Azure Table storage bindings in Azure Functions. Funzioni di Azure supporta le associazioni di input e output per l'archiviazione tabelle di Azure.Azure Functions supports input and output bindings for Azure Table storage.

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:

InputInput

Usare l'associazione di input dell'archiviazione tabelle di Azure per leggere una tabella in un account di archiviazione di Azure.Use the Azure Table storage input binding to read a table in an Azure Storage account.

Input - esempioInput - example

Vedere l'esempio specifico per ciascun linguaggio:See the language-specific example:

Input - esempio in C# 1Input - C# example 1

L'esempio seguente illustra codice C# precompilato che legge una singola riga della tabella.The following example shows precompiled C# code that reads a single table row.

Il valore della chiave della riga "{queueTrigger}" indica che la chiave della riga proviene dalla stringa di messaggio della coda.The row key value "{queueTrigger}" indicates that the row key comes from the queue message string.

public class TableStorage
{
    public class MyPoco
    {
        public string PartitionKey { get; set; }
        public string RowKey { get; set; }
        public string Text { get; set; }
    }

    [FunctionName("TableInput")]
    public static void TableInput(
        [QueueTrigger("table-items")] string input, 
        [Table("MyTable", "MyPartition", "{queueTrigger}")] MyPoco poco, 
        TraceWriter log)
    {
        log.Info($"PK={poco.PartitionKey}, RK={poco.RowKey}, Text={poco.Text}";
    }
}

Input - esempio in C# 2Input - C# example 2

L'esempio seguente illustra codice C# precompilato che legge più righe della tabella.The following example shows precompiled C# code that reads multiple table rows. Si noti che la classe MyPoco deriva da TableEntity.Note that the MyPoco class derives from TableEntity.

public class TableStorage
{
    public class MyPoco : TableEntity
    {
        public string Text { get; set; }
    }

    [FunctionName("TableInput")]
    public static void TableInput(
        [QueueTrigger("table-items")] string input, 
        [Table("MyTable", "MyPartition")] IQueryable<MyPoco> pocos, 
        TraceWriter log)
    {
        foreach (MyPoco poco in pocos)
        {
            log.Info($"PK={poco.PartitionKey}, RK={poco.RowKey}, Text={poco.Text}";
        }
    }
}

Input - esempio di script C# 1Input - C# script example 1

L'esempio seguente illustra un'associazione di input della tabella in un file function.json e codice script C# che usa l'associazione.The following example shows a table input binding in a function.json file and C# script code that uses the binding. La funzione usa un trigger della coda per leggere una riga della tabella.The function uses a queue trigger to read a single table row.

Il file function.json specifica partitionKey e rowKey.The function.json file specifies a partitionKey and a rowKey. Il valore rowKey "{queueTrigger}" indica che la chiave della riga proviene dalla stringa di messaggio della coda.The rowKey value "{queueTrigger}" indicates that the row key comes from the queue message string.

{
  "bindings": [
    {
      "queueName": "myqueue-items",
      "connection": "MyStorageConnectionAppSetting",
      "name": "myQueueItem",
      "type": "queueTrigger",
      "direction": "in"
    },
    {
      "name": "personEntity",
      "type": "table",
      "tableName": "Person",
      "partitionKey": "Test",
      "rowKey": "{queueTrigger}",
      "connection": "MyStorageConnectionAppSetting",
      "direction": "in"
    }
  ],
  "disabled": false
}

Queste proprietà sono descritte nella sezione configuration.The configuration section explains these properties.

Ecco il codice script C#:Here's the C# script code:

public static void Run(string myQueueItem, Person personEntity, TraceWriter log)
{
    log.Info($"C# Queue trigger function processed: {myQueueItem}");
    log.Info($"Name in Person entity: {personEntity.Name}");
}

public class Person
{
    public string PartitionKey { get; set; }
    public string RowKey { get; set; }
    public string Name { get; set; }
}

Input - esempio di script C# 2Input - C# script example 2

L'esempio seguente illustra un'associazione di input della tabella in un file function.json e codice script C# che usa l'associazione.The following example shows a table input binding in a function.json file and C# script code that uses the binding. La funzione legge le entità per una chiave di partizione specificata in un messaggio della coda.The function reads entities for a partition key that is specified in a queue message.

Ecco il file function.json:Here's the function.json file:

{
  "bindings": [
    {
      "queueName": "myqueue-items",
      "connection": "MyStorageConnectionAppSetting",
      "name": "myQueueItem",
      "type": "queueTrigger",
      "direction": "in"
    },
    {
      "name": "tableBinding",
      "type": "table",
      "connection": "MyStorageConnectionAppSetting",
      "tableName": "Person",
      "direction": "in"
    }
  ],
  "disabled": false
}

Queste proprietà sono descritte nella sezione configuration.The configuration section explains these properties.

Il codice script C# aggiunge un riferimento ad Azure Storage SDK in modo che il tipo di entità possa derivare da TableEntity:The C# script code adds a reference to the Azure Storage SDK so that the entity type can derive from TableEntity:

#r "Microsoft.WindowsAzure.Storage"
using Microsoft.WindowsAzure.Storage.Table;

public static void Run(string myQueueItem, IQueryable<Person> tableBinding, TraceWriter log)
{
    log.Info($"C# Queue trigger function processed: {myQueueItem}");
    foreach (Person person in tableBinding.Where(p => p.PartitionKey == myQueueItem).ToList())
    {
        log.Info($"Name: {person.Name}");
    }
}

public class Person : TableEntity
{
    public string Name { get; set; }
}

Input - esempio in F#Input - F# example

L'esempio seguente illustra un'associazione di input della tabella in un file function.json e codice script F# che usa l'associazione.The following example shows a table input binding in a function.json file and F# script code that uses the binding. La funzione usa un trigger della coda per leggere una riga della tabella.The function uses a queue trigger to read a single table row.

Il file function.json specifica partitionKey e rowKey.The function.json file specifies a partitionKey and a rowKey. Il valore rowKey "{queueTrigger}" indica che la chiave della riga proviene dalla stringa di messaggio della coda.The rowKey value "{queueTrigger}" indicates that the row key comes from the queue message string.

{
  "bindings": [
    {
      "queueName": "myqueue-items",
      "connection": "MyStorageConnectionAppSetting",
      "name": "myQueueItem",
      "type": "queueTrigger",
      "direction": "in"
    },
    {
      "name": "personEntity",
      "type": "table",
      "tableName": "Person",
      "partitionKey": "Test",
      "rowKey": "{queueTrigger}",
      "connection": "MyStorageConnectionAppSetting",
      "direction": "in"
    }
  ],
  "disabled": false
}

Queste proprietà sono descritte nella sezione configuration.The configuration section explains these properties.

Ecco il codice F#:Here's the F# code:

[<CLIMutable>]
type Person = {
  PartitionKey: string
  RowKey: string
  Name: string
}

let Run(myQueueItem: string, personEntity: Person) =
    log.Info(sprintf "F# Queue trigger function processed: %s" myQueueItem)
    log.Info(sprintf "Name in Person entity: %s" personEntity.Name)

Input - esempio JavaScriptInput - JavaScript example

L'esempio seguente illustra un'associazione di input della tabella in un file function.json e codice JavaScript che usa l'associazione.The following example shows a table input binding in a function.json file and JavaScript code that uses the binding. La funzione usa un trigger della coda per leggere una riga della tabella.The function uses a queue trigger to read a single table row.

Il file function.json specifica partitionKey e rowKey.The function.json file specifies a partitionKey and a rowKey. Il valore rowKey "{queueTrigger}" indica che la chiave della riga proviene dalla stringa di messaggio della coda.The rowKey value "{queueTrigger}" indicates that the row key comes from the queue message string.

{
  "bindings": [
    {
      "queueName": "myqueue-items",
      "connection": "MyStorageConnectionAppSetting",
      "name": "myQueueItem",
      "type": "queueTrigger",
      "direction": "in"
    },
    {
      "name": "personEntity",
      "type": "table",
      "tableName": "Person",
      "partitionKey": "Test",
      "rowKey": "{queueTrigger}",
      "connection": "MyStorageConnectionAppSetting",
      "direction": "in"
    }
  ],
  "disabled": false
}

Queste proprietà sono descritte nella sezione configuration.The configuration section explains these properties.

Ecco il codice JavaScript:Here's the JavaScript code:

module.exports = function (context, myQueueItem) {
    context.log('Node.js queue trigger function processed work item', myQueueItem);
    context.log('Person entity name: ' + context.bindings.personEntity.Name);
    context.done();
};

Input - attributiInput - attributes

Per le funzioni di C# precompilato, usare i seguenti attributi per configurare un'associazione di input della tabella:For precompiled C# functions, use the following attributes to configure a table input binding:

  • TableAttribute, definito nel pacchetto NuGet Microsoft.Azure.WebJobs.TableAttribute, which is defined in NuGet package Microsoft.Azure.WebJobs.

    Il costruttore dell'attributo accetta il nome della tabella, una chiave di partizione e una chiave di riga.The attribute's constructor takes the table name, partition key, and row key. Può essere usato su un parametro out o sul valore restituito della funzione, come illustrato nell'esempio seguente:It can be used on an out parameter or on the return value of the function, as shown in the following example:

    [FunctionName("TableInput")]
    public static void Run(
        [QueueTrigger("table-items")] string input, 
        [Table("MyTable", "Http", "{queueTrigger}")] MyPoco poco, 
        TraceWriter log)
    {
        ...
    }
    

    È possibile impostare la proprietà Connection per specificare l'account di archiviazione da usare, come illustrato nell'esempio seguente:You can set the Connection property to specify the storage account to use, as shown in the following example:

    [FunctionName("TableInput")]
    public static void Run(
        [QueueTrigger("table-items")] string input, 
        [Table("MyTable", "Http", "{queueTrigger}", Connection = "StorageConnectionAppSetting")] MyPoco poco, 
        TraceWriter log)
    {
        ...
    }
    

    Per un esempio completo, vedere Input - esempio in C# precompilato.For a complete example, see Input - precompiled C# example.

  • StorageAccountAttribute, definito nel pacchetto NuGet Microsoft.Azure.WebJobsStorageAccountAttribute, defined in NuGet package Microsoft.Azure.WebJobs

    Offre un altro modo per specificare l'account di archiviazione da usare.Provides another way to specify the storage account to use. Il costruttore accetta il nome di un'impostazione dell'app che contiene una stringa di connessione di archiviazione.The constructor takes the name of an app setting that contains a storage connection string. L'attributo può essere applicato a livello di parametro, metodo o classe.The attribute can be applied at the parameter, method, or class level. L'esempio seguente illustra il livello classe e il livello metodo:The following example shows class level and method level:

    [StorageAccount("ClassLevelStorageAppSetting")]
    public static class AzureFunctions
    {
        [FunctionName("TableInput")]
        [StorageAccount("FunctionLevelStorageAppSetting")]
        public static void Run( //...
    {
        ...
    }
    

L'account di archiviazione da usare è determinato nell'ordine seguente:The storage account to use is determined in the following order:

  • La proprietà Connection dell'attributo Table.The Table attribute's Connection property.
  • L'attributo StorageAccount applicato allo stesso parametro dell'attributo Table.The StorageAccount attribute applied to the same parameter as the Table attribute.
  • L'attributo StorageAccount applicato alla funzione.The StorageAccount attribute applied to the function.
  • L'attributo StorageAccount applicato alla classe.The StorageAccount attribute applied to the class.
  • L'account di archiviazione predefinito per l'app per le funzioni (impostazione dell'app "AzureWebJobsStorage").The default storage account for the function app ("AzureWebJobsStorage" app setting).

Input - configurazioneInput - configuration

Nella tabella seguente sono illustrate le proprietà di configurazione dell'associazione impostate nel file function.json e nell'attributo Table.The following table explains the binding configuration properties that you set in the function.json file and the Table attribute.

Proprietà di function.jsonfunction.json property Proprietà dell'attributoAttribute property DescrizioneDescription
typetype n/dn/a Il valore deve essere impostato su table.Must be set to table. Questa proprietà viene impostata automaticamente quando si crea l'associazione nel portale di Azure.This property is set automatically when you create the binding in the Azure portal.
directiondirection n/dn/a Il valore deve essere impostato su in.Must be set to in. Questa proprietà viene impostata automaticamente quando si crea l'associazione nel portale di Azure.This property is set automatically when you create the binding in the Azure portal.
nomename n/dn/a Nome della variabile che rappresenta la tabella o l'entità nel codice della funzione.The name of the variable that represents the table or entity in function code.
tableNametableName TableNameTableName Nome della tabella.The name of the table.
partitionKeypartitionKey PartitionKeyPartitionKey Facoltativo.Optional. Chiave di partizione dell'entità della tabella da leggere.The partition key of the table entity to read. Vedere la sezione usage per indicazioni sull'uso di questa proprietà.See the usage section for guidance on how to use this property.
rowKeyrowKey RowKeyRowKey Facoltativo.Optional. Chiave di riga dell'entità della tabella da leggere.The row key of the table entity to read. Vedere la sezione usage per indicazioni sull'uso di questa proprietà.See the usage section for guidance on how to use this property.
taketake TakeTake Facoltativo.Optional. Numero massimo di entità da leggere in JavaScript.The maximum number of entities to read in JavaScript. Vedere la sezione usage per indicazioni sull'uso di questa proprietà.See the usage section for guidance on how to use this property.
filterfilter FilterFilter Facoltativo.Optional. Espressione di filtro OData per l'input della tabella in JavaScript.An OData filter expression for table input in JavaScript. Vedere la sezione usage per indicazioni sull'uso di questa proprietà.See the usage section for guidance on how to use this property.
connessioneconnection ConnectionConnection Nome di un'impostazione dell'app che contiene la stringa di connessione di archiviazione da usare per questa associazione.The name of an app setting that contains the Storage connection string to use for this binding. Se il nome dell'impostazione dell'app inizia con "AzureWebJobs", è possibile specificare solo il resto del nome.If the app setting name begins with "AzureWebJobs", you can specify only the remainder of the name here. Ad esempio, se si imposta connection su "MyStorage", il runtime di Funzioni di Azure cerca un'impostazione dell'app denominata "AzureWebJobsMyStorage".For example, if you set connection to "MyStorage", the Functions runtime looks for an app setting that is named "AzureWebJobsMyStorage." Se si lascia vuoto connection, il runtime di Funzioni di Azure usa la stringa di connessione di archiviazione predefinita nell'impostazione dell'app denominata AzureWebJobsStorage.If you leave connection empty, the Functions runtime uses the default Storage connection string in the app setting that is named AzureWebJobsStorage.

Quando si sviluppa in locale, le impostazioni dell'app vengono inserite nel file local.settings.json.When you're developing locally, app settings go into the local.settings.json file.

Input - usoInput - usage

L'associazione di input dell'archiviazione tabelle supporta gli scenari seguenti:The Table storage input binding supports the following scenarios:

  • Leggere una riga in C# o script C#Read one row in C# or C# script

    Impostare partitionKey e rowKey.Set partitionKey and rowKey. Accedere ai dati della tabella con un parametro di metodo T <paramName>.Access the table data by using a method parameter T <paramName>. Negli script C#, paramName è il valore specificato nella proprietà name di function.json.In C# script, paramName is the value specified in the name property of function.json. T in genere è un tipo che implementa ITableEntity o deriva da TableEntity.T is typically a type that implements ITableEntity or derives from TableEntity. Le proprietà filter e take non vengono usate in questo scenario.The filter and take properties are not used in this scenario.

  • Leggere una o più righe in C# o script C#Read one or more rows in C# or C# script

    Accedere ai dati della tabella con un parametro di metodo IQueryable<T> <paramName>.Access the table data by using a method parameter IQueryable<T> <paramName>. Negli script C#, paramName è il valore specificato nella proprietà name di function.json.In C# script, paramName is the value specified in the name property of function.json. T deve essere un tipo che implementa ITableEntity o deriva da TableEntity.T must be a type that implements ITableEntity or derives from TableEntity. È possibile usare metodi IQueryable per eseguire eventuali filtri richiesti.You can use IQueryable methods to do any filtering required. Le proprietà partitionKey, rowKey, filter e take non vengono usate in questo scenario.The partitionKey, rowKey, filter, and take properties are not used in this scenario.

Nota

IQueryable non funziona in .NET Core, pertanto non può essere usato nel runtime di Funzioni v2.IQueryable does not work in .NET Core, so it doesn't work in the Functions v2 runtime.

In alternativa, è possibile usare un parametro del metodo CloudTable paramName per leggere la tabella tramite Azure Storage SDK.An alternative is to use a CloudTable paramName method parameter to read the table by using the Azure Storage SDK.

  • Leggere una o più righe in JavaScriptRead one or more rows in JavaScript

    Impostare le proprietà filter e take.Set the filter and take properties. Non impostare partitionKey o rowKey.Don't set partitionKey or rowKey. È possibile accedere all'entità (o alle entità) della tabella di input usando context.bindings.<name>.Access the input table entity (or entities) using context.bindings.<name>. Gli oggetti deserializzati hanno le proprietà RowKey e PartitionKey.The deserialized objects have RowKey and PartitionKey properties.

OutputOutput

Usare un'associazione di output dell'archiviazione tabelle di Azure per scrivere entità in una tabella in un account di archiviazione di Azure.Use an Azure Table storage output binding to write entities to a table in an Azure Storage account.

Output - esempioOutput - example

Vedere l'esempio specifico per ciascun linguaggio:See the language-specific example:

Output - esempio in C#Output - C# example

L'esempio seguente illustra codice C# precompilato che usa un trigger HTTP per scrivere una singola riga della tabella.The following example shows precompiled C# code that uses an HTTP trigger to write a single table row.

public class TableStorage
{
    public class MyPoco
    {
        public string PartitionKey { get; set; }
        public string RowKey { get; set; }
        public string Text { get; set; }
    }

    [FunctionName("TableOutput")]
    [return: Table("MyTable")]
    public static MyPoco TableOutput([HttpTrigger] dynamic input, TraceWriter log)
    {
        log.Info($"C# http trigger function processed: {input.Text}");
        return new MyPoco { PartitionKey = "Http", RowKey = Guid.NewGuid().ToString(), Text = input.Text };
    }
}

Output - esempio di script C#Output - C# script example

L'esempio seguente illustra un'associazione di output della tabella in un file function.json e codice script C# che usa l'associazione.The following example shows a table output binding in a function.json file and C# script code that uses the binding. La funzione scrive più entità della tabella.The function writes multiple table entities.

Ecco il file function.json:Here's the function.json file:

{
  "bindings": [
    {
      "name": "input",
      "type": "manualTrigger",
      "direction": "in"
    },
    {
      "tableName": "Person",
      "connection": "MyStorageConnectionAppSetting",
      "name": "tableBinding",
      "type": "table",
      "direction": "out"
    }
  ],
  "disabled": false
}

Queste proprietà sono descritte nella sezione configuration.The configuration section explains these properties.

Ecco il codice script C#:Here's the C# script code:

public static void Run(string input, ICollector<Person> tableBinding, TraceWriter log)
{
    for (int i = 1; i < 10; i++)
        {
            log.Info($"Adding Person entity {i}");
            tableBinding.Add(
                new Person() { 
                    PartitionKey = "Test", 
                    RowKey = i.ToString(), 
                    Name = "Name" + i.ToString() }
                );
        }

}

public class Person
{
    public string PartitionKey { get; set; }
    public string RowKey { get; set; }
    public string Name { get; set; }
}

Output - esempio in F#Output - F# example

L'esempio seguente illustra un'associazione di output della tabella in un file function.json e codice script F# che usa l'associazione.The following example shows a table output binding in a function.json file and F# script code that uses the binding. La funzione scrive più entità della tabella.The function writes multiple table entities.

Ecco il file function.json:Here's the function.json file:

{
  "bindings": [
    {
      "name": "input",
      "type": "manualTrigger",
      "direction": "in"
    },
    {
      "tableName": "Person",
      "connection": "MyStorageConnectionAppSetting",
      "name": "tableBinding",
      "type": "table",
      "direction": "out"
    }
  ],
  "disabled": false
}

Queste proprietà sono descritte nella sezione configuration.The configuration section explains these properties.

Ecco il codice F#:Here's the F# code:

[<CLIMutable>]
type Person = {
  PartitionKey: string
  RowKey: string
  Name: string
}

let Run(input: string, tableBinding: ICollector<Person>, log: TraceWriter) =
    for i = 1 to 10 do
        log.Info(sprintf "Adding Person entity %d" i)
        tableBinding.Add(
            { PartitionKey = "Test"
              RowKey = i.ToString()
              Name = "Name" + i.ToString() })

Output - esempio JavaScriptOutput - JavaScript example

L'esempio seguente illustra un'associazione di output della tabella in un file function.json e una funzione JavaScript che usa l'associazione.The following example shows a table output binding in a function.json file and a JavaScript function that uses the binding. La funzione scrive più entità della tabella.The function writes multiple table entities.

Ecco il file function.json:Here's the function.json file:

{
  "bindings": [
    {
      "name": "input",
      "type": "manualTrigger",
      "direction": "in"
    },
    {
      "tableName": "Person",
      "connection": "MyStorageConnectionAppSetting",
      "name": "tableBinding",
      "type": "table",
      "direction": "out"
    }
  ],
  "disabled": false
}

Queste proprietà sono descritte nella sezione configuration.The configuration section explains these properties.

Ecco il codice JavaScript:Here's the JavaScript code:

module.exports = function (context) {

    context.bindings.tableBinding = [];

    for (var i = 1; i < 10; i++) {
        context.bindings.tableBinding.push({
            PartitionKey: "Test",
            RowKey: i.toString(),
            Name: "Name " + i
        });
    }

    context.done();
};

Output - attributiOutput - attributes

Per C# precompilato usare TableAttribute, che è definito nel pacchetto NuGet Microsoft.Azure.WebJobs.For precompiled C# functions, use the TableAttribute, which is defined in NuGet package Microsoft.Azure.WebJobs.

Il costruttore dell'attributo accetta il nome della tabella.The attribute's constructor takes the table name. Può essere usato su un parametro out o sul valore restituito della funzione, come illustrato nell'esempio seguente:It can be used on an out parameter or on the return value of the function, as shown in the following example:

[FunctionName("TableOutput")]
[return: Table("MyTable")]
public static MyPoco TableOutput(
    [HttpTrigger] dynamic input, 
    TraceWriter log)
{
    ...
}

È possibile impostare la proprietà Connection per specificare l'account di archiviazione da usare, come illustrato nell'esempio seguente:You can set the Connection property to specify the storage account to use, as shown in the following example:

[FunctionName("TableOutput")]
[return: Table("MyTable", Connection = "StorageConnectionAppSetting")]
public static MyPoco TableOutput(
    [HttpTrigger] dynamic input, 
    TraceWriter log)
{
    ...
}

Per un esempio completo, vedere Output - esempio in C# precompilato.For a complete example, see Output - precompiled C# example.

È possibile usare l'attributo StorageAccount per specificare l'account di archiviazione a livello di classe, metodo o parametro.You can use the StorageAccount attribute to specify the storage account at class, method, or parameter level. Per altre informazioni, vedere Input - attributi.For more information, see Input - attributes.

Output - configurazioneOutput - configuration

Nella tabella seguente sono illustrate le proprietà di configurazione dell'associazione impostate nel file function.json e nell'attributo Table.The following table explains the binding configuration properties that you set in the function.json file and the Table attribute.

Proprietà di function.jsonfunction.json property Proprietà dell'attributoAttribute property DescrizioneDescription
typetype n/dn/a Il valore deve essere impostato su table.Must be set to table. Questa proprietà viene impostata automaticamente quando si crea l'associazione nel portale di Azure.This property is set automatically when you create the binding in the Azure portal.
directiondirection n/dn/a Il valore deve essere impostato su out.Must be set to out. Questa proprietà viene impostata automaticamente quando si crea l'associazione nel portale di Azure.This property is set automatically when you create the binding in the Azure portal.
nomename n/dn/a Nome della variabile usato nel codice della funzione che rappresenta la tabella o l'entità.The variable name used in function code that represents the table or entity. Impostare su $return per fare riferimento al valore restituito della funzione.Set to $return to reference the function return value.
tableNametableName TableNameTableName Nome della tabella.The name of the table.
partitionKeypartitionKey PartitionKeyPartitionKey Chiave di partizione dell'entità della tabella da scrivere.The partition key of the table entity to write. Vedere la sezione usage per indicazioni sull'uso di questa proprietà.See the usage section for guidance on how to use this property.
rowKeyrowKey RowKeyRowKey Chiave di riga dell'entità della tabella da scrivere.The row key of the table entity to write. Vedere la sezione usage per indicazioni sull'uso di questa proprietà.See the usage section for guidance on how to use this property.
connessioneconnection ConnectionConnection Nome di un'impostazione dell'app che contiene la stringa di connessione di archiviazione da usare per questa associazione.The name of an app setting that contains the Storage connection string to use for this binding. Se il nome dell'impostazione dell'app inizia con "AzureWebJobs", è possibile specificare solo il resto del nome.If the app setting name begins with "AzureWebJobs", you can specify only the remainder of the name here. Ad esempio, se si imposta connection su "MyStorage", il runtime di Funzioni di Azure cerca un'impostazione dell'app denominata "AzureWebJobsMyStorage".For example, if you set connection to "MyStorage", the Functions runtime looks for an app setting that is named "AzureWebJobsMyStorage." Se si lascia vuoto connection, il runtime di Funzioni di Azure usa la stringa di connessione di archiviazione predefinita nell'impostazione dell'app denominata AzureWebJobsStorage.If you leave connection empty, the Functions runtime uses the default Storage connection string in the app setting that is named AzureWebJobsStorage.

Quando si sviluppa in locale, le impostazioni dell'app vengono inserite nel file local.settings.json.When you're developing locally, app settings go into the local.settings.json file.

Output - usoOutput - usage

L'associazione di output dell'archiviazione tabelle supporta gli scenari seguenti:The Table storage output binding supports the following scenarios:

  • Scrivere una riga in qualsiasi linguaggioWrite one row in any language

    In C# e negli script C# è possibile accedere all'entità della tabella di output con un parametro di metodo, ad esempio out T paramName, o il valore restituito della funzione.In C# and C# script, access the output table entity by using a method parameter such as out T paramName or the function return value. Negli script C#, paramName è il valore specificato nella proprietà name di function.json.In C# script, paramName is the value specified in the name property of function.json. T può essere qualsiasi tipo serializzabile, se la chiave di partizione e la chiave di riga vengono fornite dal file function.json o dall'attributo Table.T can be any serializable type if the partition key and row key are provided by the function.json file or the Table attribute. In caso contrario, T deve essere un tipo che include le proprietà PartitionKey e RowKey.Otherwise, T must be a type that includes PartitionKey and RowKey properties. In questo scenario, T in genere, ma non necessariamente, implementa ITableEntity o deriva da TableEntity.In this scenario, T typically implements ITableEntity or derives from TableEntity, but it doesn't have to.

  • Scrivere una o più righe in C# o script C#Write one or more rows in C# or C#

    In C# e negli script C# è possibile accedere all'entità della tabella di output con un parametro di metodo ICollector<T> paramName o ICollectorAsync<T> paramName.In C# and C# script, access the output table entity by using a method parameter ICollector<T> paramName or ICollectorAsync<T> paramName. Negli script C#, paramName è il valore specificato nella proprietà name di function.json.In C# script, paramName is the value specified in the name property of function.json. T specifica lo schema delle entità da aggiungere.T specifies the schema of the entities you want to add. In genere, ma non necessariamente, T deriva da TableEntity o implementa ITableEntity.Typically, T derives from TableEntity or implements ITableEntity, but it doesn't have to. I valori della chiave di partizione e della chiave di riga in function.json o nel costruttore dell'attributo Table non vengono usati in questo scenario.The partition key and row key values in function.json or the Table attribute constructor are not used in this scenario.

    In alternativa, è possibile usare un parametro del metodo CloudTable paramName per scrivere nella tabella tramite Azure Storage SDK.An alternative is to use a CloudTable paramName method parameter to write to the table by using the Azure Storage SDK.

  • Scrivere una o più righe in JavaScriptWrite one or more rows in JavaScript

    Nelle funzioni JavaScript è possibile accedere all'output della tabella usando context.bindings.<name>.In JavaScript functions, access the table output using context.bindings.<name>.

Passaggi successiviNext steps