Невозможно создать базу данных CosmosDB через go sdk

В 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() завершится неудачно, если учетные данные недействительны, но это не так.

Пожалуйста, убедитесь, что вы используете правильный тег. Cosmos не для Azure CosmosDB.

Martin Smith 27.04.2024 20:07
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
1
1
103
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Приведенный ниже код взаимодействует с 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, потому что раньше я не использовал _ и поэтому не видел ошибки.

Andres 01.05.2024 19:39

Рада знать ☺️.

Sampath 01.05.2024 19:44

Другие вопросы по теме