Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Sürüm 2.0.2
Cloud Spanner veritabanında ekleme, sorgulama ve güncelleme işlemleri gerçekleştirme.
Bu içerik, uzantının yapılandırılması ve kullanılmasıyla ilgili referans bilgiler sağlar. ExtensionCallout politikası kullanılarak bir API proxy'sinden uzantıyı kullanmadan önce şunları yapmanız gerekir:
Örnek Oluşturma ve Yönetme bölümünde açıklandığı gibi bir Cloud Spanner örneği oluşturun ve veritabanı oluşturun.
Örneği ve veritabanını oluşturduktan sonra, uzantınızı temsil eden Google Cloud hizmet hesabına veritabanınıza erişim izni verin. Kullanılacak rol hakkında daha fazla bilgi için Cloud Spanner rolleri başlıklı makaleyi inceleyin. Cloud Spanner erişim denetimi hakkında daha fazla bilgi için IAM rollerini uygulama ve Cloud Spanner için erişim denetimi başlıklı makaleleri inceleyin.
Veritabanınıza istediğiniz erişim düzeyine izin veren bir hizmet hesabınız olduğunda Google Cloud Console'u kullanarak hizmet hesabı için bir anahtar oluşturun. Bu uzantıyı yapılandırırken sonuçta elde edilen anahtar JSON dosyasının içeriğini kullanın.
Yapılandırma referansını kullanarak uzantıyı eklerken ve yapılandırırken sonuçtaki anahtar JSON dosyasının içeriğini kullanın.
Cloud Spanner hakkında
Cloud Spanner, yüksek kullanılabilirlik, güçlü tutarlılık ve işlemsel okuma ve yazma işlemleri gerektiren ilişkisel, yapılandırılmış ve yarı yapılandırılmış veriler için yararlı olan bir ilişkisel veritabanı hizmetidir.
Cloud Spanner'ı yeni kullanmaya başladıysanız Cloud Spanner belgelerindeki hızlı başlangıç kılavuzu ile başlayabilirsiniz.
Örnekler
Aşağıdaki örneklerde, ExtensionCallout politikası kullanılarak Cloud Spanner uzantısı işlemlerine yönelik desteğin nasıl yapılandırılacağı gösterilmektedir.
Veri ekle
Aşağıdaki örnekte, uzantının insert işlemi kullanıcı tablosuna yeni bir kullanıcı ekler.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Insert-New-User">
<DisplayName>Insert New User</DisplayName>
<Connector>spanner-users-products</Connector>
<Action>insert</Action>
<Input><![CDATA[{
"tableName" : "user",
"rows" : [{
"username": "jonesy42",
"firstName": "Floyd",
"lastName": "Jones",
"address": "3695 Auctor Street",
"city": "Gresham",
"region": "OR",
"postalCode": "12693",
"email": "floydster@example.com"
}]
}]]></Input>
</ConnectorCallout>
Veri alma
Bu örnekte, bir sorgu user tablosundan kullanıcı adı ve e-posta değerlerini alır.
İlk olarak, AssignMessage politikası, bir sorgunun WHERE ifadesinde kullanılmak üzere bir postal.code.value değişkeni atar. Bu bir örnektir. Politikanız muhtemelen değeri istemci isteği parametrelerine göre ayarlayacaktır.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Postal-Code">
<AssignTo createNew="true" transport="http" type="request"/>
<AssignVariable>
<Name>postal.code</Name>
<Value>86519</Value>
</AssignVariable>
<IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</AssignMessage>
Aşağıdaki ExtensionCallout politikası, WHERE ifadesindeki postal.code.value değişkeninin içeriğini kullanarak veritabanına karşı bir sorgu yürütür.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Get-User-Data">
<DisplayName>Get User Data</DisplayName>
<Connector>spanner-users-products</Connector>
<Action>querySQL</Action>
<Input><![CDATA[{
"sql" : "SELECT username, email FROM user WHERE postalCode = @postalCode",
"params" : {
"postalCode" : "{postal.code.value}"
}
}]]></Input>
<Output>spanner.userdata.retrieved</Output>
</ConnectorCallout>
Ardından, aşağıdaki AssignMessage politikası, istemciye döndürülen yanıt olarak spanner.userdata.retrieved değişkeninde depolanan uzantının yanıtını kullanır.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Query-Response-Data">
<DisplayName>Get Query Response Data</DisplayName>
<AssignTo type="response" createNew="false"/>
<Set>
<Payload contentType="application/json">{spanner.userdata.retrieved}</Payload>
</Set>
</AssignMessage>
Bu örnekte, yanıt verileri aşağıdaki gibi JSON olarak döndürülür.
{
"rows": [
{
"username": "freewill444",
"email": "freewill@example.com"
}
]
}
Verileri güncelle
Bu örnekte <Input> öğesi, tablonun birincil anahtarı olan username ve email sütunu için yeni bir değer içerir.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Update-User-Data">
<DisplayName>Update User Data</DisplayName>
<Connector>spanner-users-products</Connector>
<Action>update</Action>
<Input><![CDATA[{
"tableName" : "user",
"rows": [{
"username":"Liz456",
"email":"lizzard@example.com"
}]
}]]></Input>
</ConnectorCallout>
İşlemler
insert
Belirtilen satırları veritabanına ekler.
Söz dizimi
<Action>insert</Action>
<Input><![CDATA[{
"tableName" : "table-to-insert-into",
"rows" : "rows-to-insert"
}]]></Input>
Örnek
Aşağıdaki örnekte, uzantının insert işlemi kullanıcı tablosuna yeni bir kullanıcı ekler. Bir satır eklenir.
<Action>insert</Action>
<Input><![CDATA[{
"tableName" : "user",
"rows" : [{
"username": "jonesy42",
"firstName": "Floyd",
"lastName": "Jones",
"address": "3695 Auctor Street",
"city": "Gresham",
"region": "OR",
"postalCode": "12693",
"email": "floydster@example.com"
}]
}]]></Input>
İstek parametreleri
| Parametre | Açıklama | Tür | Varsayılan | Zorunlu |
|---|---|---|---|---|
| tablo adı | Satırların ekleneceği veritabanındaki tablo. | Dize | Yok. | Evet. |
| satırlar | Eklenecek satırlar, rows JSON nesnesinde dizi olarak ifade edilir. |
Dizi | Yok. | Evet. |
Yanıt
Yok.
querySQL
Belirtilen parametrelerle SQL ifadesini kullanarak veritabanını sorgular. Parametreler, SQL ifadesinde @ ile başlayan adlarla verilir. Parametre değerleri, bu işlemin params parametresinde belirtilir.
Cloud Spanner sorgu söz dizimi hakkında ayrıntılı bilgi için Sorgu Söz Dizimi başlıklı makaleyi inceleyin.
Söz dizimi
<Action>querySQL</Action>
<Input><![CDATA[{
"sql" : "sql-query-statement",
"params" : {
"param1" : "columnValue"
}
}]]></Input>
Örnek
Bu örnekte, bir sorgu user tablosundan username ve email sütun değerlerini alır. SQL ifadesi, postal.code.value akış değişkeninden ayarlanan bir postalCode parametresini belirtir.
<Action>querySQL</Action>
<Input><![CDATA[{
"sql" : "SELECT username, email FROM user WHERE postalCode = @postalCode",
"params" : {
"postalCode" : "{postal.code.value}"
}
}]]></Input>
İstek parametreleri
| Parametre | Açıklama | Tür | Varsayılan | Zorunlu |
|---|---|---|---|---|
| sql | Yürütülecek SQL sorgusu. @-ön ekli parametre adlarıyla parametreleri belirtebilirsiniz. Bu parametre adları, bu işlemin params parametresindeki anahtarlara karşılık gelmelidir. |
Dize | Yok. | Evet. |
| params | Anahtarları ve değerleri, SQL sorgusunda kullanılan parametre adları ve değerleri olan bir nesne. Burada birden fazla parametre listeleyebilirsiniz. | Nesne | Yok. | Sıra |
Yanıt
Sorgu tarafından döndürülen sütun adı-değer çiftleri dizisini içeren bir rows nesnesi. Örneğin:
{
"rows": [
{
"username": "freewill444",
"email": "freewill@example.com"
}
]
}
update
Veritabanındaki satırları belirtilen verilerle günceller.
Söz dizimi
<Input><![CDATA[{
"tableName" : "table-with-rows-to-update",
"rows" : "rows-to-update"
}]]></Input>
Örnek
Bu örnekte, username değeri Liz456 olan kullanıcının e-posta adresi yeni bir değerle güncellenir. Bir satır güncellendi.
<Action>update</Action>
<Input><![CDATA[{
"tableName" : "user",
"rows": [{
"username":"Liz456",
"email":"lizzard@example.com"
}]
}]]></Input>
İstek parametreleri
| Parametre | Açıklama | Tür | Varsayılan | Zorunlu |
|---|---|---|---|---|
| tablo adı | Satırların güncellenmesi gereken veritabanındaki tablo. | Dize | Yok. | Evet. |
| satırlar | Güncellenecek satır verileri dizisi. Dizideki her varlık, güncellenecek satırın benzersiz kimlik (ör. birincil anahtar) değerini içermelidir. | Dizi | Yok. | Evet. |
Yanıt
Yok.
Yapılandırma Referansı
Bu uzantıyı API proxy'lerinde kullanılacak şekilde yapılandırıp dağıtırken aşağıdakileri kullanın. Apigee konsolunu kullanarak uzantı yapılandırma adımları için Uzantı ekleme ve yapılandırma başlıklı makaleyi inceleyin.
Sık kullanılan uzantı özellikleri
Aşağıdaki özellikler her uzantı için mevcuttur.
| Mülk | Açıklama | Varsayılan | Zorunlu |
|---|---|---|---|
name |
Uzantının bu yapılandırmasını verdiğiniz ad. | Yok | Evet |
packageName |
Apigee Edge'in sağladığı uzantı paketinin adı. | Yok | Evet |
version |
Uzantıyı yapılandırdığınız uzantı paketinin sürüm numarası. | Yok | Evet |
configuration |
Eklediğiniz uzantıya özgü yapılandırma değeri. Bu uzantı paketinin özellikleri başlıklı makaleyi inceleyin | Yok | Evet |
Bu uzantı paketinin özellikleri
Bu uzantıya özel aşağıdaki yapılandırma özelliklerinin değerlerini belirtin.
| Mülk | Açıklama | Varsayılan | Zorunlu |
|---|---|---|---|
| proje kimliği | Veritabanını içeren Google Cloud projesinin kimliği. | Yok. | Evet. |
| instanceId | Google Cloud projenizdeki Cloud Spanner örneğinin kimliği. | Yok. | Evet. |
| databaseId | Cloud Spanner veritabanının kimliği. | Yok. | Evet. |
| giriş bilgileri | Apigee Edge konsoluna girildiğinde bu, hizmet hesabı anahtar dosyanızın içeriğidir. Yönetim API'si kullanılarak gönderildiğinde, hizmet hesabı anahtar dosyasından oluşturulan base64 kodlu bir değerdir. | Yok. | Evet. |