В Mac OS X, используя эмулятор Azure CosmosDB, работающий локально в контейнере Docker, я могу использовать веб-портал Explorer для создания базы данных. Однако я не могу использовать Azure Go SDK для создания базы данных, но ошибки не указывают на то, что возникла проблема при создании базы данных.
Помимо этого, существует несколько SDK, и во многих документах есть ошибки. Есть ли канонический источник, где я могу увидеть работающий пример Golang с использованием эмулятора CosmosDB?
cred, err := azcosmos.NewKeyCredential(cosmosDbKey)
handle(err)
client, err := azcosmos.NewClientWithKey(cosmosDbEndpoint, cred, nil)
handle(err)
databaseProperties := azcosmos.DatabaseProperties{ID: "databaseName"}
databaseResponse, err := client.CreateDatabase(context.Background(), databaseProperties, nil)
Как я могу лучше понять, что здесь происходит, клиент может создать, даже если я передаю пустые строки вместо правильного ключа и конечной точки.
Пытался использовать Go SDK для создания базы данных, ожидал, что она появится на портале эмулятора. Я также ожидаю, что NewClientWithKey() завершится неудачно, если учетные данные недействительны, но это не так.
Приведенный ниже код взаимодействует с Azure Cosmos DB или эмулятором Azure Cosmos DB и создает новую базу данных в Azure Cosmos DB или эмуляторе Azure Cosmos DB.
Эмулятор Azure CosmoDB:
Используемый пакет "github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos"
.
go get -u github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos
package main
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos"
)
func handle(err error) {
if err != nil {
log.Fatal(err)
}
}
func main() {
const (
cosmosDbEndpoint = "your_cosmosdb_endpoint"
cosmosDbKey = "your_cosmosdb_key"
dbName = "samdb1"
)
// Create a new client with the account key
cred, err := azcosmos.NewKeyCredential(cosmosDbKey)
handle(err)
client, err := azcosmos.NewClientWithKey(cosmosDbEndpoint, cred, nil)
handle(err)
// Create a new database
databaseProperties := azcosmos.DatabaseProperties{ID: dbName}
_, err = client.CreateDatabase(context.Background(), databaseProperties, nil)
handle(err)
log.Println("Database created successfully:", dbName)
}
Выход:
Учетная запись Azure CosmoDB:
Спасибо, да, что очень помогло, так это использование _, err = client.CreateDatabase, потому что раньше я не использовал _ и поэтому не видел ошибки.
Рада знать ☺️.
Пожалуйста, убедитесь, что вы используете правильный тег. Cosmos не для Azure CosmosDB.