Integraciones AWS
En este instructivo se detallan los pasos a seguir para configurar y utilizar una integración con AWS.
Paso 1 – Configurar la integración
- Click en Integraciones -> Nueva integración.

-
Selecciona el tipo de integración (AWS)
-
Ingresa el nombre:
Es el nombre que va a identificar la integración, por lo tanto debería ser claro y en formato de slug (guiones en lugar de espacios, sin acentos).
-
Selecciona el tipo de servicio (S3 o Athena)
-
Completa los campos
S3:
- Región: Indica la región de AWS en la que se encuentra creado el bucket de Amazon S3. Ejemplo:
us-east-1,sa-east-1. - Llave de acceso: Corresponde al Access Key ID de AWS.
- Llave secreta: Corresponde al Secret Access Key de AWS.
- Bucket: Nombre del bucket de Amazon S3 desde donde se leerán los archivos. Ejemplo:
bucket-exampleImportante: No ingresar el prefijos3://
Athena:
- Nombre: Es el nombre que va a identificar la integración, por lo tanto debería ser claro y en formato de slug (guiones en lugar de espacios, sin acentos).
- Región: Indica la región de AWS en la que se encuentra creado el bucket de Amazon S3. Ejemplo:
us-east-1,sa-east-1. - Llave de acceso: Corresponde al Access Key ID de AWS.
- Llave secreta: Corresponde al Secret Access Key de AWS.
- Salida S3: Ubicación donde se alojarán los datos del resultado de la consulta. Ejemplo:
bucket-example/athena-resultsImportante: No ingresar el prefijos3://
- Región: Indica la región de AWS en la que se encuentra creado el bucket de Amazon S3. Ejemplo:
-
Click en Guardar
Paso 2 – Utilización de una integración AWS en un guión
En esta sección se explica cómo utilizar una integración previamente creada. Desde un script en Ruby o Python puedes acceder a cualquier integración que hayas configurado anteriormente.
En ambos lenguajes, la invocación de una integración se realiza utilizando la siguiente sintaxis:
@@integration['nombre_de_la_integracion']
Importante: El nombre debe ser exactamente igual al colocado en el campo Nombre cuando se creó la integración.
Ruby
- S3:
result = @@integration['gredit-demo-s3']
puts result.download_from_s3('/data/users.csv')
El nombre 'gredit-demo-s3' debe coincidir exactamente con el nombre utilizado en la integración creada.
El parámetro, en este caso '/data/users.csv', es la key o path del documento alojado en el bucket indicado cuando creaste la configuración.
Si quieres utilizar otro bucket usando las mismas credenciales, puedes indicarlo así:
res = @@integration['gredit-demo-s3']
puts res.download_from_s3('/data/users.csv', bucket: 'other-bucket-name')
Subida de archivos a S3:
res = @@integration['gredit-demo-s3']
res.upload_to_s3('/data/output.csv', content)
El primer parámetro es la key o path de destino dentro del bucket. El segundo parámetro es el contenido a subir. Si quieres indicar el tipo de contenido puedes hacerlo así:
res = @@integration['gredit-demo-s3']
res.upload_to_s3('/data/output.csv', content, content_type: 'text/csv')
Si quieres subir a otro bucket usando las mismas credenciales, puedes indicarlo así:
res = @@integration['gredit-demo-s3']
res.upload_to_s3('/data/output.csv', content, bucket: 'other-bucket-name')
- Athena:
res = @@integration["athena-demo"]
rows = res.run_athena_query(
"SELECT * FROM users LIMIT 5",
database: "gredit_demo"
)
puts rows
El nombre 'athena-demo' debe coincidir exactamente con el nombre utilizado en la integración creada.
El primer parámetro que se coloca en la función run_athena_query es la query que se va a ejecutar. Ejemplo: "SELECT * FROM users LIMIT 5"
El segundo parámetro es la base de datos que se va a consultar. Ejemplo: "gredit_demo"
Si quieres utilizar otra ubicación de salida, diferente a la indicada en la integración, puedes indicarlo así:
res = @@integration["athena-demo"]
rows = res.run_athena_query(
"SELECT * FROM users LIMIT 5",
database: "gredit_demo",
output_location: "other-path"
)
puts rows
Python
- S3:
res = @@integration['gredit-demo-s3']
print(res.download_from_s3('/data/users.csv'))
El nombre 'gredit-demo-s3' debe coincidir exactamente con el nombre utilizado en la integración creada.
El parámetro, en este caso '/data/users.csv', es la key o path del documento alojado en el bucket indicado cuando creaste la configuración.
Si quieres utilizar otro bucket usando las mismas credenciales, puedes indicarlo así:
res = @@integration['gredit-demo-s3']
print(res.download_from_s3('/data/users.csv', bucket= 'other-bucket-name'))
Subida de archivos a S3:
res = @@integration['gredit-demo-s3']
res.upload_to_s3('/data/output.csv', content)
El primer parámetro es la key o path de destino dentro del bucket. El segundo parámetro es el contenido a subir. Si quieres indicar el tipo de contenido puedes hacerlo así:
res = @@integration['gredit-demo-s3']
res.upload_to_s3('/data/output.csv', content, content_type='text/csv')
Si quieres subir a otro bucket usando las mismas credenciales, puedes indicarlo así:
res = @@integration['gredit-demo-s3']
res.upload_to_s3('/data/output.csv', content, bucket='other-bucket-name')
- Athena:
res = @@integration["athena-demo"]
rows = res.run_athena_query(
"SELECT * FROM users LIMIT 5",
database="gredit_demo"
)
print(rows)
El nombre 'athena-demo' debe coincidir exactamente con el nombre utilizado en la integración creada.
El primer parámetro que se coloca en la función run_athena_query es la query que se va a ejecutar. Ejemplo: "SELECT * FROM users LIMIT 5"
El segundo parámetro es la base de datos que se va a consultar. Ejemplo: "gredit_demo".
Si quieres utilizar otra ubicación de salida, diferente a la indicada en la integración, puedes indicarlo así:
res = @@integration["athena-demo"]
rows = res.run_athena_query(
"SELECT * FROM users LIMIT 5",
database="gredit_demo",
output_location="other-path"
)
print(rows)