在 Mac OS X 中,使用在本地 Docker 容器上运行的 Azure CosmosDB 模拟器,我可以使用资源管理器 Web 门户来创建数据库。但是,我无法使用 Azure Go SDK 创建数据库,但错误并不表明创建数据库时出现问题。
除此之外,还有多个 SDK,并且很多文档都存在错误,是否有规范来源可以让我看到使用 CosmosDB 模拟器的功能性 Golang 示例?
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 Cosmos DB 模拟器:
使用的封装是
"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)
}