Az Azure WebJobs Tables ügyfélkódtára a .NET-hez – 1.1.0-s verzió

Ez a bővítmény az Azure Tables Azure Functions-ben való elérésére szolgál.

Első lépések

A csomag telepítése

Telepítse a Tables bővítményt a NuGettel:

dotnet add package Microsoft.Azure.WebJobs.Extensions.Tables

Előfeltételek

A csomag használatához Azure-előfizetésre és tárfiókra vagy Cosmos Tables-fiókra van szükség.

Tárolótáblák használata

Új tárfiók létrehozásához használhatja az Azure Portalt, Azure PowerShell vagy az Azure CLI-t. Íme egy példa az Azure CLI használatával:

az storage account create --name <your-resource-name> --resource-group <your-resource-group-name> --location westus --sku Standard_LRS

Cosmos-táblák használata

Új Cosmos-táblák létrehozásához használhatja az Azure Portalt, a Azure PowerShell vagy az Azure CLI-t.

Az ügyfél hitelesítése

A kapcsolat a táblaszolgáltatáshoz való csatlakozáshoz szükséges információk halmazát jelöli. Tartalmazhat kapcsolati sztring, végpontot, token hitelesítő adatokat vagy megosztott kulcsot.

A Connection tulajdonság határozza TableAttribute meg, hogy melyik kapcsolatot használja a Table Service-hozzáféréshez. Például [Tables(Connection="MyTableService")] a kapcsolatot fogja használni MyTableService .

A kapcsolati adatok a Azure Portal vagy local.settings.jsonaz alkalmazásbeállítások között állíthatók be.

Amikor hozzáad egy beállítást a local.settings.json fájlhoz, helyezze a Values tulajdonság alá:

{
  "IsEncrypted": false,
  "Values": {
    "MyTableService": "..."
  }
}

Amikor hozzáad egy beállítást az alkalmazásbeállításokhoz a Azure Portal használja közvetlenül a megadott nevet:

MyTableService = ...

A Táblák bővítmény alapértelmezés szerint a AzureWebJobsStorage kapcsolat nevét használja.

Kapcsolati sztring

A kapcsolati sztringek használatához a hitelesítés közvetlenül a kapcsolati beállításhoz rendelje hozzá kapcsolati sztring értéket.

<ConnectionName> = DefaultEndpointsProtocol=https;AccountName=...;AccountKey=...;EndpointSuffix=core.windows.net

Végpont és jogkivonat hitelesítő adatainak használata

MEGJEGYZÉS: A jogkivonat hitelesítő adatainak hitelesítése csak a tárolótáblák esetében támogatott.

<ConnectionName>__endpoint = https://...table.core.windows.net

Ha nem ad meg hitelesítő adatokat, a DefaultAzureCredential rendszer a használt adatokat használja.

Felhasználó által hozzárendelt felügyelt identitás használatakor meg kell adni a és credential a clientId beállításokat:

<ConnectionName>__credential = managedidentity

<ConnectionName>__clientId = <user-assigned client id>

Megosztott kulcs hitelesítő adatainak használata

Megosztott kulcsú hitelesítés használata esetén a endpoint, accountKey és accountName meg kell adni.

<ConnectionName>__endpoint = https://...table.core.windows.net

<ConnectionName>__credential__accountName = <account name>

<ConnectionName>__credential__accountKey = <account key>

Fő fogalmak

A bemeneti kötéssel beolvashatja a táblázatot egy Azure-függvény bemeneteként. A kimeneti kötés lehetővé teszi a táblasorok módosítását és törlését egy Azure-függvényben.

Kövesse a bemeneti kötési oktatóanyagot és a kimeneti kötési oktatóanyagot , amelyből megtudhatja, hogyan használhatja ezt a bővítményt a táblaszolgáltatás eléréséhez.

Példák

A táblabővítmények csak kötéseket biztosítanak. A kötések önmagukban nem aktiválhatnak függvényt. Csak a táblázat bejegyzéseit tudja beolvasni vagy írni.

Az alábbi példában HTTP-eseményindítót használunk a függvény meghívásához.

Kötés egyetlen entitáshoz

public class InputSingle
{
    [FunctionName("InputSingle")]
    public static void Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "GET")] HttpRequest request,
        [Table("MyTable", "<PartitionKey>", "<RowKey>")] TableEntity entity, ILogger log)
    {
        log.LogInformation($"PK={entity.PartitionKey}, RK={entity.RowKey}, Text={entity["Text"]}");
    }
}

Kötés egyetlen entitáshoz modelltípus használatával

