Extension Google Cloud Storage

Vous consultez la documentation d'Apigee Edge.
Accédez à la documentation sur Apigee X.
info

Version: 2.0.0

Lister, télécharger et générer des URL signées pour les fichiers d'un bucket Cloud Storage.

Ce contenu fournit une documentation de référence pour configurer et utiliser cette extension. Avant d'utiliser cette extension à partir d'un proxy d'API, vous devez:

  1. Créez un bucket Cloud Storage.

  2. Importez des objets dans votre bucket.

  3. Accordez l'autorisation d'accéder au bucket au compte de service GCP qui représente votre extension Google Cloud Storage. Pour en savoir plus sur le rôle à utiliser, consultez la page Rôles Cloud Storage. Pour en savoir plus sur les autorisations dans Cloud Storage, consultez Utiliser les autorisations IAM (Identity and Access Management).

  4. Générez une clé pour le compte de service à l'aide de la console GCP.

  5. Utilisez le contenu du fichier JSON de clé généré lorsque vous ajoutez et configurez l'extension à l'aide de la référence de configuration.

À propos de Cloud Storage

Cloud Storage est un service de stockage de fichiers sécurisé, durable et évolutif. Si vous débutez avec Cloud Storage, le guide de démarrage rapide de la documentation Cloud Storage est un bon point de départ.

Exemples

Les exemples suivants montrent comment configurer la prise en charge des actions d'extension Cloud Storage à l'aide de la règle ExtensionCallout.

Répertorier les fichiers

Dans l'exemple suivant, l'action listFiles de l'extension récupère une liste des fichiers et les renvoie dans un tableau. L'action listFiles n'accepte aucun paramètre d'entrée.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="false" enabled="true" name="Get-Storage-File-List">
    <DisplayName>Get Storage File List</DisplayName>
    <Connector>cloud-storage-extension-example</Connector>
    <Action>listFiles</Action>
    <Input><![CDATA[{}]]></Input>
    <Output parsed="false">storage.filelist.retrieved</Output>
</ConnectorCallout>

La valeur de la réponse se présente comme suit:

["example-text.txt","example-image.png"]

La règle Assign Message suivante récupère la valeur de réponse de la règle ExtensionCallout ci-dessus et la copie dans la charge utile de la réponse.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Storage-File-List">
    <DisplayName>Assign Storage File List</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{storage.filelist.retrieved}</Payload>
    </Set>
</AssignMessage>

Télécharger un fichier

La règle ExtensionCallout suivante utilise l'extension Google Cloud Storage pour télécharger un simple fichier texte dont le contenu est simplement Some example text..

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="false" enabled="true" name="Download-File">
    <DisplayName>Download File</DisplayName>
    <Connector>cloud-storage-extension-example</Connector>
    <Action>downloadFile</Action>
    <Input><![CDATA[{"fileName": "example-text.txt"}]]></Input>
    <Output>storage.file.retrieved</Output>
</ConnectorCallout>

La valeur de la réponse se présente comme suit:

{"content":"Some example text."}

La règle Assign Message suivante récupère la valeur renvoyée par l'extension et la copie dans la charge utile de la réponse.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Storage-File-List">
    <DisplayName>Assign Storage File List</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{storage.file.retrieved}</Payload>
    </Set>
</AssignMessage>

Générer une URL signée

La règle ExtensionCallout suivante utilise cette extension pour générer une URL permettant de télécharger le fichier spécifié à partir du bucket Cloud Storage. Il transmet le nom du fichier, ainsi que la date à laquelle l'URL doit expirer et ne plus fonctionner.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="false" enabled="true" name="Get-Signed-URL">
    <DisplayName>Get Signed URL</DisplayName>
    <Connector>cloud-storage-extension-example</Connector>
    <Action>generateSignedURL</Action>
    <Input><![CDATA[{
        "fileName" : "example-text.txt",
        "expiresOn" : "2018-08-05"
    }]]></Input>
    <Output>storage.url.retrieved</Output>
</ConnectorCallout>

La valeur renvoyée par l'extension ressemble à ceci :

