Azure Azure Db Node.js SDK SQL API-hoz: Kibocsátási megjegyzések és erőforrások

ÉRVÉNYES: SQL API

Erőforrás Hivatkozás
SDK letöltése NPM
API-dokumentáció JavaScript SDK referenciadokumentáció
SDK telepítési utasítások Telepítési útmutató
Közreműködés az SDK-nak GitHub
Minták Node.js mintaminta
Oktatóprogram az első lépésekhez A JavaScript SDK első lépése
Oktatóprogram a webalkalmazáshoz Webalkalmazás Node.js Azure Azure Db segítségével
Jelenlegi támogatott platform Node.js 12.x - SDK 3.x.x verzió
Node.js 10.x verzió – SDK 3.x.x-es verzió
Node.js v8.x - SDK 3.x.x verzió
Node.js v6.x - SDK 2.x.x verzió
Node.js 4.2.0-s verzió– SDK 1.x.x verzió
Node.js 0.12-es verzió– SDK 1.x.x-es verzió
Node.js 0.10-es verzió– SDK 1.x.x verzió

Kibocsátási megjegyzések

A kiadási előzmények megmaradnak az azure-sdk-for-js repo kiadási verziójában, a kiadások részletes listáját a changelog fájlban láthatja.

Áttérési útmutató a változások töréshez

Ha az SDK egy korábbi verzióját használja, javasoljuk, hogy a 3.0-s verzióra áttelepítést. Ez a szakasz részletezi az ezzel a verzióval kapcsolatos fejlesztéseket és a 3.0-s verzióban történt hibajavításokat.

Továbbfejlesztett ügyfélkonstrukciós lehetőségek

Egyszerűsítettük a felépítési lehetőségeket:

  • A masterKey új nevet ad a kulcsnak, és a legfelső szintre költözött
  • A korábban az options.auth fájlban lévő tulajdonságok a legfelső szintre költözött
// v2
const client = new CosmosClient({
    endpoint: "https://your-database.cosmos.azure.com",
    auth: {
        masterKey: "your-primary-key"
    }
})

// v3
const client = new CosmosClient({
    endpoint: "https://your-database.cosmos.azure.com",
    key: "your-primary-key"
})

Egyszerűsített lekérdezési iterátor API

A v2-ben sokféleképpen iterálhat vagy beolvashat eredményeket egy lekérdezésből. Megpróbáltuk egyszerűsíteni a v3 API-t, és eltávolítani a hasonló vagy ismétlődő API-kat:

  • Távolítsa el az iterator.next() és az iterator.current() et. Eredménylapok beolvasása a fetchNext() használatával.
  • Távolítsa el az iterator.forEach() et. Használjon inkább aszinkron iterátorokat.
  • iterator.executeNext() renamed to iterator.fetchNext()
  • iterator.toArray() renamed to iterator.fetchAll()
  • A lapok mostantól helyes válaszobjektumok az egyszerű JS-objektumok helyett
  • const container = client.database(dbId).container(containerId)
// v2
container.items.query('SELECT * from c').toArray()
container.items.query('SELECT * from c').executeNext()
container.items.query('SELECT * from c').forEach(({ body: item }) => { console.log(item.id) })

// v3
container.items.query('SELECT * from c').fetchAll()
container.items.query('SELECT * from c').fetchNext()
for await(const { result: item } in client.databases.readAll().getAsyncIterator()) {
    console.log(item.id)
}

A javított tárolók most már partíciók

A Rendszers szolgáltatás mostantól az összes tárolón támogatja a partíciókulcsokat, beleértve a korábban rögzített tárolókként létrehozottkat is. A v3 SDK a változtatást végrehajtó legújabb API-verzióra frissül, de nem törik le. Ha nem ad meg partíciókulcsot a műveletekhez, alapértelmezés szerint egy olyan rendszerkulcsot adunk meg, amely az összes meglévő tárolóval és dokumentummal működik.

Upsert removed for stored procedures

