<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Andres</title>
    <description>The latest articles on Forem by Andres (@andresguecha).</description>
    <link>https://forem.com/andresguecha</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1138088%2Fc0f14ea4-60fb-417e-adff-b43b523c0b86.jpg</url>
      <title>Forem: Andres</title>
      <link>https://forem.com/andresguecha</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/andresguecha"/>
    <language>en</language>
    <item>
      <title>AWSChallenge - Week 2</title>
      <dc:creator>Andres</dc:creator>
      <pubDate>Fri, 05 Dec 2025 14:50:59 +0000</pubDate>
      <link>https://forem.com/andresguecha/awschallenge-week-2-5b25</link>
      <guid>https://forem.com/andresguecha/awschallenge-week-2-5b25</guid>
      <description>&lt;p&gt;🚀 NO PARAMOS!!!, continuamos con la semana dos de nuestros #AWSChallenge, ahora quiero mostrarles las ventajas de los servicios Serverless, Construiremos un Pipeline de datos completo, desde la ingesta, procesamiento y visualización de datos, enteramente en AWS y librerias de python como streamlit, lo llamaremos : "Crypto-Tracker Serverless"&lt;/p&gt;

&lt;p&gt;¿Alguna vez te has preguntado cómo las grandes empresas monitorean datos en tiempo real sin tener servidores encendidos las 24 horas? La respuesta es Arquitectura Serverless.&lt;/p&gt;

&lt;p&gt;Hoy no vamos a ver teoría. Hoy vamos a construir.&lt;/p&gt;

&lt;p&gt;En este taller paso a paso, crearemos un sistema que monitorea el precio de Bitcoin y Ethereum, lo almacena en la nube y lo visualiza en un dashboard interactivo.&lt;/p&gt;

&lt;p&gt;🏗️ La Arquitectura&lt;br&gt;
Nuestro flujo de datos ("Data Pipeline") será completamente nativo de la nube:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuq8tm1iluiocx0p3j7wu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuq8tm1iluiocx0p3j7wu.png" alt=" " width="800" height="272"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fuente: CoinGecko API (Datos públicos gratuitos).&lt;/li&gt;
&lt;li&gt;Ingesta (Compute): AWS Lambda (Python) orquestada por EventBridge.&lt;/li&gt;
&lt;li&gt;Almacenamiento: Amazon DynamoDB (NoSQL de baja latencia).&lt;/li&gt;
&lt;li&gt;Backend API: Amazon API Gateway para exponer los datos de forma segura.&lt;/li&gt;
&lt;li&gt;Frontend: Streamlit para visualizar las tendencias.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🛠️ Fase 1: El Almacén de Datos (DynamoDB)&lt;br&gt;
Primero, necesitamos un lugar rápido y flexible para guardar nuestros precios.&lt;/p&gt;

&lt;p&gt;Ve a la consola de AWS DynamoDB &amp;gt; Create Table.&lt;/p&gt;

&lt;p&gt;Table Name: CryptoPrecios&lt;/p&gt;

&lt;p&gt;Partition Key: symbol (String). Ej: BTC&lt;/p&gt;

&lt;p&gt;Sort Key: timestamp (String). Ej: 2025-12-05T10:00:00&lt;/p&gt;

&lt;p&gt;Configuración: Selecciona On-Demand.&lt;/p&gt;

&lt;p&gt;💡 Pro Tip: La combinación de Partition Key + Sort Key nos permite hacer consultas ultra rápidas de series de tiempo por moneda.&lt;/p&gt;

&lt;p&gt;⚡ Fase 2: Ingesta Automática (Lambda + EventBridge)&lt;br&gt;
Vamos a crear un "robot" que busque los precios cada 5 minutos.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkhfydqu2zipa2mob6oqn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkhfydqu2zipa2mob6oqn.png" alt=" " width="800" height="577"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;La Función Lambda (Writer)
Crea una función llamada CryptoIngestor (Python 3.9+) y pega este código. Usaremos urllib3 para no complicarnos con Layers externos.
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
import json
import boto3
import urllib3
from datetime import datetime

# Configuración
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('CryptoPrecios')
http = urllib3.PoolManager()

def lambda_handler(event, context):
    coins = {'bitcoin': 'BTC', 'ethereum': 'ETH'}
    url = "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum&amp;amp;vs_currencies=usd"

    try:
        response = http.request('GET', url)
        data = json.loads(response.data.decode('utf-8'))
        current_time = datetime.now().isoformat()

        with table.batch_writer() as batch:
            for coin_id, symbol in coins.items():
                price = data[coin_id]['usd']
                batch.put_item(Item={
                    'symbol': symbol,
                    'timestamp': current_time,
                    'price': str(price)
                })
        return {'statusCode': 200, 'body': 'Datos Ingestados OK'}

    except Exception as e:
        print(f"Error: {e}")
        return {'statusCode': 500, 'body': 'Error en ingesta'}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;Los Permisos (IAM)
Tu Lambda fallará si no le das permiso. Ve a Configuration &amp;gt; Permissions, edita el Rol y añade una Inline Policy:
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    "Effect": "Allow",
    "Action": ["dynamodb:PutItem", "dynamodb:BatchWriteItem"],
    "Resource": "arn:aws:dynamodb:*:*:table/CryptoPrecios"
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;La Automatización (EventBridge)
En la Lambda, haz clic en Add Trigger &amp;gt; EventBridge.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Schedule Expression: rate(5 minutes).&lt;/p&gt;

&lt;p&gt;¡Listo! Tu base de datos empezará a llenarse sola.&lt;/p&gt;

&lt;p&gt;🌐 Fase 3: Exponiendo los Datos (API Gateway)&lt;/p&gt;

&lt;p&gt;No es buena práctica conectar el Frontend directo a la Base de Datos. Usaremos una API intermedia.&lt;/p&gt;

&lt;p&gt;Crea una segunda Lambda llamada CryptoReader con permisos de dynamodb:Query.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
import json
import boto3
from boto3.dynamodb.conditions import Key

table = boto3.resource('dynamodb').Table('CryptoPrecios')

def lambda_handler(event, context):
    symbol = event.get('queryStringParameters', {}).get('symbol', 'BTC')
    response = table.query(
        KeyConditionExpression=Key('symbol').eq(symbol),
        ScanIndexForward=False, Limit=50
    )
    return {
        'statusCode': 200,
        'body': json.dumps(response['Items'])
    }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ve a API Gateway &amp;gt; Create HTTP API.&lt;/p&gt;

&lt;p&gt;Crea una ruta GET /get-prices e intégrala con tu Lambda CryptoReader.&lt;/p&gt;

&lt;p&gt;Importante: Habilita CORS (Origins: *) para que tu Streamlit local pueda acceder.&lt;/p&gt;

&lt;p&gt;📊 Fase 4: Visualización (Streamlit)&lt;/p&gt;

&lt;p&gt;Visualicemos nuestros datos con Python puro.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa60zkhjoi4mf2oayqs4a.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa60zkhjoi4mf2oayqs4a.gif" alt=" " width="720" height="233"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Instala las librerías: pip install streamlit pandas requests&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
import streamlit as st
import pandas as pd
import requests

# ⚠️ REEMPLAZA CON TU URL DE API GATEWAY
API_URL = "https://TU-API-ID.execute-api.us-east-1.amazonaws.com/get-prices"

st.set_page_config(page_title="Crypto Workshop", layout="wide")
st.title("⚡ AWS Serverless Crypto Tracker")