public class MyEntity
{
    public string PartitionKey { get; set; }
    public string RowKey { get; set; }
    public string Text { get; set; }
}
public class InputSingleModel
{
    [FunctionName("InputSingleModel")]
    public static void Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "GET")] HttpRequest request,
        [Table("MyTable", "<PartitionKey>", "<RowKey>")] MyEntity entity, ILogger log)
    {
        log.LogInformation($"PK={entity.PartitionKey}, RK={entity.RowKey}, Text={entity.Text}");
    }
}

Kötés több entitáshoz szűrővel

public class InputMultipleEntitiesFilter
{
    [FunctionName("InputMultipleEntitiesFilter")]
    public static void Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "GET")] HttpRequest request,
        [Table("MyTable", "<PartitionKey>", Filter = "Text ne ''")] IEnumerable<TableEntity> entities, ILogger log)
    {
        foreach (var entity in entities)
        {
            log.LogInformation($"PK={entity.PartitionKey}, RK={entity.RowKey}, Text={entity["Text"]}");
        }
    }
}

Egyetlen entitás létrehozása

public class OutputSingle
{
    [FunctionName("OutputSingle")]
    public static void Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "GET")] HttpRequest request,
        [Table("MyTable")] out TableEntity entity)
    {
        entity = new TableEntity("<PartitionKey>", "<RowKey>")
        {
            ["Text"] = "Hello"
        };
    }
}

Egyetlen entitás létrehozása modell használatával

public class MyEntity
{
    public string PartitionKey { get; set; }
    public string RowKey { get; set; }
    public string Text { get; set; }
}
public class OutputSingleModel
{
    [FunctionName("OutputSingleModel")]
    public static void Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "GET")] HttpRequest request,
        [Table("MyTable")] out MyEntity entity)
    {
        entity = new MyEntity()
        {
            PartitionKey = "<PartitionKey>",
            RowKey = "<RowKey>",
            Text = "Hello"
        };
    }
}

Több entitás létrehozása

public class OutputMultiple
{
    [FunctionName("OutputMultiple")]
    public static void Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "POST")] HttpRequest request,
        [Table("MyTable")] IAsyncCollector<TableEntity> collector)
    {
        for (int i = 0; i < 10; i++)
        {
            collector.AddAsync(new TableEntity("<PartitionKey>", i.ToString())
            {
                ["Text"] = i.ToString()
            });
        }
    }
}

Több entitás létrehozása modell használatával

public class MyEntity
{
    public string PartitionKey { get; set; }
    public string RowKey { get; set; }
    public string Text { get; set; }
}
public class OutputMultipleModel
{
    [FunctionName("OutputMultipleModel")]
    public static void Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "POST")] HttpRequest request,
        [Table("MyTable")] IAsyncCollector<MyEntity> collector)
    {
        for (int i = 0; i < 10; i++)
        {
            collector.AddAsync(new MyEntity()
            {
                PartitionKey = "<PartitionKey>",
                RowKey = i.ToString(),
                Text = i.ToString()
            });
        }
    }
}

Kötés az SDK TableClient típusához

A TableClient metódusparaméterrel az Azure Tables SDK-val érheti el a táblát.

public class BindTableClient
{
    [FunctionName("BindTableClient")]
    public static async Task Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "POST")] HttpRequest request,
        [Table("MyTable")] TableClient client)
    {
        await client.AddEntityAsync(new TableEntity("<PartitionKey>", "<RowKey>")
        {
            ["Text"] = request.GetEncodedPathAndQuery()
        });
    }
}

Hibaelhárítás

Hibaelhárítási útmutatásért tekintse meg a monitorozási Azure Functions című témakört.

Következő lépések

Olvassa el az Azure-függvények bemutatását vagy az Azure-függvények létrehozását ismertető útmutatót.

Közreműködés

A kódtár létrehozásával, tesztelésével és közreműködésével kapcsolatos részletekért tekintse meg a CONTRIBUTING.md.

A projektben szívesen fogadjuk a hozzájárulásokat és a javaslatokat. A legtöbb hozzájáruláshoz el kell fogadnia egy Közreműködői licencszerződést (CLA-t), amelyben kijelenti, hogy jogosult arra, hogy ránk ruházza hozzájárulása felhasználási jogát, és ezt ténylegesen meg is teszi. A részletekért látogasson el a cla.microsoft.com.

A projekt a Microsoft nyílt forráskódú projekteket szabályozó etikai kódexe, a Microsoft Open Source Code of Conduct hatálya alá esik. További információkért lásd a viselkedési szabályzattal kapcsolatos gyakori kérdéseket , vagy vegye fel a kapcsolatot opencode@microsoft.com az esetleges további kérdésekkel vagy megjegyzésekkel.

Megjelenések