A korábban a upsert engedélyezve volt a nem partíciós gyűjtemények számára, de az API verziófrissítése esetén az összes gyűjtemény partícióra lett felosztva, ezért teljesen eltávolítottuk.

Az elem felolvasása nem 404-et ad vissza

const container = client.database(dbId).container(containerId)

// v2
try {
    container.items.read(id, undefined)
} catch (e) {
    if (e.code === 404) { console.log('item not found') }
}

// v3
const { result: item }  = container.items.read(id, undefined)
if (item === undefined) { console.log('item not found') }

Alapértelmezett többrétű írások

Az SDK mostantól alapértelmezés szerint több régióba is fog írni, ha az Ön Konfigurációja támogatja azt. Ez korábban opt-in behavior volt.

Helyes hibaobjektumok

A sikertelen kérelmek mostantól helyes hibát vagy hibaosztályokat adnak vissza. Korábban egyszerű JS-objektumokat tartalmaznak.

Új funkciók

Felhasználó által visszavonható kérések

A belső használatra való lehívás lehetővé teszi, hogy a AbortController API böngészőt használva támsuk be a felhasználó által megszakítható műveleteket. Az olyan műveletek esetén, amelyekben több kérés is folyamatban van (például keresztpartíciós lekérdezésekben), a művelethez szükséges összes kérés törlődik. A modern böngészőt használó felhasználók már rendelkezik AbortControllerrel. Node.js felhasználóknak Polyfill könyvtárat kell használnia

 const controller = new AbortController()
 const {result: item} = await items.query('SELECT * from c', { abortSignal: controller.signal});
 controller.abort()

Az átviteli sebesség beállítása a db/container létrehozási művelet részeként

const { database }  = client.databases.create({ id: 'my-database', throughput: 10000 })
database.containers.create({ id: 'my-container', throughput: 10000 })

@azure/mindenes-jel

A fejléctoken létrehozása egy új tárra lett felosztva, @azure/minden jelre. Bárki, aki közvetlenül hívja aTans REST API-t, ezzel aláírhatja a fejléceket ugyanazokkal a kóddal, mint amit @azure/többieken.

UUID a létrehozott iD-hez

v2 egyéni kóddal létrehozott elemkódokat. Áttértünk a jól ismert és karbantartott közösségi tárra.

Kapcsolati karakterláncok

Most már át lehet adni az Azure Portalról másolt kapcsolati karakterláncot:

const client = new CosmosClient("AccountEndpoint=https://test-account.documents.azure.com:443/;AccountKey=c213asdasdefgdfgrtweaYPpgoeCsHbpRTHhxuMsTaw==;")
Add DISTINCT and LIMIT/OFFSET queries (#306)
 const { results } = await items.query('SELECT DISTINCT VALUE r.name FROM ROOT').fetchAll()
 const { results } = await items.query('SELECT * FROM root r OFFSET 1 LIMIT 2').fetchAll()

Továbbfejlesztett böngészőélmény

Bár a v2 SDK használható a böngészőben, ez nem volt ideális élmény. Több beépített függvénytárat node.js polyfillre van szüksége, és egy kötegolót , például webpacket vagy csomagcsomagot kell használnia. A v3 SDK sokkal jobban megkönnyíti a böngészőben való felhasználói élményt.

  • Belső kérés felülírás a lehívásra (#245)
  • A puffer használatának eltávolítása (#330)
  • Az univerzális csomagokat és API-kat kedvelő csomóponthasználat eltávolítása (#328)
  • Váltás csomópont-megszakítás-vezérlőre (#294)

Hibajavítások

  • Az ajánlat olvasási és visszahozott ajánlattesztek kijavításán (#224)
  • Az EnableEndpointDiscovery (#207) hiba kijavítva
  • Hiányzó RUs-k kijavítása tördelt eredményen (#360)
  • A SQL paramétertípus (#346) kibontása
  • Ttl hozzáadása az ItemDefinition elemhez (#341)
  • CP-lekérdezési metrikák kijavítva (#311)
  • Add activityId to FeedResponse (#293)
  • Váltás _ts karakterláncról számra (#252)(#295)
  • A kérések díjösszesítő megoldásának (#289)
  • Üres karakterláncpartíciós kulcsok engedélyezése (#277)
  • Add string to conflict query type (#237)
  • EgyediKeyPolicy hozzáadása tárolóhoz (#234)

Mérnöki rendszerek

Nem mindig a legláthatóbb változások, de segítségük van abban, hogy a csapatunk gyorsabban és gyorsabban tudja kiszabadulni a kódot.

  • A rollup for production buildek (#104) használata
  • Frissítés a Typescript 3.5-re (#327)
  • Konvertálás TS-projekthivatkozásokká Tesztmappa kinyerése (#270)
  • A noUnusedLocals és a noUnusedParameters engedélyezése (#275)
  • Azure Pipelines YAML CI-buildekhez (#298)

Kiadás & ki nyugdíjba vonulási dátumai

A Microsoft az SDK-k leváltása előtt legalább 12 hónappal biztosítja az értesítést, hogy zökkenőmentes legyen az áttérés az újabb/támogatott verzióra. Az új funkciókat, funkciókat és optimalizálásokat a program csak az aktuális SDK-hoz ad hozzá, ezért azt javasoljuk, hogy a lehető leghamarabb frissítsen a legújabb SDK-verzióra.

Verzió Kiadás dátuma Ki nyugdíjba vonulása
3.4.2 2019. november 7. ---
3.4.1 2019. november 5. ---
3.4.0 2019. október 28. ---
3.3.6 2019. október 14. ---
3.3.5 2019. október 14. ---
3.3.4 2019. október 14. ---
3.3.3 2019. október 3. ---
3.3.2 2019. október 3. ---
3.3.1 2019. október 1. ---
3.3.0 2019. szeptember 24. ---
3.2.0 2019. augusztus 26. ---
3.1.1 2019. augusztus 7. ---
3.1.0 2019. július 26. ---
3.0.4 2019. július 22. ---
3.0.3 2019. július 17. ---
3.0.2 2019. július 9. ---
3.0.0 2019. június 28. ---
2.1.5 2019. március 20. ---
2.1.4 2019. március 15. ---
2.1.3 2019. március 8. ---
2.1.2 2019. január 28. ---
2.1.1 2018. december 5. ---
2.1.0 2018. december 4. ---
2.0.5 2018. november 7. ---
2.0.4 2018. október 30. ---
2.0.3 2018. október 30. ---
2.0.2 2018. október 10. ---
2.0.1 2018. szeptember 25. ---
2.0.0 2018. szeptember 24. ---
2.0.0-3 (RC) 2018. augusztus 2. ---
1.14.4 2018. május 3. 2020. augusztus 30.
1.14.3 2018. május 3. 2020. augusztus 30.
1.14.2 2017. december 21. 2020. augusztus 30.
1.14.1 2017. november 10. 2020. augusztus 30.
1.14.0 2017. november 9. 2020. augusztus 30.
1.13.0 2017. október 11. 2020. augusztus 30.
1.12.2 2017. augusztus 10. 2020. augusztus 30.
1.12.1 2017. augusztus 10. 2020. augusztus 30.
1.12.0 2017. május 10. 2020. augusztus 30.
1.11.0 2017. március 16. 2020. augusztus 30.
1.10.2 2017. január 27. 2020. augusztus 30.
1.10.1 2016. december 22. 2020. augusztus 30.
1.10.0 2016. október 3. 2020. augusztus 30.
1.9.0 2016. július 7. 2020. augusztus 30.
1.8.0 2016. június 14. 2020. augusztus 30.
1.7.0 2016. április 26. 2020. augusztus 30.
1.6.0 2016. március 29. 2020. augusztus 30.
1.5.6 2016. március 8. 2020. augusztus 30.
1.5.5 2016. február 2. 2020. augusztus 30.
1.5.4 2016. február 1. 2020. augusztus 30.
1.5.2 2016. január 26. 2020. augusztus 30.
1.5.2 2016. január 22. 2020. augusztus 30.
1.5.1 2016. január 4. 2020. augusztus 30.
1.5.0 2015. december 31. 2020. augusztus 30.
1.4.0 2015. október 6. 2020. augusztus 30.
1.3.0 2015. október 6. 2020. augusztus 30.
1.2.2 2015. szeptember 10. 2020. augusztus 30.
1.2.1 2015. augusztus 15. 2020. augusztus 30.
1.2.0 2015. augusztus 5. 2020. augusztus 30.
1.1.0 2015. július 9. 2020. augusztus 30.
1.0.3 2015. június 4. 2020. augusztus 30.
1.0.2 2015. május 23. 2020. augusztus 30.
1.0.1 2015. május 15. 2020. augusztus 30.
1.0.0 2015. április 8. 2020. augusztus 30.

GYIK

Hogyan értesítést kapok a kieső SDK-ról?

A Microsoft 12 hónapos előzetes értesítést nyújt a támogatás vége előtt a le mondani fog SDK-re, hogy megkönnyítse a támogatott SDK-kra való zökkenőmentes áttérést. A különféle kommunikációs csatornákon keresztül értesítjük Önt: az Azure Portalot, az Azure-frissítéseket és a közvetlen kommunikációt a hozzárendelt szolgáltatás-rendszergazdáknak.

A 12 hónapos időszak során kivezetni szeretnék az AzureTans DB SDK csomag használatával is szerződtethető alkalmazásokat?

Igen, a 12 hónapos értesítési időszak alatt a kivezetett Azure Azure Db SDK csomag használatával tud alkalmazásokat kiosztni, telepíteni és módosítani. Azt javasoljuk, hogy a 12 hónapos értesítési időszak alatt a megfelelő módon áttér az Azure Azure Sdk csomag egy újabb támogatott verziójára.

Mi történik a ki nyugdíjba vonulása után a nem támogatott Azure Azure Db SDK csomagokat használó alkalmazásokkal?

A kivezetett azure db a továbbiakban nem fog hibajavításokat és új funkciókat hozzáadni, illetve nem nyújt támogatást a kivezetett SDK-verziókhoz. Ha nem szeretne frissíteni, az SDK kivezetett verzióiból küldött kéréseket az Azure Azure Db szolgáltatás továbbra is kézbesíti.

Mely SDK-verziók fogják tartalmazni a legújabb funkciókat és frissítéseket?

Az új funkciók és frissítések csak a legújabb támogatott fő SDK-verzió legújabb alverzióját fogják hozzáadni. Azt javasoljuk, hogy mindig a legújabb verziót használja az új funkciók, teljesítménybeli fejlesztések és hibajavítások előnyeinek kihasználása érdekében. Ha az SDK régi, nem kivezetett verzióját használja, az Azure Azures DB-hez való kérései továbbra is működni fognak, de új funkciókhoz nem lesz hozzáférése.

Mit tegyek, ha nem tudom frissíteni az alkalmazásomat a vágási határidő előtt?

Azt javasoljuk, hogy a lehető leghamarabb frissítsen a legújabb SDK-ra. Miután az SDK-t felcímkézték a nyugdíjra, 12 hónapja lesz az alkalmazás frissítésére. Ha a kivezetés napja előtt nem tudja frissíteni az előfizetést, az SDK kivezetett verzióitól küldött kérelmeket továbbra is az Azure Azure Azure Db fogja kézbesíteni, így a futó alkalmazások továbbra is működőképesek maradnak. Az Azure Azure Db azonban a továbbiakban nem fog hibajavításokat és új funkciókat hozzáadni, illetve nem nyújt támogatást a kivezetett SDK-verziókhoz.

Ha támogatási csomagja van, és technikai támogatásra van szüksége, egy támogatási jegy iktatásán kapcsolatba léphet velünk.

Lásd még

Ha szeretne többet megtudni a Fogs DB-ről, olvassa el a Microsoft Azure DB szolgáltatáslapját.