symbol = st.selectbox("Moneda:", ["BTC", "ETH"])

if st.button('Refrescar'):
    try:
        r = requests.get(f"{API_URL}?symbol={symbol}")
        data = r.json()
        df = pd.DataFrame(data)

        # Limpieza de datos
        df['timestamp'] = pd.to_datetime(df['timestamp'])
        df['price'] = df['price'].astype(float)
        df = df.sort_values('timestamp')

        # Métricas
        latest = df.iloc[-1]['price']
        st.metric(label=f"Precio Actual {symbol}", value=f"${latest:,.2f}")

        # Gráfico
        st.area_chart(df, x='timestamp', y='price')

    except Exception as e:
        st.error(f"Error conectando a AWS: {e}")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para ejecutar tu aplicacion, vamos hacerlo de manera "Profesional" (Entorno Virtual)&lt;/p&gt;

&lt;p&gt;Esta es la forma recomendada para no mezclar librerías de distintos proyectos.&lt;/p&gt;

&lt;p&gt;Crea un entorno virtual (una carpeta aislada para este proyecto):&lt;/p&gt;

&lt;p&gt;&lt;code&gt;python -m venv venv&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Actívalo (Verás que aparece un (venv) al inicio de tu línea de comandos):&lt;/p&gt;

&lt;p&gt;&lt;code&gt;.\venv\Scripts\activate&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Instala las librerías AQUÍ dentro:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;pip install streamlit pandas requests boto3&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Ejecuta el programa:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;streamlit run app.py&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;🎯 El Reto Continúa: ¿Te atreves a más?&lt;/p&gt;

&lt;p&gt;¡Felicidades! 🎉 Si llegaste hasta aquí, acabas de construir una arquitectura moderna, escalable y serverless. Pero un Ingeniero de Datos nunca se detiene.&lt;/p&gt;

&lt;p&gt;¿Quieres llevar esto al Nivel Senior? Te reto a:&lt;/p&gt;

&lt;p&gt;🔔 Nivel Medio: Agrega AWS SNS para que te llegue un correo electrónico si el Bitcoin baja de cierto precio.&lt;/p&gt;

&lt;p&gt;🧠 Nivel Avanzado: Usa AWS Comprehend para analizar noticias sobre Cripto y cruzar el "Sentimiento" (Positivo/Negativo) con el precio en tu gráfica.&lt;/p&gt;

&lt;p&gt;🤖 Nivel Experto: Despliega toda esta infraestructura usando código (Terraform o AWS CDK) en lugar de hacer clics en la consola.&lt;/p&gt;

&lt;p&gt;El aprendizaje en la nube es un viaje, no un destino. ¿Qué funcionalidad le agregarías tú? ¡Te leo en los comentarios! 👇&lt;/p&gt;

&lt;p&gt;Comenta "LOGRADO" si tu Lambda ya está corriendo.&lt;br&gt;
¡Comparte este post, con tu compañero que siguie utilizando las mismas graficas de datos!&lt;/p&gt;

&lt;h1&gt;
  
  
  AWS #DataEngineering #Python #Streamlit #CloudComputing #Workshop #LearningByDoing
&lt;/h1&gt;

</description>
      <category>ai</category>
      <category>dataengineering</category>
      <category>aws</category>
      <category>programming</category>
    </item>
    <item>
      <title>AWSChallenge - Week 1</title>
      <dc:creator>Andres</dc:creator>
      <pubDate>Thu, 27 Nov 2025 19:46:14 +0000</pubDate>
      <link>https://forem.com/andresguecha/retocloud-dia-1-10e2</link>
      <guid>https://forem.com/andresguecha/retocloud-dia-1-10e2</guid>
      <description>&lt;p&gt;Con este reto doy inicio a una serie de proyectos en AWS, que buscan afianzar conocimiento y explotar la creatividad, se utilizara la capa gratuita de AWS, lo que permitira a cualquier persona replicar este proyecto&lt;/p&gt;

&lt;p&gt;He consolidado todos los aprendizajes, correcciones de errores (espacios en nombres, permisos, timeouts) y el código final robusto.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Proyecto: Extractor Inteligente de CVs con AWS Bedrock&lt;/strong&gt;&lt;br&gt;
(Principiante)&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Descripción General
Este proyecto implementa una arquitectura Serverless en AWS para procesar automáticamente Hojas de Vida (CVs) en formato PDF. El sistema extrae texto, utiliza Inteligencia Artificial Generativa (Claude 3 Haiku) para estructurar la información (nombre, skills, contacto, etc.) en formato JSON y almacena los resultados en una base de datos NoSQL.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Flujo de Arquitectura&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd1y8alavjztnwwqvtohr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd1y8alavjztnwwqvtohr.png" alt=" " width="800" height="327"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Infraestructura&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Amazon S3 (Almacenamiento)&lt;/strong&gt;&lt;br&gt;
Nombre del Bucket: resumenes-articulos-pdf-ia&lt;br&gt;
Event Notification: Configurado para disparar la Lambda en eventos Put o CreateObject (sufijo .pdf).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1gy6ngtmwv5iwx6jmd28.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1gy6ngtmwv5iwx6jmd28.png" alt=" " width="800" height="182"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Amazon DynamoDB (Base de Datos)&lt;/strong&gt;&lt;br&gt;
Nombre de la Tabla: resumenes-pdf-ia&lt;br&gt;
Partition Key (Clave Principal): id_archivo (Tipo: String).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F79okdkqotxcxxoy4irp8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F79okdkqotxcxxoy4irp8.png" alt=" " width="800" height="202"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.3. Amazon Bedrock (IA)&lt;/strong&gt;&lt;br&gt;
Modelo: anthropic.claude-3-haiku-20240307-v1:0&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Seguridad (IAM Role)&lt;/strong&gt;&lt;br&gt;
Nombre del Rol: RoleLambdaSummarizer&lt;/p&gt;

&lt;p&gt;Este rol sigue el principio de menor privilegio, permitiendo solo lo necesario para operar.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "S3Access",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::resumenes-articulos-pdf-ia",
                "arn:aws:s3:::resumenes-articulos-pdf-ia/*"
            ]
        },
        {
            "Sid": "BedrockInvoke",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel"
            ],
            "Resource": "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-haiku-20240307-v1:0"
        },
        {
            "Sid": "DynamoDBWrite",
            "Effect": "Allow",
            "Action": [
                "dynamodb:PutItem"
            ],
            "Resource": "arn:aws:dynamodb:us-east-1:*:table/resumenes-pdf-ia"
        },
        {
            "Sid": "Logging",
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "*"
        }
    ]
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Configuración de AWS Lambda&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Detalles Generales
Runtime: Python 3.12
Timeout: 1 min 0 sec (Aumentado de 3s a 60s para esperar a la IA).
Memory: 512 MB (Recomendado para procesar PDFs rápido).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Lambda Layer (Dependencia pypdf)&lt;br&gt;
Para que Lambda pueda leer PDFs, se debe crear una Layer.&lt;/p&gt;

&lt;p&gt;Instrucciones de creación (Windows):&lt;/p&gt;

&lt;p&gt;Crear carpeta python.&lt;br&gt;
Ejecutar: python -m pip install pypdf -t python/&lt;br&gt;
Comprimir la carpeta python en layer_pypdf.zip.&lt;br&gt;
Subir a AWS Lambda Layers y asociar a la función.&lt;/p&gt;

