Lo que sigue existiendo
- Lambda
sa-dev-orchestrator-chat. - API Gateway
w7jtrco599. - Stage
/dev. - CloudWatch Logs.
- Variables configuradas dentro de Lambda.
Guía operativa · Stadium Assistant
Cómo volver a preparar PowerShell y Node.js para continuar exactamente con las pruebas del Walking Skeleton y el diagnóstico de los errores 503.
“ok, reinicie la maquina y obvio, se cerro powershel y asumo que se desconecto de las plataformas y de todo lo que estaba conectado, ya que le dí los comandos indicados en Fase 1 — Identificar exactamente la causa de los diez 503, / Paso 1. Revisar los logs de Lambda y en el Paso 2 y No me arrojo nada, solo me volvio a aparecer la linea de comandos. Que necesito hacer o cual es el protocolo o proceso que tengo que hacer en Powershell y/o node para volverme a conectar a todo?”
No se desconectaron AWS, Lambda, API Gateway, CloudWatch ni OpenAI. Al reiniciar la computadora se cerraron únicamente las sesiones locales de PowerShell, los procesos de Node.js y las variables que existían solo en memoria.
sa-dev-orchestrator-chat.w7jtrco599./dev.$DevBaseUrl, $ApiId, $FunctionName y demás variables de PowerShell.$env:OPENAI_API_KEY y $env:OPENAI_MODEL cuando hagas pruebas locales.aws logs tail --since 30m sin --follow termina y regresa a la línea de comandos si no encuentra eventos en ese periodo. Eso no significa que AWS se haya desconectado.Primero confirma que las herramientas locales siguen disponibles.
aws --version
node -v
npm -vValores confirmados en este ambiente:
v24.16.0.12.0.1.Vuelve a colocar PowerShell en la carpeta de trabajo.
cd "C:\Users\gerar\Documents\VSFRepositoryLocal\Dev_Platforms\NodeProjects\Project_SA_WalkingSkeleton_V2.0"Confirma que estás en la carpeta correcta:
Get-Location
Get-ChildItemEstas variables existían en la sesión anterior y se perdieron al cerrar PowerShell.
$AwsProfile = "sa-dev"
$AwsRegion = "us-east-1"
$AwsAccountId = "TU_AWS_ACCOUNT_ID"
$ApiId = "w7jtrco599"
$FunctionName = "sa-dev-orchestrator-chat"
$DevBaseUrl = "https://w7jtrco599.execute-api.us-east-1.amazonaws.com/dev"
$LambdaLogGroup = "/aws/lambda/sa-dev-orchestrator-chat"
$ApiLogGroup = "/aws/apigateway/sa-dev-http-api"
$ProjectPath = "C:\Users\gerar\Documents\VSFRepositoryLocal\Dev_Platforms\NodeProjects\Project_SA_WalkingSkeleton_V2.0"$AwsAccountId se deja como marcador para no publicar un identificador de cuenta en una página pública. En tu PowerShell local usa el valor de tu cuenta.[PSCustomObject]@{
AwsProfile = $AwsProfile
AwsRegion = $AwsRegion
ApiId = $ApiId
FunctionName = $FunctionName
DevBaseUrl = $DevBaseUrl
LambdaLogGroup = $LambdaLogGroup
ApiLogGroup = $ApiLogGroup
ProjectPath = $ProjectPath
}Reiniciar Windows no elimina los perfiles guardados por AWS CLI.
Los perfiles configurados con AWS CLI normalmente permanecen en los archivos de configuración y credenciales del usuario, por lo que reiniciar Windows no los elimina. El parámetro --profile selecciona explícitamente uno de esos perfiles.
aws configure list-profilesDebe aparecer:
sa-devDespués:
aws configure list --profile $AwsProfileDebe mostrar región y origen de las credenciales. La clave aparece parcialmente oculta.
Comprueba que el perfil realmente puede autenticarse contra AWS.
aws sts get-caller-identity `
--profile $AwsProfile `
--region $AwsRegionDebe devolver un objeto con UserId, Account y Arn. Si este comando responde correctamente, PowerShell vuelve a tener comunicación válida con AWS mediante el perfil sa-dev.
Confirma el estado real de la función desplegada.
aws lambda get-function-configuration `
--function-name $FunctionName `
--query "{
FunctionName:FunctionName,
FunctionArn:FunctionArn,
Runtime:Runtime,
Handler:Handler,
Timeout:Timeout,
MemorySize:MemorySize,
State:State,
LastUpdateStatus:LastUpdateStatus
}" `
--profile $AwsProfile `
--region $AwsRegionDebe mostrar:
FunctionName: sa-dev-orchestrator-chat
Runtime: nodejs24.x
Handler: index.handler
Timeout: 15
MemorySize: 512
State: Active
LastUpdateStatus: SuccessfulConfirma que la HTTP API continúa desplegada.
aws apigatewayv2 get-api `
--api-id $ApiId `
--query "{Name:Name,ApiId:ApiId,ApiEndpoint:ApiEndpoint,ProtocolType:ProtocolType}" `
--profile $AwsProfile `
--region $AwsRegionResultado esperado:
Name: HTTP API MVP SAVSF
ApiId: w7jtrco599
ApiEndpoint: https://w7jtrco599.execute-api.us-east-1.amazonaws.com
ProtocolType: HTTP/healthComprueba de punta a punta API Gateway → Lambda.
$HealthTraceId = "restart-health-" + [guid]::NewGuid().ToString("N")
$HealthResult = Invoke-RestMethod `
-Uri "$DevBaseUrl/health" `
-Method GET `
-Headers @{"x-trace-id" = $HealthTraceId}
$HealthResultDebe mostrar valores como:
ok : True
service : stadium-assistant-orchestrator
environment : dev
version : ws-1.0.0
trace_id : restart-health-...Compara el trace enviado contra el recibido:
$HealthTraceId -eq $HealthResult.trace_idDebe devolver:
TrueLos errores probablemente ocurrieron hace más de 30 minutos; por eso una búsqueda limitada a --since 30m puede no mostrar nada.
chat_failedaws logs tail $LambdaLogGroup `
--since 7d `
--filter-pattern '"chat_failed"' `
--format short `
--profile $AwsProfile `
--region $AwsRegionaws logs tail $LambdaLogGroup `
--since 7d `
--filter-pattern '"upstream_rate_limited"' `
--format short `
--profile $AwsProfile `
--region $AwsRegionaws logs tail $LambdaLogGroup `
--since 7d `
--filter-pattern '"upstream_service_error"' `
--format short `
--profile $AwsProfile `
--region $AwsRegionEsta será la primera ventana permanente para observar el backend.
Abre una primera ventana de PowerShell.
Vuelve a definir allí, como mínimo:
$AwsProfile = "sa-dev"
$AwsRegion = "us-east-1"
$LambdaLogGroup = "/aws/lambda/sa-dev-orchestrator-chat"Después:
aws logs tail `
$LambdaLogGroup `
--since 5m `
--follow `
--format short `
--profile $AwsProfile `
--region $AwsRegionLa ventana debe quedar esperando. No regresará a la línea de comandos hasta que presiones:
Ctrl + CEsta será la segunda ventana permanente.
Abre una segunda ventana de PowerShell.
Define:
$AwsProfile = "sa-dev"
$AwsRegion = "us-east-1"
$ApiLogGroup = "/aws/apigateway/sa-dev-http-api"aws logs tail `
$ApiLogGroup `
--since 5m `
--follow `
--format short `
--profile $AwsProfile `
--region $AwsRegionLa ventana debe quedarse esperando.
Mientras las otras dos ventanas observan los logs, utiliza una tercera para generar tráfico.
$DevBaseUrl = "https://w7jtrco599.execute-api.us-east-1.amazonaws.com/dev"Invoke-RestMethod `
-Uri "$DevBaseUrl/health" `
-Method GET `
-Headers @{"x-trace-id"="live-health-001"}$ChatBody = @{
message = "Hola"
locale = "es"
session_id = "restart-session-001"
} | ConvertTo-JsonInvoke-RestMethod `
-Uri "$DevBaseUrl/chat" `
-Method POST `
-ContentType "application/json" `
-Headers @{
"x-trace-id"="live-chat-001"
"x-session-id"="restart-session-001"
} `
-Body $ChatBodyMientras ejecutas estas solicitudes, observa simultáneamente la primera ventana de Lambda y la segunda ventana de API Gateway.
Solo las pruebas locales necesitan recuperar la API key dentro de la nueva sesión.
Las pruebas contra API Gateway no necesitan OPENAI_API_KEY local porque OpenAI es llamado desde Lambda y la clave está configurada dentro de AWS.
Pero para ejecutar:
npm run test:localsí debes volver a establecer las variables locales.
$env:OPENAI_MODEL = "gpt-5.6-luna"
$env:APP_ENV = "dev"
$env:APP_VERSION = "ws-1.0.0"
$env:ASSISTANT_ENABLED = "true"$SecureOpenAIKey = Read-Host `
"Introduce OPENAI_API_KEY" `
-AsSecureString$env:OPENAI_API_KEY = `
[System.Net.NetworkCredential]::new(
"",
$SecureOpenAIKey
).PasswordComprueba su presencia sin mostrarla:
[PSCustomObject]@{
OPENAI_API_KEY_Present =
-not [string]::IsNullOrWhiteSpace(
$env:OPENAI_API_KEY
)
OPENAI_MODEL =
$env:OPENAI_MODEL
}Después puedes volver a ejecutar:
npm run test:health
npm run test:injection
npm run test:localPara no volver a escribir manualmente el contexto cada vez que reinicies, puedes guardar un script en:
scripts/start-dev-session.ps1$Global:AwsProfile = "sa-dev"
$Global:AwsRegion = "us-east-1"
$Global:AwsAccountId = "TU_AWS_ACCOUNT_ID"
$Global:ApiId = "w7jtrco599"
$Global:FunctionName = "sa-dev-orchestrator-chat"
$Global:DevBaseUrl = `
"https://w7jtrco599.execute-api.us-east-1.amazonaws.com/dev"
$Global:LambdaLogGroup = `
"/aws/lambda/sa-dev-orchestrator-chat"
$Global:ApiLogGroup = `
"/aws/apigateway/sa-dev-http-api"
$Global:ProjectPath = `
"C:\Users\gerar\Documents\VSFRepositoryLocal\Dev_Platforms\NodeProjects\Project_SA_WalkingSkeleton_V2.0"
Set-Location $Global:ProjectPath
$env:OPENAI_MODEL = "gpt-5.6-luna"
$env:APP_ENV = "dev"
$env:APP_VERSION = "ws-1.0.0"
$env:ASSISTANT_ENABLED = "true"
Write-Host "Stadium Assistant DEV session loaded"
Write-Host "Project: $Global:ProjectPath"
Write-Host "AWS profile: $Global:AwsProfile"
Write-Host "Region: $Global:AwsRegion"
Write-Host "API: $Global:DevBaseUrl"Cárgalo en una nueva sesión de PowerShell con:
. .\scripts\start-dev-session.ps1Completa el checklist para confirmar que el ambiente está listo.