{"url":"https://storage.googleapis.com/storage-extension-example/example-text.txt?GoogleAccessId=extension-test%40my-test-33333.iam.gserviceaccount.com&Expires=1533427200&Signature=Y1cE1DCHesWeIZILRhdIuDR%2FhzZXZ%2BPeY3J1PUkRiosFYj41itHBWh2%2BTQgH9kI6E8s2mWrVDFU43YR7s8Tm9W5VgWRwh0nXSactQ0xKbkKbGZmCcWxgIscOezc1zc%2Bp7lnXSx1qd4wIlIKVH4KCd9WLx4qB1dLxGNxMKB32tA3dio5IiMXaHEA%2FR2fYc0Pjh45t8L5rilk5pekv7jfd3sfsgdfgfdglkj%2F7E%2FlJ%2B60RnetqV2IDqrc0sVEgSLTpgTbDGU%2Ft3EcitRUFOSdOb5czt7CiIwKAYSmDEFMSNHHiNTWjvLzq4IU%2BCa4Z5aKyvww%3D%3D"}

La règle AssignMessage suivante récupère la valeur renvoyée par l'extension et la copie dans le corps de la réponse.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Storage-File-URL">
    <DisplayName>Assign Storage File URL</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{storage.url.retrieved}</Payload>
    </Set>
</AssignMessage>

Actions

downloadFile

Télécharge le fichier spécifié.

Paramètres de requête

Paramètre Description Type Valeur par défaut Obligatoire
fileName Fichier à télécharger. Chaîne Aucune. Oui.

Syntaxe

<Input><![CDATA[{"fileName" : "the-file-to-download"}]]></Input>

Exemple

<Input><![CDATA[{"fileName" : "example-text.txt"}]]></Input>

Réponse

JSON représentant un objet avec le contenu du fichier téléchargé. Exemple :

{"content":"Some example text."}

listFiles

Répertorie les fichiers disponibles au téléchargement.

Paramètres de requête

Aucune.

Réponse

Tableau de noms de fichiers. Exemple :

["example-text.txt","example-image.png"]

generateSignedURL

Crée une URL signée pour le fichier spécifié dans le bucket. Cette URL permet de télécharger le fichier.

Paramètres de requête

Paramètre Description Type Valeur par défaut Obligatoire
fileName Nom de l'objet Cloud Storage pour lequel générer une URL signée. Chaîne Aucune. Oui.
expiresOn Date à laquelle l'URL signée doit expirer. Chaîne Aucune. Non.

Syntaxe

<Input><![CDATA[{
  "fileName" : "file-for-which-to-generate-url",
  "expiresOn" : "date-to-expire-url"
}]]></Input>

Exemple

<Input><![CDATA[{
  "fileName" : "example-text.txt",
  "expiresOn" : "2018-08-05"
}]]></Input>

Réponse

JSON représentant un objet avec l'URL signée. Exemple :

{"url":"https://storage.googleapis.com/storage-extension-example/example-text.txt?GoogleAccessId=extension-test%40my-test-33333.iam.gserviceaccount.com&Expires=1533427200&Signature=Y1cE1DCHesWeIZILRhdIuDR%2FhzZXZ%2BPeY3J1PUkRiosFYj41itHBWh2%2BTQgH9kI6E8s2mWrVDFU43YR7s8Tm9W5VgWRwh0nXSactQ0xKbkKbGZmCcWxgIscOezc1zc%2Bp7lnXSx1qd4wIlIKVH4KCd9WLx4qB1dLxGNxMKB32tA3dio5IiMXaHEA%2FR2fYc0Pjh45t8L5rilk5pekv7jfd3sfsgdfgfdglkj%2F7E%2FlJ%2B60RnetqV2IDqrc0sVEgSLTpgTbDGU%2Ft3EcitRUFOSdOb5czt7CiIwKAYSmDEFMSNHHiNTWjvLzq4IU%2BCa4Z5aKyvww%3D%3D"}

Documentation de référence sur la configuration

Utilisez les éléments suivants lorsque vous configurez et déployez cette extension pour l'utiliser dans des proxys d'API. Pour savoir comment configurer une extension à l'aide de la console Apigee, consultez Ajouter et configurer une extension.

Propriétés d'extension courantes

Les propriétés suivantes sont présentes pour chaque extension.

Propriété Description Par défaut Obligatoire
name Nom que vous attribuez à cette configuration de l'extension. Aucune Oui
packageName Nom du package d'extension tel qu'indiqué par Apigee Edge. Aucune Oui
version Numéro de version du package d'extension à partir duquel vous configurez une extension. Aucune Oui
configuration Valeur de configuration spécifique à l'extension que vous ajoutez. Consultez Propriétés de ce package d'extension. Aucune Oui

Propriétés de ce package d'extension

Propriété Description Par défaut Obligatoire
bucketName Bucket GCS avec lequel cette extension doit interagir. Aucune. Oui.