es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo usar AWS CLI en PowerShell para actualizar valores en DynamoDB que contienen un espacio en blanco: 1. Abra la línea de comandos de PowerShell. 2. Asegúrese de tener instalada la AWS CLI en su máquina. 3. Inicie sesión en su cuenta de AWS utilizando el siguiente comando: “` aws configure “` Esto abrirá un asistente para ingresar sus credenciales de AWS Access Key ID, Secret Access Key y región preferida. 4. Una vez que esté autenticado, puede usar el siguiente comando para actualizar un valor en una tabla de DynamoDB que contiene un espacio en blanco: “` aws dynamodb update-item –table-name NOMBRE_DE_LA_TABLA –key ‘{“KEY_NAME”: {“S”: “VALOR_ACTUAL”}}’ –update-expression ‘SET NOMBRE_DEL_ATRIBUTO = :NUEVO_VALOR’ –expression-attribute-values ‘{“:NUEVO_VALOR”:{“S”:”NUEVO_VALOR_CON_ESPACIO”}}’ “` Asegúrese de reemplazar “NOMBRE_DE_LA_TABLA” con el nombre de su tabla de DynamoDB, “KEY_NAME” con el nombre de su clave primaria, “VALOR_ACTUAL” con el valor actual en su tabla, “NOMBRE_DEL_ATRIBUTO” con el nombre del atributo que desea actualizar y “NUEVO_VALOR_CON_ESPACIO” con el nuevo valor que contiene un espacio en blanco. 5. Presione Enter para ejecutar el comando. Si la operación se realiza con éxito, su valor será actualizado en la tabla de DynamoDB. ¡Ahora sabe cómo utilizar AWS CLI en PowerShell para actualizar valores en DynamoDB que contienen un espacio en blanco!

He estado probando durante un tiempo la actualización de registros en DynamoDB utilizando la AWS CLI desde PowerShell. No puedo actualizar un valor que contiene un espacio en blanco. A continuación se muestra el comando en el que “2021-11-17 14:48:41” contiene el espacio en blanco. He probado muchas combinaciones diferentes de comillas y escapes, pero no he tenido éxito. Cualquier ayuda sería apreciada.

Esto es desde un servidor Windows 2016 ejecutando AWS CLI 1.18.216. En bash o PowerShell Core en MacOS no tengo este problema.

Comando:

aws dynamodb update-item `
    --table-name $TableName `
    --key $KeyStackJson `
    --update-expression 'SET #H = :h,#D = :d,#E = :e' `
    --expression-attribute-names $AttributeNameJson `
    --expression-attribute-values '{"h":{"S":"0.0.189-alpha"},"d":{"S":"test"},"e":{"S":"2021-11-17 14:48:41"}}'

Salida:

Opciones desconocidas: 14:48:41"}}
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está con la secuencia de escape del carácter de espacio en blanco en el parámetro expression-attribute-values. Intenta reemplazar el espacio en blanco con una comilla simple ‘ ‘ o usando la secuencia de escape \s. Por ejemplo, el siguiente parámetro expression-attribute-values debería funcionar:

    --expression-attribute-values '{":h":{"S":"0.0.189-alpha"},":d":{"S":"test"},":e":{"S":"2021-11-17\s14:48:41"}}'
    

    Alternativamente, también puedes probar encerrar todo el parámetro expression-attribute-values entre comillas dobles y escapar las comillas dobles internas también:

    --expression-attribute-values "{\"h\":{\"S\":\"0.0.189-alpha\"},\":d\":{\"S\":\"test\"},\":e\":{\"S\":\"2021-11-17 14:48:41\"}}"
    

    Espero que esto te ayude. Avísame si tienes alguna otra pregunta.

Comments are closed.