&lt;p&gt;Código Fuente (lambda_function.py)&lt;br&gt;
Este código incluye manejo de errores, decodificación de URLs (para archivos con espacios), parsing de JSON robusto y trazabilidad completa.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import json
import boto3
import io
import traceback
import pypdf 
from urllib.parse import unquote_plus
from datetime import datetime
from botocore.exceptions import ClientError

# --- CONFIGURACIÓN ---
REGION = 'us-east-1'
TABLE_NAME = 'resumenes-pdf-ia'
MODEL_ID = 'anthropic.claude-3-haiku-20240307-v1:0'

# Clientes AWS
s3 = boto3.client('s3')
bedrock = boto3.client('bedrock-runtime', region_name=REGION)
dynamodb = boto3.resource('dynamodb', region_name=REGION)
table = dynamodb.Table(TABLE_NAME)

def extraer_texto_pdf(contenido_bytes):
    """Extrae texto plano de un archivo PDF en memoria."""
    print("[SUB-PROCESO] Iniciando lectura de bytes PDF con pypdf...")
    try:
        pdf_file = io.BytesIO(contenido_bytes)
        reader = pypdf.PdfReader(pdf_file)
        num_paginas = len(reader.pages)
        print(f"[SUB-PROCESO] PDF detectado con {num_paginas} páginas.")

        texto_completo = ""
        for i, page in enumerate(reader.pages):
            texto_extraido = page.extract_text()
            if texto_extraido:
                texto_completo += texto_extraido + "\n"

        return texto_completo
    except Exception as e:
        print(f"[ERROR] Fallo dentro de extraer_texto_pdf: {str(e)}")
        raise e

def lambda_handler(event, context):
    print("---  INICIO DE EJECUCIÓN (EXTRACCIÓN CV) ---")

    try:
        # 1. Obtener detalles del archivo
        bucket = event['Records'][0]['s3']['bucket']['name']
        raw_key = event['Records'][0]['s3']['object']['key']
        # Decodificar nombre de archivo (arregla errores con espacios 'Hoja+de+vida.pdf')
        key = unquote_plus(raw_key) 

        print(f"[PASO 1] Objetivo: {key} en Bucket: {bucket}")

        # 2. Leer PDF de S3
        print(f"[PASO 2] Descargando objeto de S3...")
        response = s3.get_object(Bucket=bucket, Key=key)
        file_content = response['Body'].read()

        # 3. Convertir PDF a Texto
        texto_candidato = extraer_texto_pdf(file_content)
        print(f"[PASO 3] Extracción finalizada. Caracteres: {len(texto_candidato)}")

        # 4. Preparar Prompt para Bedrock
        prompt_sistema = """Eres un experto reclutador de TI. Tu tarea es extraer información de Hojas de Vida (CVs) en formato JSON estricto.
        Extrae los siguientes campos:
        - nombre_completo (String)
        - telefono (String)
        - correo (String)
        - perfil_profesional (Resumen de 2 lineas)
        - cargo_actual_o_ultimo (String)
        - skills_tecnicos (Lista de Strings)
        - profesion_titulo (String)
        - certificaciones (Lista de Strings)
        - universidad (String, si aplica)
        - resumen_trayectoria (String, max 300 caracteres)
        - tiene_foto (Boolean, basado en si el texto menciona "foto" o hay indicios visuales descritos)

        IMPORTANTE: Responde ÚNICAMENTE con el objeto JSON."""

        prompt_usuario = f"Analiza este CV:\n\n{texto_candidato[:50000]}"

        body = json.dumps({
            "anthropic_version": "bedrock-2023-05-31",
            "max_tokens": 4000,
            "messages": [
                {
                    "role": "user",
                    "content": [
                        {"type": "text", "text": prompt_sistema},
                        {"type": "text", "text": prompt_usuario}
                    ]
                }
            ]
        })

        # 5. Invocar Bedrock
        print(f"[PASO 5] Invocando Bedrock ({MODEL_ID})...")
        response_bedrock = bedrock.invoke_model(
            body=body,
            modelId=MODEL_ID,
            accept="application/json",
            contentType="application/json"
        )

        response_body = json.loads(response_bedrock.get('body').read())
        resultado_ai = response_body['content'][0]['text']

        # 6. Parsing del JSON
        print(f"[PASO 6] Parseando respuesta IA...")
        start_idx = resultado_ai.find('{')
        end_idx = resultado_ai.rfind('}') + 1
        json_str = resultado_ai[start_idx:end_idx]
        datos_candidato = json.loads(json_str)

        # 7. Guardar en DynamoDB
        datos_candidato['id_archivo'] = key
        datos_candidato['fecha_procesamiento'] = str(datetime.now())
        datos_candidato['bucket_origen'] = bucket

        table.put_item(Item=datos_candidato)
        print(f"[PASO 7] Datos guardados en DynamoDB.")

        return {
            'statusCode': 200,
            'body': json.dumps('Candidato procesado exitosamente')
        }

    except Exception as e:
        print("[ERROR FATAL]")
        traceback.print_exc()
        raise e

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;¡Reto Cumplido! Hemos domado a la IA en la Nube ☁️🤖&lt;/p&gt;

&lt;p&gt;Si llegaste hasta aquí, ya tienes un "Reclutador IA" funcionando 100% en la nube. Hemos superado errores de permisos IAM, configurado Layers de Python y conectado S3 con DynamoDB.&lt;/p&gt;

&lt;p&gt;¿Qué sigue? No nos vamos a quedar solo guardando datos. En el próximo tutorial, vamos a llevar esto al siguiente nivel con Embeddings y Búsqueda Semántica. ¡Prepárate para construir un buscador inteligente!&lt;/p&gt;

&lt;p&gt;👇 Tu turno:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;¿Qué otro uso se te ocurre para esta arquitectura? (¿Facturas? ¿Informes médicos?)&lt;/li&gt;
&lt;li&gt;Comenta "LOGRADO" si tu Lambda ya está corriendo.&lt;/li&gt;
&lt;li&gt;¡Comparte este post con ese colega que sigue copiando datos a mano!&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>aws</category>
      <category>ai</category>
      <category>llm</category>
      <category>bedrock</category>
    </item>
    <item>
      <title>¿Quieres obtener la acreditación Databricks Lakehouse Fundamentals?</title>
      <dc:creator>Andres</dc:creator>
      <pubDate>Mon, 06 Jan 2025 14:58:38 +0000</pubDate>
      <link>https://forem.com/andresguecha/como-obtener-la-acreditacion-databricks-lakehouse-fundamentals-30cb</link>
      <guid>https://forem.com/andresguecha/como-obtener-la-acreditacion-databricks-lakehouse-fundamentals-30cb</guid>
      <description>&lt;p&gt;En los roles tecnologicos, son indispensables las certificaciones de las herramientas que dia a dia utilizamos, un ejemplo de ello es Databricks.&lt;/p&gt;

&lt;p&gt;Es una plataforma que permite ejecutar procesos de ingenieria de datos, analisis de informaicon, Ejecucion de modelo de IA y ML, a gran escala de forma rápida y eficiente, en la nube. &lt;/p&gt;

&lt;p&gt;Tiene varios servicios, algunos de ellos son:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Databricks Unity Catalog: un catálogo de datos que proporciona governanza de los datos en un Data Lakehouse.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Databricks Delta Lake: Es un formato de datos con una capa de abstracción sobre los datos en un Data Lakehouse.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Databricks SQL: Analisis con lenguaje SQL, que permite a los usuarios consultar datos en un Data Lakehouse utilizando SQL.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Databricks AI &amp;amp; Machine Learning: una plataforma de aprendizaje automático.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cabe recordar que Databricks ofrece 4 acreditaciones básicas, las formaciones son gratuitas y las puedes consultar en el momento en que lo necesites. &lt;/p&gt;

&lt;p&gt;Una de ellas es "Databricks Lakehouse Fundamentals" podra demostrar los conocimientos sobre los principios básicos de la Plataforma.&lt;/p&gt;

&lt;p&gt;Creeme que para una persona que diariamente tiene que utilizar esta herramienta, te sera de gran ayuda, tener estos conocimientos basicos&lt;/p&gt;

&lt;p&gt;El material de estudio cuenta con cuatro lecciones:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;- Introducción a Data Lakehouse&lt;/li&gt;
&lt;li&gt;- Introducción a Databricks Lakehouse Platform&lt;/li&gt;
&lt;li&gt;- Introducción a la arquitectura y los fundamentos de seguridad de la plataforma Databricks Lakehouse&lt;/li&gt;
&lt;li&gt;- Introducción a las cargas de trabajo admitidas en la plataforma Databricks Lakehouse&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;te dejo el link del curso completo en la plataforma oficial: Lakehouse Fundamentals&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.databricks.com/learn/training/lakehouse-fundamentals-accreditation" rel="noopener noreferrer"&gt;https://www.databricks.com/learn/training/lakehouse-fundamentals-accreditation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Al aprobar el examen, tendras un certificado y tu insignia.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwghoou8iafrmojwzj6lm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwghoou8iafrmojwzj6lm.png" alt=" " width="627" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Espero esta informacion sea util y logres esta acreditacion.&lt;/p&gt;

&lt;p&gt;¡Hasta la próxima!&lt;/p&gt;

&lt;p&gt;-GuechaTech&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Como obtener tu certificación de AWS Cloud Practitioner y no morir en el intento</title>
      <dc:creator>Andres</dc:creator>
      <pubDate>Thu, 02 Jan 2025 02:44:02 +0000</pubDate>
      <link>https://forem.com/andresguecha/arquitectura-medallion-para-procesamiento-de-datos-736</link>
      <guid>https://forem.com/andresguecha/arquitectura-medallion-para-procesamiento-de-datos-736</guid>
      <description>&lt;p&gt;AWS Cloud Practitioner, es un examen de fundamentos del grande de la nube, con ella puedes certificar de que efectivamente tienes los conocimientos necesarios para incursionar en la nube con procesos iniciales.&lt;/p&gt;

&lt;p&gt;Desde hace varios años me ha interesado la computación en la nube y con ella todos los servicios que trajo, como análisis de datos, almacenamiento, procesamiento y mi archienemigo Redes.&lt;/p&gt;

&lt;p&gt;hace unos años tuve la oportunidad de participar en Colombia de una iniciativa llamada "AWS re/start", es una especie de bootcamp en el cual no solamente enseñan los fundamentos de la nube AWS, si no que también, programación básica en Python e incluso manejo de linux, es muy bueno, te dejo el enlace para que participes de la convocatoria :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aws.amazon.com/es/training/restart/" rel="noopener noreferrer"&gt;https://aws.amazon.com/es/training/restart/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://corporativo.compensar.com/productividad/agencia-empleo/aws-restart" rel="noopener noreferrer"&gt;https://corporativo.compensar.com/productividad/agencia-empleo/aws-restart&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Esto me preparo inicialmente para presentar el examen, sin embargo esta fue una de mis primeras certificaciones Cloud, y como a veces nos pasa, salió en mí el renombrado "síndrome del impostor", creí que con todo esto no iba a poder certificarme, lo que me llevo a seguir buscando más y más contenido y ayudas para tener certeza de pasar el examen&lt;/p&gt;

&lt;p&gt;Afortunadamente AWS, tiene dentro de su portafolio una gran variedades de herramientas que nos facilitan el aprendizaje de su herramienta, una de ella es Academy :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aws.amazon.com/es/certification/certified-cloud-practitioner/" rel="noopener noreferrer"&gt;https://aws.amazon.com/es/certification/certified-cloud-practitioner/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk9pkdzeg2fo6v0a46loh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk9pkdzeg2fo6v0a46loh.png" alt=" " width="800" height="405"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Segun mi experiencia te doy una serie de pasos para que presentes de manera exitosa este examen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Conoce el examen y los temas a tratar: Este es un examen de nivel fundamental, con 65 preguntas, tiene una duración de 90 minutos&lt;br&gt;
, lo puedes presentar en línea o presencial y está disponible en múltiples lenguajes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Consulta la guía del examen, esta te va a guiar y te muestra en que porcentaje están separados los temas&lt;br&gt;
&lt;a href="https://d1.awsstatic.com/es_ES/training-and-certification/docs-cloud-practitioner/AWS-Certified-Cloud-Practitioner_Exam-Guide.pdf" rel="noopener noreferrer"&gt;https://d1.awsstatic.com/es_ES/training-and-certification/docs-cloud-practitioner/AWS-Certified-Cloud-Practitioner_Exam-Guide.pdf&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;revisa el conjunto de preguntas de prácticas de AWS, &lt;a href="https://explore.skillbuilder.aws/learn/course/external/view/elearning/16817/aws-certified-cloud-practitioner-preguntas-de-practica-oficiales-clf-02-espanol-latam" rel="noopener noreferrer"&gt;https://explore.skillbuilder.aws/learn/course/external/view/elearning/16817/aws-certified-cloud-practitioner-preguntas-de-practica-oficiales-clf-02-espanol-latam&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Presenta una prueba previa al tu examen real: te servirá y te ayudará a calmarte : &lt;a href="https://explore.skillbuilder.aws/learn/course/external/view/elearning/18509/examen-de-prueba-oficial-de-formacion-para-el-examen-aws-certified-cloud-practitioner-clf-c02-espanol-latam-exam-prep-official-pretest" rel="noopener noreferrer"&gt;https://explore.skillbuilder.aws/learn/course/external/view/elearning/18509/examen-de-prueba-oficial-de-formacion-para-el-examen-aws-certified-cloud-practitioner-clf-c02-espanol-latam-exam-prep-official-pretest&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;afina todos tus conocimientos con orientación de AWS, Skill Builder, te da preparación guía, no solamente para este examen si no para varios temas, &lt;a href="https://explore.skillbuilder.aws/learn" rel="noopener noreferrer"&gt;https://explore.skillbuilder.aws/learn&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;-Por último, revisa el contenido de la comunidad de AWS, preferiblemente local, es decir los grupos de usuario, (en Colombia una muy buena (&lt;a href="https://awswomencolombia.com/)" rel="noopener noreferrer"&gt;https://awswomencolombia.com/)&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Cualquier duda que tengas, me puedes escribir y buscaremos juntos como resolverla.&lt;/p&gt;

&lt;p&gt;Hasta la próxima!&lt;/p&gt;

&lt;p&gt;-GuechaTech&lt;/p&gt;

</description>
    </item>
    <item>
      <title>DELTA LAKE</title>
      <dc:creator>Andres</dc:creator>
      <pubDate>Thu, 02 Jan 2025 02:41:40 +0000</pubDate>
      <link>https://forem.com/andresguecha/delta-lake-de-datos-26mh</link>
      <guid>https://forem.com/andresguecha/delta-lake-de-datos-26mh</guid>
      <description>&lt;p&gt;Existen diferentes arquitecturas para el procesammiento de datos, unas que llevan varios años como DWH, otras no tanto como un DataLake, sin embargo, ultimamente mi atencion se ha centrado en el tipo de almacenamiento Delta Lake.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5ghlv6bdw6wk5dg7fpw9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5ghlv6bdw6wk5dg7fpw9.png" alt=" " width="800" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pero que es, a mi manera de verlo, es una almacenamiento de multiples fuentes de datos (estructurados, no estructurados, semi), que permite tener versiones de cada unos de estos datos, segun sean modificados y todo esto basado en formato .parquet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc0pi6hm50by7rfo58w79.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc0pi6hm50by7rfo58w79.png" alt=" " width="800" height="123"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;para utilizarlo lo podemos hacer con spark, utilizando nuestra propia sesion, o con herramientas especializadas como Databricks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxagxt6tfuq7z8r9srwth.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxagxt6tfuq7z8r9srwth.png" alt=" " width="800" height="1186"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;para este caso realizaremos un ejemplo muy simple de una instalacion local con sparkelta Lake, necesitas instalar &lt;code&gt;pyspark&lt;/code&gt; y &lt;code&gt;delta-spark&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;pyspark delta-spark
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;esta es un ejemplo muy simple de como utilizar nuestro delta lake&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;pyspark.sql&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;SparkSession&lt;/span&gt;

&lt;span class="n"&gt;spark&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;SparkSession&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;builder&lt;/span&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;appName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;DeltaLakeExample&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;spark.sql.extensions&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;io.delta.sql.DeltaSparkSessionExtension&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; \
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;spark.sql.catalog.spark_catalog&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;org.apache.spark.sql.delta.catalog.DeltaCatalog&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; \
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getOrCreate&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Creacion de una tabla con spark dentro de nuestro datalake:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from pyspark.sql.types import StructType, StructField, StringType, IntegerType
from delta.tables import DeltaTable

schema = StructType([
    StructField("id", IntegerType(), True),
    StructField("name", StringType(), True),
    StructField("age", IntegerType(), True)
])

data = [(1, "Alice", 29), (8, "Bob", 31), (4, "Cathy", 25)]
df = spark.createDataFrame(data, schema)

df.write.format("delta").mode("overwrite").save("/tmp/delta-table")
delta_df = spark.read.format("delta").load("/tmp/delta-table")

delta_df.show()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Como podemos ver Delta Lake es una infraestructura de datos muy poderosa y pertenece al stack moderno de datos, te dejo mas enlaces donde podemos ver mucha mas informacion :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://delta.io/" rel="noopener noreferrer"&gt;https://delta.io/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://learn.microsoft.com/es-es/azure/databricks/delta/" rel="noopener noreferrer"&gt;https://learn.microsoft.com/es-es/azure/databricks/delta/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hasta la proxima!!&lt;/p&gt;

&lt;p&gt;-GuechaTech&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Visualizacion de datos con Streamlit + Python</title>
      <dc:creator>Andres</dc:creator>
      <pubDate>Thu, 02 Jan 2025 02:39:39 +0000</pubDate>
      <link>https://forem.com/andresguecha/ejemplo-basico-de-aplicacion-web-para-visualizacion-de-datos-con-streamlit-python-4oh7</link>
      <guid>https://forem.com/andresguecha/ejemplo-basico-de-aplicacion-web-para-visualizacion-de-datos-con-streamlit-python-4oh7</guid>
      <description>&lt;p&gt;Siempre me he interesado en como se muestran los datos a los stakeholders, herramientas de BI ya diseñadas por grandes empresas que se han dedicado a esto por años, nos entregan soluciones, de muy buena calidad y con funcionalidades inimaginables, sin embargo, desde mi pensamiento como ingeniero, siempre tengo la necesidad de saber como se contruyen las cosas, o incluso como puedo hacerlo yo mismo desde el codigo.&lt;br&gt;
Fue alli que esta busqueda de la verdad, (🤣🤣🤣), entontre una libreria que premite de manera sencilla crear aplicaciones con Python para visualizacion de datos, en la cual puedo ubicar el boton como yo quiero, la grafia a mi manera, entre muchas mas.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F59sqnleb8qzfpdc8bscx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F59sqnleb8qzfpdc8bscx.png" alt=" " width="749" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Streamlit es una biblioteca de Python que permite crear aplicaciones web interactivas para el análisis de datos de manera rápida y sencilla. &lt;br&gt;
Para la instalación de Streamlit, basta con un simple:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pip install streamlit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Luego se deben importar las librerias correspondientes, por ahora algunas basicas :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;streamlit&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;st&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;pandas&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;pd&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;matplotlib.pyplot&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;plt&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;una vez tengas una version del sitio con el tablero tal cual como lo quieres ver, solo la ejecutas y listo&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;streamlit run app.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;En proximos post veremos un video tutorial, de como crear una pagina simple pero muy poderosa para el servicio de datos.&lt;/p&gt;

&lt;p&gt;Espero esto sea de tu agrado, hasta la proxima!!&lt;/p&gt;

&lt;p&gt;-GuechaTech&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Python o Spark</title>
      <dc:creator>Andres</dc:creator>
      <pubDate>Thu, 02 Jan 2025 02:36:07 +0000</pubDate>
      <link>https://forem.com/andresguecha/python-o-spark-para-el-procesamiento-de-datos-2mc6</link>
      <guid>https://forem.com/andresguecha/python-o-spark-para-el-procesamiento-de-datos-2mc6</guid>
      <description>&lt;p&gt;Estaba recordando como fue mi inicio en el mundo de los datos y creo que como muchos, empezamos con MS Excel.&lt;/p&gt;

&lt;p&gt;Recuerdo una herramienta que permitia hacer depuracion de datos, un poco de programacion (VBA) y luego crear tableros de indicadores geniales, todo esto es un mismo archivo. (Buenos recuerdos).&lt;/p&gt;

&lt;p&gt;Pero ahora vemos multiples herramienas y lo mejor lenguajes de programacion enfocados a datos, los cuales nos permiten ver esos datos como codigo, para un ingeniero de software esto fue en su momento un Buummmmm!, me exploto la cabeza 🤯. Me encanto!!.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkn6c6meerrp8uyo0xe51.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkn6c6meerrp8uyo0xe51.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Principalmente en mi trabajo y en mis proyectos personales, utilizo dos lenguajes de programacion, Python por excelencia y Spark.&lt;/p&gt;

&lt;p&gt;Me gustaria hacer una comparativa entre ambos y revisar para que casos se deben utilizar.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt;: Es un lenguaje de programación conocido por su simplicidad y legibilidad.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Apache Spark&lt;/strong&gt;: Es un motor de procesamiento de datos en clúster, diseñado para realizar análisis de datos a gran escala.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Arquitectura
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt;: Funciona en un solo nodo y es adecuado para el procesamiento de datos en memoria en un entorno local.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Apache Spark&lt;/strong&gt;: Utiliza una arquitectura distribuida que permite el procesamiento paralelo de datos en múltiples nodos de un clúster.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9vzpg92jula0lfi4bb2i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9vzpg92jula0lfi4bb2i.png" alt=" " width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Ecosistema y Bibliotecas
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python&lt;/strong&gt;: Cuenta con un gran ecosistema de bibliotecas, como Pandas, NumPy, Scikit-learn, TensorFlow, entre otros, estas a mi forma de ver las principales, pero claro que hay muchas mas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk2zj01qoj58gksz2vt3q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk2zj01qoj58gksz2vt3q.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Apache Spark&lt;/strong&gt;: Ofrece un conjunto de componentes integrados, como Spark SQL, Spark Streaming.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Rendimiento
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python&lt;/strong&gt;: procesamiento de datos en memoria y puede es eficiente para conjuntos de datos pequeños a medianos. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apache Spark&lt;/strong&gt;: Es el indicado para grandes volúmenes de datos por el tipo de arquitectura que veíamos anteriormente.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Si estas empezando el mundo de los datos, lo que te recomiendo inicialmente es que entrenes tu lógica, suena muy obvio, pero esto te va a ayudar enormemente, antes de empezar a programar, luego inicia con Python, con las bases de este lenguaje, tipo de datos, cálculos matemáticos, duplas, diccionarios, listas, arreglos, bucles.&lt;/p&gt;

&lt;p&gt;Una vez tengas las bases, empieza a crear tus propias ejecuciones, muy sencillas, toma Dataset, que están disponibles en la web, te recomiendo una página, muy buena para ello, Kaggle:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.kaggle.com/" rel="noopener noreferrer"&gt;https://www.kaggle.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3r5ggmfgo4yfraazkr2y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3r5ggmfgo4yfraazkr2y.png" alt=" " width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Y simplemente intenta, convertir fechas en meses, suma columnas entre sí, convierte los tipos de archivos, etc.&lt;/p&gt;

&lt;p&gt;Espero este post te seas de gran ayuda.&lt;/p&gt;

&lt;p&gt;Hasta la próxima!!&lt;/p&gt;

&lt;p&gt;-GuechaTech&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Guia para entender definitivamente un proceso ETL en ingenieria de datos con AWS</title>
      <dc:creator>Andres</dc:creator>
      <pubDate>Thu, 02 Jan 2025 02:34:05 +0000</pubDate>
      <link>https://forem.com/andresguecha/guia-para-entender-definitivamente-un-proceso-etl-en-ingenieria-de-datos-26e2</link>
      <guid>https://forem.com/andresguecha/guia-para-entender-definitivamente-un-proceso-etl-en-ingenieria-de-datos-26e2</guid>
      <description>&lt;h2&gt;
  
  
  Extracion, Transformacion y Carga (Load) - ETL
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq3lcjkbxbks78kr5e1dp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq3lcjkbxbks78kr5e1dp.png" alt=" " width="708" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Desde mi experiencia personal veo como la ETL com el proceso fundamental en la integración de datos y hace parce de una arquitectura de pipeline de datos, se utiliza para ingestar y transformar datos desde múltiples fuentes hacia la bodega de almacenamiento de datos,  como un DWH o DataLake.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Extracción (Extract)
&lt;/h3&gt;

&lt;p&gt;Aca se ingesta la informacion de diferentes origenes de datos, desde una base de datos On-premise hasta bases de datos Cloud, pero aca no acaba todo, se pueden ingestar archivos planos (csv,txt, etc.) o archivos de un datalake, como los .parquet.&lt;br&gt;
Tambien el llamado a una API, en fin todo aquello a tenga informacion y se disponibilice para consumo de datos.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw3el01kuhe0cxa9wgviy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw3el01kuhe0cxa9wgviy.png" alt=" " width="716" height="242"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Transformación (Transform)
&lt;/h3&gt;

&lt;p&gt;En este proceso, se aplican todas las reglas de negocio en los datos, transformaciones, combinaciones, formatos, etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvvuu2mlnjvuugu3j8iht.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvvuu2mlnjvuugu3j8iht.png" alt=" " width="695" height="219"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Carga (Load)
&lt;/h3&gt;

&lt;p&gt;En la carga se disponibilizan datos, en su version negocio, es decir datos ya depurados y listos para ser analizados por diferentes herramientas de BI&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxpyzfm84owpsw4r1lz5g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxpyzfm84owpsw4r1lz5g.png" alt=" " width="726" height="329"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AWS disponibiliza varias herramientas para ejecucion de procesos ETL, una de ellas, si no la mas importante es, AWS Glue, se pueden utilizar diferentes lenguajes de programacion para tratar a los datos como codigo, sin embargo no es la unica.&lt;/p&gt;

&lt;p&gt;Dentro de un Pipeline de datos, intervienen multiples procesos, uno de ellos es ETL, sin embargo no es el unico, una arquitectura de datos evalua, desde el proceso de ingesta, modelado de datos, almacenamiento y servicio, pasando por redes, seguridad, perfiles, etc.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ho8ybr2rs1t6v9eltj5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ho8ybr2rs1t6v9eltj5.png" alt=" " width="751" height="247"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para esto se utilizan servicios de AWS como Lambda, AWS Glue, AWS Athena,&lt;br&gt;
Almacenamiento como AWS S3, AWS DynamoDB, AWS Aurora y Dashboard como AWS quicksight.&lt;/p&gt;

&lt;p&gt;Espero esto te de una guia muy de alto nivel de que es un proceso de ETL y que herramientas utilizar en AWS.&lt;/p&gt;

&lt;p&gt;Hasta la proxima!&lt;/p&gt;

&lt;p&gt;-GuechaTech&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Pasos iniciales para comenzar con AWS 🏃‍♀️‍➡️</title>
      <dc:creator>Andres</dc:creator>
      <pubDate>Thu, 02 Jan 2025 02:29:25 +0000</pubDate>
      <link>https://forem.com/andresguecha/pasos-iniciales-para-comenzar-con-aws-1nke</link>
      <guid>https://forem.com/andresguecha/pasos-iniciales-para-comenzar-con-aws-1nke</guid>
      <description>&lt;p&gt;Cuando unicie con la nube de AWS, no tenia tan claro como funcionaban los servicios, para que era cada cosa, hice un listado super resumido, de las principales cosas a tener en cuenta, espero te sirva:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp4wbfdztrcwid4xaoomq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp4wbfdztrcwid4xaoomq.png" alt=" " width="663" height="385"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWS para el procesamiento  de datos&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Amazon Web Services (AWS) ofrece una amplia gama de servicios para el manejo de datos, pasando desde la ingesta, transformacion, almacenamiento y servicio de datos (análisis y machine learning).&lt;/p&gt;

&lt;p&gt;Para ingresar pro primera vez a la consola de AWS, lo puedes hacer desde este enlace :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aws.amazon.com/es/" rel="noopener noreferrer"&gt;https://aws.amazon.com/es/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3174uv6l6lfisp6mw2t3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3174uv6l6lfisp6mw2t3.png" alt=" " width="800" height="274"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Alli vas a crear una cuenta en AWS, Visita el sitio web de AWS y regístrate para obtener una cuenta, importante que por temas de seguridad actives la autenticación multifactor (MFA).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Configurar IAM (Identity and Access Management)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Crea usuarios y grupos con permisos específicos.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Utiliza políticas de IAM para controlar el acceso a los recursos.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1ct8lyhnek4nr9vjk2ae.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1ct8lyhnek4nr9vjk2ae.png" alt=" " width="698" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Herramientas para almacenamiento de datos:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Almacenamiento de Datos&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amazon S3 (Simple Storage Service)&lt;/strong&gt;: Ideal para almacenar y recuperar cualquier cantidad de datos en cualquier momento.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmyhr73zoc71ght8jdgsq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmyhr73zoc71ght8jdgsq.png" alt=" " width="440" height="198"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Amazon EBS (Elastic Block Store)&lt;/strong&gt;: Almacenamiento en bloque para instancias EC2.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl5bw9zp8zjroc8pnmjy8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl5bw9zp8zjroc8pnmjy8.png" alt=" " width="603" height="302"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Amazon EFS (Elastic File System)&lt;/strong&gt;: Sistema de archivos elástico para instancias EC2.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frya24knhqzsuv1h43v5j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frya24knhqzsuv1h43v5j.png" alt=" " width="568" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  4. principales Bases de Datos:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Amazon RDS (Relational Database Service)&lt;/strong&gt;: Servicio de base de datos relacional que soporta varios motores como MySQL, PostgreSQL, MariaDB, Oracle y SQL Server.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Amazon DynamoDB&lt;/strong&gt;: Base de datos NoSQL completamente gestionada.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Amazon Redshift&lt;/strong&gt;: Almacén de datos en la nube para análisis de datos a gran escala.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnhvbcykbyf1b3qwaplnu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnhvbcykbyf1b3qwaplnu.png" alt=" " width="682" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Seguridad y Cumplimiento
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AWS CloudTrail&lt;/strong&gt;: Servicio que permite el monitoreo y registro de la actividad de la cuenta de AWS.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc8v9ar7gtjxe2lu0k67r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc8v9ar7gtjxe2lu0k67r.png" alt=" " width="742" height="334"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  8. Monitoreo y Gestión
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Amazon CloudWatch&lt;/strong&gt;: Servicio para monitorear y gestionar métricas y logs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7yowq40eszcy4mzfo9b0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7yowq40eszcy4mzfo9b0.png" alt=" " width="748" height="179"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;estos son solo algunos de los cientos de recusos que AWS maneja, te recomiento que ingreses a la plataforma "AWS Academy", alli se encuentra varios recursos que te serviran, (es gratis 🤑).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aws.amazon.com/es/training/awsacademy/" rel="noopener noreferrer"&gt;https://aws.amazon.com/es/training/awsacademy/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqppt1bbu30w45mqha0cl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqppt1bbu30w45mqha0cl.png" alt=" " width="800" height="693"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Una vez entres y realices varios laboratorios, tendras las herramientas para enfrentarte a las primeras certificaciones en AWS:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aws.amazon.com/es/certification/?nc2=sb_ce_co" rel="noopener noreferrer"&gt;https://aws.amazon.com/es/certification/?nc2=sb_ce_co&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fds4knhcqp6mlme0i2y6s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fds4knhcqp6mlme0i2y6s.png" alt=" " width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;En los siguientes post, te dare unos tips para la certificacion inicial de AWS&lt;/p&gt;

&lt;p&gt;hasta pronto!!&lt;/p&gt;

&lt;p&gt;-GuechaTech&lt;/p&gt;

</description>
    </item>
    <item>
      <title>DeltaSharing en Databricks</title>
      <dc:creator>Andres</dc:creator>
      <pubDate>Thu, 26 Dec 2024 13:59:31 +0000</pubDate>
      <link>https://forem.com/andresguecha/deltasharing-en-databricks-2f78</link>
      <guid>https://forem.com/andresguecha/deltasharing-en-databricks-2f78</guid>
      <description>&lt;p&gt;les cuento que en el sprint anterior, tuvimos un nuevo requerimiento dentro del proyecto el cual estamos trabajando, se queria exponer una tabla del catálogo de Databricks hacia un servicio externo.&lt;br&gt;
Normalmente este proceso se había realizado de Databricks to databricks, pero este requerimiento fue algo nuevo para el proyecto.&lt;/p&gt;

&lt;p&gt;La solución, Delta Sharing, antes de mostrarles cómo se solucionó hablemos un poco de este protocolo.&lt;/p&gt;

&lt;p&gt;En el mundo actual impulsado por los datos, el intercambio de datos seguro y sin problemas entre organizaciones y plataformas es crucial. Delta Sharing, un protocolo abierto desarrollado por Databricks, aborda esta necesidad al permitir el intercambio de datos seguro y eficiente. Este protocolo permite a los proveedores de datos compartir datos en vivo directamente con sus consumidores sin la necesidad de complejas canalizaciones de datos o replicación de datos.&lt;/p&gt;

&lt;p&gt;Delta Sharing aprovecha el poder de Delta Lake, asegurando que los datos compartidos estén siempre actualizados y sean consistentes. Admite una amplia gama de formatos de datos e integra perfectamente con varias herramientas y plataformas de datos, lo que lo convierte en una solución versátil para la colaboración de datos moderna.&lt;/p&gt;

&lt;p&gt;En esta publicación, exploraremos las características clave de Delta Sharing, sus beneficios y cómo puedes comenzar a implementarlo en tu entorno de Databricks. Ya seas un proveedor de datos que busca compartir tus conjuntos de datos o un consumidor de datos que desea acceder a datos compartidos sin esfuerzo, Delta Sharing ofrece una solución robusta y escalable para satisfacer tus necesidades.&lt;/p&gt;

&lt;p&gt;Ahora si a lo que vinimos.&lt;/p&gt;

&lt;p&gt;Inicialmente debemos crear un Share :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE SHARE IF NOT EXISTS recipiente_share;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;una vez creado, podemos ver todos los que se han creado con este código :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SHOW SHARES
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Luego es necesario crear un destinatario :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CREATE RECIPIENT IF NOT EXISTS BigQueryDataConsumer
COMMENT "delta Sharing With BigQuery"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;podemos ver todos los destinatarios creados:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SHOW RECIPIENTS;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Es necesario darle los permisos de consulta a este destinatario:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;GRANT SELECT 
ON SHARE recipiente_share
TO RECIPIENT BigQueryDataConsumer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;una vez creado el destinatario y con los permisos necesarios, podemos ver el detalle de este:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;DESCRIBE RECIPIENT bigquerydataconsumer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Alli nos registra informacion detallada, sin embargo para el ejercicio el mas importante es el "activation_link":&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdnwkde0561ago3l9q2jz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdnwkde0561ago3l9q2jz.png" alt=" " width="247" height="617"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;esta url nos va a entregar un archivo con las él token y el endpoint para lograr llegar a la tabla:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqappsrz3k6zoyf8632r9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqappsrz3k6zoyf8632r9.png" alt=" " width="800" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Esta información es la que vamos a utilizar para lograr la conexión desde los diferentes servicios.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyej4ohbjlb15mom0dmb7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyej4ohbjlb15mom0dmb7.png" alt=" " width="800" height="84"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;¡¡¡Gracias!!!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>¿Qué es Databricks - AWS?</title>
      <dc:creator>Andres</dc:creator>
      <pubDate>Sun, 16 Jun 2024 09:56:25 +0000</pubDate>
      <link>https://forem.com/andresguecha/databricks-caja-negra-6ld</link>
      <guid>https://forem.com/andresguecha/databricks-caja-negra-6ld</guid>
      <description>&lt;p&gt;Databricks es una plataforma poderosa para el procesamiento de grandes datos volumenes de datos y ML, brinda un entorno unificado que se para todos los profesionales de datos, te muestros algunos pros y contras de la herramienta:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqz1y8acpjzgkzi1vbizo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqz1y8acpjzgkzi1vbizo.png" alt=" " width="800" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ventajas:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Escalabilidad&lt;/strong&gt;: Proporciona una alta escalabilidad, permitiendo manejar grandes volumnes de datos.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Colaboración&lt;/strong&gt;: Permite integracion colaborativa (GIT), de esta forma científicos de datos, ingenieros de datos y analistas, pueden apoyarse colaborativamente sin problemas.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzx4nwvft8ee21un6dxb0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzx4nwvft8ee21un6dxb0.png" alt=" " width="800" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Integración&lt;/strong&gt;: Se integra a los principales providers Cloud como Azure, AWS y Google Cloud, haciéndolo versátil para diferentes entornos.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft0xs8q09rrnieavxkn7e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft0xs8q09rrnieavxkn7e.png" alt=" " width="711" height="616"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Rendimiento&lt;/strong&gt;: Es una herramienta que esta optimizada para el funcionamiento de apache Spark..&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Delta Lake&lt;/strong&gt;: Incorpora  DeltaLake para proporcionar transacciones ACID en todos los datos y adicionalmente tiene Unity Catalog, con el cual tendremos governanza en los datos.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fczfb25kwf9udchtipzdc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fczfb25kwf9udchtipzdc.png" alt=" " width="744" height="335"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Contras:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Costo alto&lt;/strong&gt;: Puede ser costoso para pequeñas empresas o o de &lt;br&gt;
presupuestos limitados.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Dependencia del proveedor&lt;/strong&gt;: Al basarse en la nube tiene alta dependencia de proveedores cloud.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Para finalizar, Databricks es una plataforma poderosa y versátil para análisis de grandes datos y ML, ofrece  numerosos beneficios en de escalabilidad, rendimiento y colaboración. &lt;br&gt;
Sin embargo, los usuarios potenciales deben considerar los costos asociados, la complejidad de aprendizaje.&lt;/p&gt;

&lt;p&gt;Pero no te preocupes para eso esta la comunidad, en este post te doy una guia de como tener tu primer acreditacion, total mente gratis!! 🤑&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/andresguecha/como-obtener-la-acreditacion-databricks-lakehouse-fundamentals-30cb"&gt;https://dev.to/andresguecha/como-obtener-la-acreditacion-databricks-lakehouse-fundamentals-30cb&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hasta la proxima!&lt;/p&gt;

&lt;p&gt;-GuechaTech&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Configura tu usuario de la cuenta de AWS con la linea de comandos (CLI)</title>
      <dc:creator>Andres</dc:creator>
      <pubDate>Thu, 02 May 2024 13:30:55 +0000</pubDate>
      <link>https://forem.com/andresguecha/configura-tu-usuario-con-cli-de-aws-5532</link>
      <guid>https://forem.com/andresguecha/configura-tu-usuario-con-cli-de-aws-5532</guid>
      <description>&lt;p&gt;Cuando ya llevas trabajando un tiempo con herramientas no solamente nube si no que también on premise, le empiezas a tener amor a la consola.&lt;/p&gt;

&lt;p&gt;desde allí podemos hacer las cosas más rápido, se pueden visualizar de una manera "antigua" pero muy oportuna.&lt;/p&gt;

&lt;p&gt;Cuando empecé con AWS, imagine que trabajar desde consola con un proveedor cloud, también se podría, investigue y efectivamente es así, podemos listar los bucket que tenemos, cargar información, descargarla, crear servicios, en fin un sin número de actividades, es decir lo que hacer por la consola web de aws, también lo puedes hacer por consola de comandos, pero a mi parecer de una manera mucho mas organizada y ágil.&lt;/p&gt;

&lt;p&gt;A continuación te mostrare como realizar la configuración de tu usuario de AWS y además de como instalar aws CLI y la configuración del mismo, empecemos.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; creación de usuario de IAM&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxkaaejgw7y0yc3xi8l3m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxkaaejgw7y0yc3xi8l3m.png" alt=" " width="571" height="307"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;En la consola de AWS, seleccionamos el servicio de IAM y la barra lateral izquierda en usuarios, allí creamos un nuevo usuario&lt;/p&gt;

&lt;p&gt;para este ejemplo lo llamaré CLI.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmb21zjkp3pf91cies737.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmb21zjkp3pf91cies737.png" alt=" " width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;loa signamos a un grupo al cual llame Admin ( este grupo tiene todos los permisos de administrador, recuerda que esto es solo educativo, en la vida productiva no funciona así).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fecl43mqhrf0unqz9b0es.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fecl43mqhrf0unqz9b0es.png" alt=" " width="800" height="330"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Creamos usuario&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsf7y15atn9ygohqfy4yh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsf7y15atn9ygohqfy4yh.png" alt=" " width="800" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;creación de claves de acceso.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Una vez creado el usuario, lo vas a seleccionar y vas a ir a la opción de "credenciales de seguridad", y creamos la clave de acceso.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffmmoqqfge0msbhtq1yem.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffmmoqqfge0msbhtq1yem.png" alt=" " width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Uso, interfaz de línea de comandos.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn2u06s95hwf1stm7omo8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn2u06s95hwf1stm7omo8.png" alt=" " width="800" height="178"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Y crear clave de acceso, una vez lo realicemos nos muestra la clave de acceso y la clave secreta, estos dos datos son los que necesitamos para la configuración de cli.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnfskrku8pig3bs672oym.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnfskrku8pig3bs672oym.png" alt=" " width="800" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Descargar e instalación del CLI de AWS&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;En la URL &lt;a href="https://aws.amazon.com/es/cli/" rel="noopener noreferrer"&gt;https://aws.amazon.com/es/cli/&lt;/a&gt; encontraras la descarga de la consola de comandos de aws, procede a bajarla e instalarla como cualquier otro software.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3lnt9dp2jck0h6xnmlf6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3lnt9dp2jck0h6xnmlf6.png" alt=" " width="800" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Una vez instalada, abre una consola de cmd en Windows y verificamos que la instalación esta correctamente realizada, con el siguiente comando: &lt;/p&gt;

&lt;p&gt;&lt;code&gt;aws --version&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flxhw3lufdjnmt58tyrpp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flxhw3lufdjnmt58tyrpp.png" alt=" " width="744" height="175"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;si te salió este mensaje, hasta ahora ya tienes todo listo para la configuración&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;configuración del CLI con tus credenciales de aws&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;en la consola escribimos el siguiente comando:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;aws configure&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8et8x4btn9lvdcbs9c3k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8et8x4btn9lvdcbs9c3k.png" alt=" " width="570" height="76"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nos va a pedir la clave de acceso, que anteriormente descargamos.&lt;/p&gt;

&lt;p&gt;luego la clave de acceso secreta&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa8amovshlj7186epu2o5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa8amovshlj7186epu2o5.png" alt=" " width="575" height="116"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;La región y formato por defecto, para este caso yo dejare us-east-1 y formato json&lt;/p&gt;

&lt;p&gt;digitas enter y listo, ya tienes total mente configurada tu cuenta por medio de consola.&lt;/p&gt;

&lt;p&gt;prueba el siguiente comando:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;aws s3 ls&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;te va a listar todos los buckets que tienes en tu cuenta y región.&lt;/p&gt;

&lt;p&gt;en esta página: &lt;a href="https://docs.aws.amazon.com/cli/" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/cli/&lt;/a&gt; vas a encontrar toda la documentación con respecto a este proceso y podrás aprender mucho más.&lt;/p&gt;

&lt;p&gt;Espero que este post te haya sido de gran ayuda.&lt;/p&gt;

&lt;p&gt;¡¡Saludos!!&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
