无法通过go sdk创建CosmosDB数据库

问题描述 投票:0回答:1

在 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 go azure-cosmosdb
1个回答
0
投票

下面的代码与 Azure Cosmos DB 或 Azure Cosmos DB 模拟器交互,并在 Azure Cosmos DB 或 Azure Cosmos DB 模拟器中创建新数据库。

  • 我使用 Azure Cosmos DB 模拟器的此链接在本地开发应用程序,并使用工作数据库测试它们。
  • 如果您使用的是 Azure Cosmos DB 模拟器,请使用 Azure Cosmos DB 模拟器的 URI 或端点作为“https://localhost:8081”,并使用 Azure Cosmos DB 模拟器的密钥 key

Azure Cosmos DB 模拟器:

enter image description here

使用的封装是

"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)
}

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.