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.json
az 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.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: