Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом кратком руководстве описано, как развернуть базовое приложение Azure Cosmos DB для таблиц с помощью пакета SDK Azure для Java. Azure Cosmos DB для таблицы — это хранилище данных без схемы, позволяющее приложениям хранить структурированные данные таблицы в облаке. Вы узнаете, как создавать таблицы, строки и выполнять основные задачи в ресурсе Azure Cosmos DB с помощью пакета SDK Azure для Java.
Справочная документация по API | Исходный код библиотеки | Пакет (Maven) | Azure Developer CLI
Предварительные условия
- Azure Developer CLI
- Docker Desktop
- Java 21
Если у вас нет учетной записи Azure, создайте бесплатную учетную запись, прежде чем начинать работу.
Инициализация проекта
Используйте интерфейс командной строки разработчика Azure (azd
) для создания учетной записи Azure Cosmos DB для таблицы и развертывания контейнерного примера приложения. Пример приложения использует клиентскую библиотеку для управления, создания, чтения и запроса образцов данных.
Откройте терминал в пустом каталоге.
Если вы еще не прошли проверку подлинности, выполните проверку подлинности в интерфейсе командной строки разработчика Azure с помощью
azd auth login
. Выполните действия, указанные средством для проверки подлинности в CLI с помощью предпочитаемых учетных данных Azure.azd auth login
Используется
azd init
для инициализации проекта.azd init --template cosmos-db-table-java-quickstart
Во время инициализации настройте уникальное имя среды.
Разверните учетную запись Azure Cosmos DB с помощью
azd up
. Шаблоны Bicep также развертывают пример веб-приложения.azd up
В процессе подготовки выберите подписку, требуемое расположение и целевую группу ресурсов. Дождитесь завершения процесса обеспечения. Процесс может занять около пяти минут.
После завершения подготовки ресурсов Azure в выходные данные будет включен URL-адрес работающего веб-приложения.
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: <https://[container-app-sub-domain].azurecontainerapps.io> SUCCESS: Your application was provisioned and deployed to Azure in 5 minutes 0 seconds.
Используйте URL-адрес консоли для перехода к веб-приложению в браузере. Просмотрите выходные данные запущенного приложения.
Установка клиентской библиотеки
Клиентская библиотека доступна через Maven в качестве azure-data-tables
пакета.
Перейдите в папку
/src/web
и откройте файл pom.xml .cd ./src
Если он еще не существует, добавьте запись для
azure-data-tables
пакета.<dependency> <groupId>com.azure</groupId> <artifactId>azure-data-tables</artifactId> </dependency>
Импорт библиотек
Импортируйте все необходимые пространства имен в код приложения.
import com.azure.core.http.rest.PagedFlux;
import com.azure.data.tables.TableAsyncClient;
import com.azure.data.tables.TableClientBuilder;
import com.azure.data.tables.models.ListEntitiesOptions;
import com.azure.data.tables.models.TableEntity;
import com.azure.identity.DefaultAzureCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;
Объектная модель
Имя | Описание |
---|---|
TableServiceAsyncClient |
Этот тип является основным типом клиента и используется для управления метаданными или базами данных на уровне учетной записи. |
TableAsyncClient |
Этот тип представляет клиента для таблицы в рамках учетной записи. |
Примеры кода
Пример кода в шаблоне использует таблицу с именем cosmicworks-products
. В cosmicworks-products
таблице содержатся такие сведения, как имя, категория, количество, цена, уникальный идентификатор и флаг продажи для каждого продукта. Контейнер использует уникальный идентификатор* в качестве ключа строки и категории в качестве ключа секции.
аутентификация клиента;
В этом примере создается новый экземпляр TableServiceAsyncClient
класса.
DefaultAzureCredential azureTokenCredential = new DefaultAzureCredentialBuilder()
.build();
TableServiceAsyncClient client = new TableServiceClientBuilder()
.endpoint("<azure-cosmos-db-table-account-endpoint>")
.credential(credential)
.buildAsyncClient();
Получите стол
В этом примере создается экземпляр класса TableAsyncClient
с помощью метода GetTableClient
класса TableServiceClient
.
TableAsyncClient table = client
.getTableClient("<azure-cosmos-db-table-name>");
Создайте сущность
Самый простой способ создания сущности в таблице — использовать createEntity
.
String rowKey = "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb";
String partitionKey = "gear-surf-surfboards";
TableEntity entity = new TableEntity(partitionKey, rowKey)
.addProperty("Name", "Yamba Surfboard")
.addProperty("Quantity", 12)
.addProperty("Price", 850.00)
.addProperty("Sale", false);
Создание сущности в коллекции с помощью upsertEntity
.
Mono<Void> response = table.upsertEntity(entity);
Получите сущность
Вы можете получить определенную сущность из таблицы с помощью getEntity
.
String rowKey = "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb";
String partitionKey = "gear-surf-surfboards";
TableEntity entity = table.getEntity(partitionKey, rowKey);
Запрос сущностей
После вставки сущности можно также запустить запрос, чтобы получить все сущности, соответствующие определенному фильтру, с помощью listEntities
и ListEntitiesOptions
класса. Используйте метод setFilter
для указания строкового фильтра OData.
ListEntitiesOptions options = new ListEntitiesOptions()
.setFilter("PartitionKey eq 'gear-surf-surfboards'");
PagedFlux<TableEntity> tableEntities = table.listEntities(options, null, null);
Анализ результатов запроса с разбивкой на страницы с помощью подписки.
tableEntities
.DoOnNext(entity -> {
// Do something
});
Очистка ресурсов
Если вам больше не нужен пример приложения или ресурсов, удалите соответствующее развертывание и все ресурсы.
azd down