Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Sürüm 1.0.5
Google Cloud projeniz üzerinden dağıtılan Cloud Functions işlevlerini çağırın.
Şu anda bu uzantı HTTP tetikleyici işlevlerinin çağrılmasını desteklemektedir.
Ön koşullar
Bu içerik, bu uzantının yapılandırılması ve kullanılması için referans sağlamaktadır. ExtensionDescription politikası aracılığıyla bir API proxy'sinden uzantıyı kullanmadan önce şunları yapmanız gerekir:
Cloud Functions API'yi etkinleştirin.
Google Cloud projeniz için Cloud Functions'ta işlevleri tanımlayın ve dağıtın.
İşlevde almak istediğiniz erişim düzeyi için IAM üzerinden kullanıcı erişimi verin. Örneğin, işleve erişimi yalnızca uzantıyı yapılandırmak için kullandığınız hizmet hesabıyla sınırlandırabilirsiniz.
GCP Console'u kullanarak hizmet hesabı için bir anahtar oluşturun.
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 Functions hakkında
Google Cloud Functions sayesinde, Google Cloud'da işlev oluşturup dağıtabilir ve ardından bu işlevleri başka bir koddan çağırabilirsiniz. Cloud Functions'a giriş yapmak için hızlı başlangıç kılavuzlarından birini deneyin.
Örnekler
Aşağıdaki örnekte, ExtensionDescription politikası kullanılarak Cloud Functions'da işlevlerin nasıl çağrılacağı gösterilmektedir.
Node.js işlevini çağırma
Aşağıdaki örnekte, Google Cloud Functions uzantısını çağıran bir ExtensionReference politikası açıklanmaktadır. Uzantı, varsayılan "hello world" değerini çağırır. işlevi dahil edilir.
Aşağıdaki Node.js JavaScript, GCP hesabı için Cloud Functions'da dağıtılır. İstek bir mesaj özelliği içeriyorsa kod bunu döndürür. Aksi takdirde, "Hello World!" değerini döndürür. kabul etmiş olursunuz.
/**
* Responds to any HTTP request.
*
* @param {!express:Request} req HTTP request context.
* @param {!express:Response} res HTTP response context.
*/
exports.helloWorld = (req, res) => {
let message = req.query.message || req.body.message || 'Hello World!';
res.status(200).send(message);
};
Bu örnekte, kimlik doğrulaması yapmak ve Cloud Functions'da kod çağırma yetkisi almak için gereken kimlik bilgileriyle yapılandırılmış bir Google Cloud Functions uzantısı bulunmaktadır.
Önceki işlev kodu, Cloud Functions'a basit bir şekilde helloWorld
olarak kaydedilir. Aşağıdaki ExtensionDescription politikası yapılandırma kodunda bu ad, işlevin dağıtıldığı Cloud Functions ortamının özellikleriyle eşleşen bölge ve proje kimliği değerleriyle birlikte kullanılır.
<Action>invoke</Action>
<Input><![CDATA[
{
"region" : "us-central1",
"projectId" : "my-project",
"functionName" : "hello-world",
"method" : "POST",
"payload" : { "message" : "Hello yourself!" }
}
]]></Input>
<Output parsed="false">function.response</Output>
Aşağıdaki assignMessage politikası, hata ayıklama amacıyla yanıt değerini yakalar.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Function-Response">
<DisplayName>Get Function Response</DisplayName>
<AssignTo type="response" createNew="false"/>
<Set>
<Payload contentType="application/json">{function.response}</Payload>
</Set>
</AssignMessage>
Yukarıdaki isteğe verilen yanıt aşağıdaki gibi olacaktır:
Hello yourself!
Varsayılan parsed
değeri true
. Bu örnekte, politikanın <Output>
etiketinde parsed="false"
,
Bu, politikanın JSON yanıtını ayrıştırmasını engeller.
Çoğu durumda, Cloud Functions uzantısını kullanırken parsed="false"
ayarını yaparsınız.
Bkz. <Çıkış> öğesini kullanın.
Cloud Functions işlevi bir JSON yanıtı döndürürse ve parsed="true"
ayarını yaparsanız uzantıdan gelen yanıt bir nesne referansı olur. Referanstan yanıt almak için şu söz dizimini kullanın: {objectName}.{jsonKey}
. Örneğin:
function.response.message
İşlemler
çağırmak
Bir Cloud işlevini çağırır.
Şu anda bu uzantı HTTP tetikleyici işlevlerinin çağrılmasını desteklemektedir.
Söz dizimi
<Action>invoke</Action>
<Input><![CDATA[
{
"region" : "deployment-region",
"projectId" : "project-id",
"functionName" : "function-name",
"method" : "http-method",
"payload" : { json-payload }
}
]]></Input>
<Output>function.response</Output>
Örnek
<Action>invoke</Action>
<Input><![CDATA[
{
"region" : "us-central1",
"projectId" : "my-project",
"functionName" : "hello-world",
"method" : "POST",
"payload" : { "message" : "Hello yourself!" }
}
]]></Input>
<Output>function.response</Output>
İstek parametreleri
Parametre | Açıklama | Tür | Varsayılan | Zorunlu |
---|---|---|---|---|
bölge | İşlevin dağıtıldığı Google Cloud bölgesi. | Dize. | Yok. | Evet. |
proje kimliği | GCP proje kimliği. | Dize. | Yok. | Evet. |
functionName | Çağrılacak HTTP işlevinin adı. Bu, işlevi oluştururken kullandığınız addır (işlevin kodundan alınmış bir ad olması gerekmez). | Dize. | Yok. | Evet. |
method | İşlev çağrılırken kullanılacak HTTP yöntemi. | Dize. | GET |
Sıra |
yük | İşlev çağrısıyla birlikte gönderilecek yük. | JSON biçiminde olmalıdır. | Yok. | Sıra |
Yanıt
Varsa belirtilen işlevin yanıt değeri.
Yanıt özellikleri
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 |
---|---|---|---|
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. |