Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Sürüm 1.4.2
Cloud Spanner veritabanında ekleme, sorgulama ve güncelleme işlemleri gerçekleştirin.
Bu içerik, bu uzantının yapılandırılması ve kullanılması için referans sağlamaktadır. Uzantıyı ExtensionAçıklama politikası ile ilgili olarak aşağıdaki işlemleri gerçekleştirmelisiniz:
Örnek Oluşturma ve Yönetme bölümünde açıklandığı şekilde bir Cloud Spanner örneği oluşturun ve bir veritabanı oluşturun.
Örneği ve veritabanını oluşturduktan sonra uzantınızı temsil eden GCP hizmet hesabına veritabanınıza erişim için izin verin. Kullanılacak rol hakkında daha fazla bilgi için Cloud Spanner rolleri'ne bakın. Cloud Spanner erişim denetimi hakkında daha fazla bilgi için IAM Rolleri Uygulama ve Cloud Spanner için Erişim Denetimi bölümlerine bakın.
İstediğiniz veritabanına erişim düzeyi için izni olan bir hizmet hesabınız olduğunda, hizmet hesabı için anahtar oluşturmak üzere GCP Console'u kullanın. Bu uzantıyı yapılandırırken sonuçta ortaya çıkan 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çta ortaya çıkan 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 kullanışlı bir ilişkisel veritabanı hizmetidir.
Cloud Spanner'ı kullanmaya yeni başlıyorsanız Cloud Spanner belgelerindeki hızlı başlangıç kılavuzu, iyi bir başlangıç noktası olabilir.
Örnekler
Aşağıdaki örneklerde, ExtensionDescription politikası kullanılarak Cloud Spanner uzantı işlemleri için 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 alın
Bu örnekte, bir sorgu user
tablosundan kullanıcı adı ve e-posta değerlerini alır.
İlk olarak assignMessage politikası, sorgu WHERE ifadesinde kullanılmak üzere bir postal.code.value
değişkeni atar. Bu bir örnektir. Politikanız muhtemelen bu değeri istemci isteği parametrelerine göre ayarlar.
<?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 ExtensionDraft politikası, WHERE yan tümcesindeki 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 AssignmentMessage politikası uzantının yanıtını kullanır.
spanner.userdata.retrieved
değişkeninde depolanır. Bunun nedeni,
teslim etmeye odaklandığı
teslimatı öğrendiniz.
<?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 biçiminde döndürülür.
{
"rows": [
{
"username": "freewill444",
"email": "freewill@example.com"
}
]
}
Verileri güncelle
Bu örnekte <Input>
öğesi, tablonun birincil anahtarını ve email
sütunu için yeni bir değeri (username
) içeriyor.
<?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 |
---|---|---|---|---|
tableName | Veritabanında bulunan, satırların ekleneceği 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 deyimini kullanarak veritabanını sorgular. Parametreler, SQL deyiminde @ başındaki adlarla verilir; parametre değerleri, bu işlemin params
parametresinde belirtilir.
Cloud Spanner sorgu söz dizimiyle ilgili ayrıntılar için Sorgu Söz Dizimi bölümüne bakın.
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ıyor. 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. Parametreleri, başına @ işareti eklenmiş parametre adlarıyla belirtebilirsiniz. Bu parametre adları, bu işlemin params parametresindeki anahtarlara karşılık gelmelidir. |
Dize | Yok. | Evet. |
parametreler | 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 |
---|---|---|---|---|
tableName | Veritabanında satırların güncellenmesi gereken tablo. | Dize | Yok. | Evet. |
satırlar | Güncellenecek satır verileri dizisi. Dizideki her öğe, güncellenecek satır için 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 kullanmak üzere 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'ya bakın.
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.
Özellik | Açıklama | Varsayılan | Zorunlu |
---|---|---|---|
proje kimliği | Veritabanını içeren GCP projesinin kimliği. | Yok. | Evet. |
instanceId | GCP projenizdeki Cloud Spanner örneğinin kimliği. | Yok. | Evet. |
veritabanı kimliği | Cloud Spanner veritabanının kimliği. | Yok. | Evet. |
giriş bilgileri | Apigee Edge konsoluna girildiğinde hizmet hesabı anahtar dosyanızın içeriği bu şekildedir. Management API aracılığıyla gönderildiğinde, hizmet hesabı anahtar dosyasından oluşturulan base64 kodlu bir değerdir. | Yok. | Evet. |