Trabajar con los datos de usuario de la instancia - Amazon Elastic Compute Cloud

Trabajar con los datos de usuario de la instancia

Al trabajar con los datos de usuario de la instancia, tenga en cuenta lo siguiente:

  • Los datos de usuario deben estar codificados con base64. La consola de Amazon EC2 puede realizar la codificación con base64 por usted, o bien puede aceptar la entrada codificada con base64.

  • Los datos de usuario están limitados a 16 KB, sin formato, antes de cifrarlo en base64. El tamaño de una cadena de longitud n tras el cifrado en base64 es ceil(n/3)*4.

  • Los datos de usuario deben descodificarse en base64 al recuperarlos. Los datos se descodifican automáticamente si los recupera con los metadatos de instancia o la consola.

  • Los datos de usuario se tratan como datos opacos: lo que facilita es lo que obtiene. La instancia es quien debe interpretarlos.

  • Si detiene una instancia, modifica sus datos de usuario y la inicia de nuevo, los datos de usuario actualizados no se ejecutan automáticamente al iniciar la instancia. Sin embargo, puede configurar los ajustes para que los scripts de datos de usuario actualizados se ejecuten una vez al iniciar la instancia, o bien cada vez que esta se inicie o se reinicie.

Especificar los datos de usuario de la instancia durante el lanzamiento

Puede especificar los datos de usuario al lanzar una instancia. Puede especificar que los datos de usuario se ejecuten una vez en el momento del lanzamiento o bien cada vez que se inicie o se reinicie la instancia. Para obtener más información, consulte Ejecutar comandos en la instancia de Windows durante el lanzamiento.

Modificar los datos de usuario de la instancia

Puede modificar los datos de usuario de una instancia en estado detenido si el volumen raíz es un volumen de EBS. Para obtener más información, consulte Visualizar y actualizar los datos de usuario de la instancia.

Recuperar los datos de usuario de la instancia

nota

En los ejemplos de esta sección, se utiliza la dirección IPv4 del servicio de metadatos de instancia: 169.254.169.254. Si recupera metadatos de instancia para las instancias EC2 a través de la dirección IPv6, asegúrese de habilitar y utilizar la dirección IPv6 en su lugar: fd00:ec2::254. La dirección IPv6 del servicio de metadatos de instancia es compatible con los comandos IMDSv2. Solo se puede acceder a la dirección IPv6 en Instancias integradas en el sistema Nitro.

Para recuperar datos de usuario de una instancia en ejecución, utilice el siguiente URI.

http://169.254.169.254/latest/user-data

Las solicitudes de datos de usuario devuelven los datos tal cual (tipo de contenido application/octet-stream).

Este ejemplo devuelve datos de usuario que se proporcionaron como texto separado por comas.

IMDSv2
PS C:\> [string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/api/token
PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/user-data 1234,john,reboot,true | 4512,richard, | 173,,,
IMDSv1
PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} ` -Method PUT -Uri http://169.254.169.254/latest/api/token} -Method GET -uri http://169.254.169.254/latest/user-data 1234,john,reboot,true | 4512,richard, | 173,,,

Este ejemplo devuelve datos de usuario que se proporcionaron como script.

IMDSv2
PS C:\> [string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/api/token
PS C:\> Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/user-data <powershell> $file = $env:SystemRoot + "\Temp\" + (Get-Date).ToString("MM-dd-yy-hh-mm") New-Item $file -ItemType file </powershell> <persist>true</persist>
IMDSv1
PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/user-data <powershell> $file = $env:SystemRoot + "\Temp\" + (Get-Date).ToString("MM-dd-yy-hh-mm") New-Item $file -ItemType file </powershell> <persist>true</persist>

Para recuperar datos de usuario de una instancia desde su propio equipo, consulte Datos de usuario y las Tools for Windows PowerShell.