Saltar al contenido principal

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

  1. Click en Integraciones -> Nueva integración.

imagen 1

  1. Selecciona el tipo de integración (AWS)

  2. 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).

  3. Selecciona el tipo de servicio (S3 o Athena)

  4. 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-example Importante: No ingresar el prefijo s3://

    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-results Importante: No ingresar el prefijo s3://
  5. 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)