Dapr и использование sql statestore вместо redis
Мы хотели бы протестировать переключение с Redis на компонент хранилища состояний sql.
Судя по документации, мы можем сделать это с двумя небольшими изменениями:
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: statestore
spec:
type: state.sqlserver # Switch from redis
version: v1
metadata:
- name: connectionString
value: Server=db;Database=dapr;user id=sa;Password=Your_password123;
- name: tableName
value: dapr
И в нашем файле компоновки докеров мы добавили sql-сервер
db: # added
image: "mcr.microsoft.com/mssql/server"
ports:
- "1433:1433"
environment:
SA_PASSWORD: "Your_password123"
ACCEPT_EULA: "Y"
networks:
- smi-network
Я предполагал, что в базе данных dapr будет создана новая таблица с именем dapr. Но вместо этого мы получаем следующую ошибку:
level=warning msg="error initializing state store statestore (state.sqlserver/v1): failed to create db schema: Unable to open tcp connection with host 'db:1433': dial tcp 172.29.0.2:1433: connect: connection refused" app_id=daprbackend
Я предположил, что я пропустил, поскольку все находятся в одной сети
smi-network
базу данных можно будет вызвать (если я войду в оболочку
db
, Я вижу, что IP-адрес такой же
172.29.0.2
)?
1 ответ
Глядя на код, база данных создается не для вас. Только стол. Поэтому, если ваша строка подключения включает базу данных, вы должны сначала ее создать.
Если вы не включаете базу данных в строку подключения,
master
база данных будет использоваться и таблица будет создана там.