No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Herramientas necesarias para un ambiente de trabajo con serverless framework

6/25
Recursos

Aportes 27

Preguntas 17

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

Error: Error getting DynamoDb local latest tar.gz location undefined: 403

Si tienes este error en la instalaci贸n de dynamodb plug-in es porque AWS cambio el dominio de descarga del plugin. Para solucionar esto basta con editar manualmente la propiedad de download_urlen node_modules/dynamodb-localhost/dynamodb/config.json a https://s3.us-west-2.amazonaws.com/dynamodb-local/dynamodb_local_latest.tar.gz y la importaci贸n de http a https en node_modules/dynamodb-localhost/dynamodb/installer.js
Luego hacer la instalaci贸n normal

serverless install dynamodb

Si despu茅s de solucionar el error que menciona @Pablo Ortiz te enfrentas con un error relacionado a:
"UnrecognizedClientException: The Access Key ID or security token is invalid.: DynamoDB - Error -"
Hay 2 pasos faltantes a corregir que no se mencionan en el video:

  1. En el archivo serverless.yml del fichero clonado, hay que modificar en el apartado de plugins:
  - serverless-dynamodb-local por 茅ste otro:
  - serverless-dynamodb

Posterior, necesitamos desinstalar el modulo viejo (olvidado por su creador y de dificil comunicaci贸n para realizarle cambios) por el nuevo (actualmente con soporte y actualizado)
Eso se logra con unos pasos en npm el cual se detallan en el post del repo https://github.com/99x/serverless-dynamodb-local/issues/294#issuecomment-1619297733

En conclusi贸n, los pasos son:
1.1) Uninstall serverless-dynamodb-local, e.g. npm uninstall serverless-dynamodb-local
1.2) Install serverless-dynamodb, e.g. npm install serverless-dynamodb

  1. Ahora que ya tenemos el modulo de dynamodb actualizado en npm, el ultimo paso es agregar tus llaves en el archivo handler.js localizado en el directorio de "Serverless-framework\getusers"
    Aqu铆 tienes que agregar tus llaves del usuario de aws, tanto la accessKeyId como la secretAccessKey.

Con 茅stos cambios al d铆a de 04 de Julio 2023, funciona correctamente. Cabe resaltar que 茅sto puede cambiar y NO ES UNA SOLUCION DEFINITIVA, por lo mismo que comenta el profesor de ser una comunidad de c贸digo abierto.

Espero le sirva a m谩s de alguno 馃槃鉁

El plugin de dynamodb para Serverless Framework tiene mejoras constantemente, parece ser que en las nuevas versiones disponibles se introdujo un error que genera este comportamiento al hacer la instalaci贸n en local.

Si te encuentras con este error a la hora de hacer el

sls dynamodb install

Error:

Protocol "https:" not supported. Expected "http:"

Te recomendamos seguir los siguientes pasos para hacer la instalacion manual:
*Recuerda que debes tener instalado wget

wget http://dynamodb-local.s3-website-us-west-2.amazonaws.com/dynamodb_local_latest.tar.gz
mkdir .dynamodb
tar zxvf dynamodb_local_latest.tar.gz -C .dynamodb
Info:

Github Issue Thread

Si te ha salido el error **UnrecognizedClientException: The Access Key ID or security token is invalid.** al ejcutar el comando **sls offline start**, para solucionarlo, debemos: * Auditar los paquetes con el comando **npm audit fix --force** esto auditar谩 todos los paquetes y dependencias de npm. * Una vez que termine de auditar, podemos volver a ejecutar el comando **sls offline start**. * S铆 todo ha salido ok, el servicio debi贸 levantarse correctamente. Este problema puede ocurrir por: * El Access Key ID y Secret Access Key son incorrectos. * Las credenciales ya no son validas. * El usuario no tiene permisos, esto se puede chequear en IAM (Identity and Access Management) o usando el CLI con el comando **aws iam list-user-policies --user-name \<user-name>** * Problemas con el SDK de AWS.
No puedo creer que este tan desactualizado esta parte. Platzi, por que dejan que pase esto, mucha perdida de tiempo tratando de hacer que funcione.

Me agrada mucho que el profesor dedicara una clase completa a la instrucci贸n de instalaci贸n de los softwares que se usar谩n a lo largo del curso. Hay bastantes estudiantes que estar谩n usando alguna de estas herramientas por primera vez :smile

Si no les funciona en windows usando PowerShell: `sls --help` Ejecuten el siguiente comando para remover el alias y se soluciona: `Remove-Item alias:sls`

Por otro lado, en caso de tener este otro error luego de iniciar el servidor dynamodb y consultar el endpoint GET user (Febrero/2024):

Server ready: http ://localhost:3000 馃殌


GET /dev/users/1 (位: get-users)
(node:7328) NOTE: We are formalizing our plans to enter AWS SDK for JavaScript (v2) into maintenance mode in 2023.

Please migrate your code to use AWS SDK for JavaScript (v3).
For more information, check the migration guide at https://a.co/7PzMCcy
(Use `node --trace-warnings ...` to show where the warning was created)
脳 Unhandled exception in handler 'get-users'.
脳 UnrecognizedClientException: The Access Key ID or security token is invalid.

Se debe migrar al AWS SDK 3 con este comando, especificando la ruta donde esta nuestro serverless-framework:

npx aws-sdk-js-codemod -t v2-to-v3 C:\Users\user\serverless-framework

pueden usar algo como https://github.com/nvm-sh/nvm para manejar varias versiones de node si lo necesitan

Ademas de cambiar la URL de descarga para DynamoDb deben cambiar el protocolo por HTTPS en el archivo install.js

"use strict";

var tar = require("tar"),
  zlib = require("zlib"),
  path = require("path"),
  https = require("https"),
  fs = require("fs"),
  ProgressBar = require("progress"),
  utils = require("./utils");

var download = function(downloadUrl, installPath, callback) {
  console.log(
    `Started downloading dynamodb-local from ${downloadUrl} into ${installPath}. Process may take few minutes.`
  );
  https
    .get(downloadUrl, function(response) {
      var len = parseInt(response.headers["content-length"], 10),
        bar = new ProgressBar(
          "Downloading dynamodb-local [:bar] :percent :etas",
          {
            complete: "=",
            incomplete: " ",
            width: 40,
            total: len
          }
        );

Todo estaba cnfigurado 馃槂

Ante el error Serverless Framework install sls error: "cmdlet Select-String at command pipeline position 1 Supply values for the following parameters: Path\[0] " El error que est谩s experimentando al intentar instalar Serverless Framework con el comando `sls` en PowerShell se debe a un conflicto con un alias predeterminado de PowerShell. PowerShell tiene un cmdlet llamado `Select-String` que tambi茅n se abrevia como `sls`. Cuando intentas ejecutar `sls`, PowerShell intenta ejecutar `Select-String` en lugar del comando de Serverless Framework. Para resolver este problema, tienes algunas opciones: 1\. \*\*Usar el nombre completo del comando\*\*: Puedes evitar el conflicto utilizando el nombre completo del comando de Serverless Framework: ```bash serverless ``` Por ejemplo, para desplegar, usar铆as: ```bash serverless deploy ``` 2\. \*\*Eliminar el alias de PowerShell\*\*: Si prefieres seguir utilizando `sls`, puedes eliminar el alias de PowerShell ejecutando el siguiente comando en tu sesi贸n de PowerShell: ```powershell Remove-Item alias:sls ``` Ten en cuenta que esto solo afectar谩 a la sesi贸n actual de PowerShell. Si deseas eliminar el alias permanentemente, tendr谩s que agregar ese comando a tu perfil de PowerShell. 3\. \*\*Usar otro alias para Serverless Framework\*\*: En versiones m谩s recientes de Serverless Framework, se ha introducido un alias secundario `slss` que puedes usar sin conflictos en PowerShell: ```bash slss ``` Estas soluciones deber铆an permitirte utilizar Serverless Framework en PowerShell sin problemas鹿虏.
hay muchos problemas, la forma mas facil es agregar esta dependencia en el packae json -->> serverless-dynamodb y arear el access Key y el secret key de tu cuenta de aws en getUser/handler.js

En caso de tener este error (Febrero/2024):

C:\Users\user\serverless-framework>sls offline start
Running "serverless" from node_modules
(node:3664) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
Dynamodb Local Started, Visit: http: // localhost:8000 /shell
UnrecognizedClientException: The Access Key ID or security token is invalid.: DynamoDB - Error -
Environment: win32, node 21.6.1, framework 3.38.0 (local) 3.38.0v (global), plugin 7.2.0, SDK 4.5.1
Docs:        docs.serverless.com
Support:     forum.serverless.com
Bugs:        github.com / serverless / serverless/issues

Error:
UnrecognizedClientException: The Access Key ID or security token is invalid. 

Me sirvi贸 esta soluci贸n:
https://stackoverflow.com/a/76608752/17748598
Espero les sirva!

Este curso da una cantidad ingente de problemas en la instalaci贸n, y segu铆s sin actualizar

Like si viste el "Moto viajero cali colombia"
Para los que no quieren instalar Java. pueden user docker como correr dynamodb en local con este comando: docker run --rm -d --name dynamodb -p 8000:8000 amazon/dynamodb-local:1.18.0 -jar DynamoDBLocal.jar -sharedDb -dbPath /home/dynamodblocal -sharedDb despues cambian su serverless.yml asi: ![](https://static.platzi.com/media/user_upload/image-fe034c7a-9e38-40c2-9bfe-ec0905601f16.jpg) references: * <https://pengbintech.medium.com/error-unrecognizedclientexception-the-security-token-included-in-the-request-is-invalid-6f9c3dab293#:~:text=It%20seems%20it%20is%20an>,an%20DynamoDb%20service%20client%20object. * <https://github.com/99x/serverless-dynamodb-local/issues/57>
fix Error: Error configuring or installing Dynamodb local TypeError npm uninstall serverless-dynamodb-local npm i serverless-dynamodb
Si te sale **Error getting DynamoDb local latest tar.gz location undefined: 403** lo resolvi de la siguiente manera: \- Editar el archivo \*\*node\_modules/dynamodb-localhost/dynamodb/config.json\*\*, editar la propiedad \*\*download\_url\*\* colocandole la URL donde se encuentra alojado actualmente el archivo \*\*dynamodb\_local\_latest.tar.gz\*\*. \- Se puede obtener la ultima URL de alojamiento ingresando a est谩 \[p谩gina]\(https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.DownloadingAndRunning.html). \- Una vez que ingresamos a la p谩gina, podemos elegir la versi贸n a descargar de \*\*Download DynamoDB local\*\* \- Click en la versi贸n deseada para abrir la lista desplegable. \- Una vez abierta la lista desplegable, en la secci贸n \*\*Download Links\*\* podremos copiar el enlace directo de la ultima locaci贸n del archivo. \- Clic derecho y copiamos el enlace. \- Nos dirigimos al archivo \*\*node\_modules/dynamodb-localhost/dynamodb/config.json\*\* y pegamos la nueva URL en la propiedad \*\*download\_url\*\*. \- Luego nos vamos a \*\*node\_modules/dynamodb-localhost/dynamodb/installer.js\*\* y reemplzamos el m贸dulo \*\*http\*\* por \*\*https\*\* en las importaciones.

La siguiente guia me sirvio para solucionar el problema con dynamodb:

First, make sure you have Java JDK & JRE (Java Runtime Engine) version 6.x or newer is installed on your machine since it is required by the Local DynamoDB.

Usually error gets fixed by executing the following set of commands:

  npm remove serverless-dynamodb-local
  npm install serverless-dynamodb-local@0.2.35
  sls dynamodb install

If you want to use versions after 0.2.26 make sure to execute the following command instead of sls dynamodb install:

sls dynamodb install --localPath ./bin

After you have installed the Local DynamoDB, you can start it by executing the following command:

sls offline start

If DynamoDB Offline is still not running, it might be failing to do so because port 8000 is already in use. You can run DynamoDB Offline on a different port by specifying -p option to the sls offline start command like so:

sls dynamodb start -p 8000

Link referencia: https://dynobase.dev/dynamodb-errors/unable-to-start-dynamodb-local-process/

en este paso tuve un error de codigo a la hora de ejecutar el comando sls dynamodb install, esto me dice en mi cmd "Running "serverless" from node_modules Started downloading dynamodb-local from http://s3-us-west-2.amazonaws.com/dynamodb-local/dynamodb_local_latest.tar.gz into C:\Users\crash\serverless-framework\.dynamodb. Process may take few minutes.

Ruta :
serverless-framework/node_modules/.pnpm/[email protected]/node_modules/dynamodb-localhost/dynamodb/installer.js

Yo les recomiendo fervientemente que instalen los versi贸n manager de cada lenguaje, asi no se vuelven un 8 saltando de versiones de lenguajes.

cabe destacar que en windows da muchos problemas, asi que lo mejor trabajar desde una instancia Windows Linux subsystem (WLS) asi tienen un lindo sandbox de desarrollo

En mi caso particular ( en windows 11 enterprise) , me salia este error:

serverless dynamodb start  
Running "serverless" from node_modules

UnknownError: 404: DynamoDB - Error - 
Environment: win32, node 14.21.3, framework 3.30.0 (local) 3.28.1v (global), plugin 6.2.3, SDK 4.3.2
Docs:        docs.serverless.com
Support:     forum.serverless.com


Error:
UnknownError: 404

y la solucion fue cambiar el numero de puerto de dynamodb :8001

Si el comando sls no funciona, utiliz谩:

serverless --help 

Para MAC Serverless:
(En la terminal) --> sudo npm install -g serverless