Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Esqueletos de la AWS CLI y archivos de entrada en la AWS CLI

Modo de enfoque
Esqueletos de la AWS CLI y archivos de entrada en la AWS CLI - AWS Command Line Interface

Esta documentación es para la versión 1 de AWS CLI. Para obtener documentación relacionada con la versión 2 de AWS CLI, consulte la Guía del usuario de la versión 2.

Esta documentación es para la versión 1 de AWS CLI. Para obtener documentación relacionada con la versión 2 de AWS CLI, consulte la Guía del usuario de la versión 2.

La mayoría de los comandos de la AWS CLI aceptan la importación de las entradas de parámetros de un archivo. Estas plantillas se pueden generar con la opción generate-cli-skeleton y, a continuación, se pueden importar con los parámetros --cli-input-json.

Sobre esqueletos y archivos de ‎entrada de AWS CLI

‎La mayoría de los comandos de AWS Command Line Interface (AWS CLI) pueden aceptar las entradas de parámetros desde un archivo con los parámetros ‎--cli-input-json.

Esos mismos comandos usan el parámetro --generate-cli-skeleton para generar un archivo en formato JSON con todos los parámetros que pueda editar y completar. ‎A continuación, puede ejecutar el comando con el parámetro --cli-input-json y apuntar al archivo cumplimentado.

importante

Los comandos de la AWS CLI personalizados, como los comandos aws s3 no admiten los parámetros --generate-cli-skeleton o --cli-input-json descritos en este tema. Para comprobar si un comando específico admite estos parámetros, ejecute el comando help correspondiente al comando que desee utilizar o consulte la guía de referencia de la versión 1 de AWS CLI.

--generate-cli-skeleton genera y muestra una plantilla de parámetros que puede personalizar y utilizar como entrada en un comando. La plantilla generada incluye todos los parámetros que admite el comando.

El parámetro --generate-cli-skeleton acepta uno de los siguientes valores:

  • input: la plantilla generada incluye todos los parámetros de entrada formateados como JSON. Este es el valor predeterminado.

  • output: la plantilla generada incluye todos los parámetros de salida formateados como JSON.

Como la AWS CLI es esencialmente un "encapsulador" de la API del servicio, el archivo de esqueleto espera que el usuario haga referencia a todos los parámetros utilizando los nombres de parámetro de la API subyacente. Es probable que este nombre sea distinto al nombre del parámetro de la AWS CLI. Por ejemplo, un parámetro de la AWS CLI llamado user-name podría corresponderse con un parámetro de la API de servicio de AWS llamado UserName (observe cómo se usan las mayúsculas y que falta un guion). Le recomendamos que utilice la opción --generate-cli-skeleton para generar la plantilla con los nombres de parámetros "correctos" con el fin de evitar errores. Puede hacer referencia a la Guía de referencia de la API del servicio para ver los nombres de los parámetros esperados. Puede eliminar cualquier parámetro de la plantilla que no sea necesario y para el que no desee proporcionar un valor.

Por ejemplo, si ejecuta el siguiente comando, se genera la plantilla de parámetros para el comando Amazon Elastic Compute Cloud (Amazon EC2) run-instances.

JSON

En el siguiente ejemplo, se muestra cómo se genera una plantilla con formato JSON utilizando el valor predeterminado (input) en el parámetro --generate-cli-skeleton.

$ aws ec2 run-instances --generate-cli-skeleton
{ "DryRun": true, "ImageId": "", "MinCount": 0, "MaxCount": 0, "KeyName": "", "SecurityGroups": [ "" ], "SecurityGroupIds": [ "" ], "UserData": "", "InstanceType": "", "Placement": { "AvailabilityZone": "", "GroupName": "", "Tenancy": "" }, "KernelId": "", "RamdiskId": "", "BlockDeviceMappings": [ { "VirtualName": "", "DeviceName": "", "Ebs": { "SnapshotId": "", "VolumeSize": 0, "DeleteOnTermination": true, "VolumeType": "", "Iops": 0, "Encrypted": true }, "NoDevice": "" } ], "Monitoring": { "Enabled": true }, "SubnetId": "", "DisableApiTermination": true, "InstanceInitiatedShutdownBehavior": "", "PrivateIpAddress": "", "ClientToken": "", "AdditionalInfo": "", "NetworkInterfaces": [ { "NetworkInterfaceId": "", "DeviceIndex": 0, "SubnetId": "", "Description": "", "PrivateIpAddress": "", "Groups": [ "" ], "DeleteOnTermination": true, "PrivateIpAddresses": [ { "PrivateIpAddress": "", "Primary": true } ], "SecondaryPrivateIpAddressCount": 0, "AssociatePublicIpAddress": true } ], "IamInstanceProfile": { "Arn": "", "Name": "" }, "EbsOptimized": true }

En el siguiente ejemplo, se muestra cómo se genera una plantilla con formato JSON utilizando el valor predeterminado (input) en el parámetro --generate-cli-skeleton.

$ aws ec2 run-instances --generate-cli-skeleton
{ "DryRun": true, "ImageId": "", "MinCount": 0, "MaxCount": 0, "KeyName": "", "SecurityGroups": [ "" ], "SecurityGroupIds": [ "" ], "UserData": "", "InstanceType": "", "Placement": { "AvailabilityZone": "", "GroupName": "", "Tenancy": "" }, "KernelId": "", "RamdiskId": "", "BlockDeviceMappings": [ { "VirtualName": "", "DeviceName": "", "Ebs": { "SnapshotId": "", "VolumeSize": 0, "DeleteOnTermination": true, "VolumeType": "", "Iops": 0, "Encrypted": true }, "NoDevice": "" } ], "Monitoring": { "Enabled": true }, "SubnetId": "", "DisableApiTermination": true, "InstanceInitiatedShutdownBehavior": "", "PrivateIpAddress": "", "ClientToken": "", "AdditionalInfo": "", "NetworkInterfaces": [ { "NetworkInterfaceId": "", "DeviceIndex": 0, "SubnetId": "", "Description": "", "PrivateIpAddress": "", "Groups": [ "" ], "DeleteOnTermination": true, "PrivateIpAddresses": [ { "PrivateIpAddress": "", "Primary": true } ], "SecondaryPrivateIpAddressCount": 0, "AssociatePublicIpAddress": true } ], "IamInstanceProfile": { "Arn": "", "Name": "" }, "EbsOptimized": true }

Generación e importación de un esqueleto de comandos

Para generar y utilizar un archivo de esqueleto de parámetros
  1. ‎Ejecute el comando con el pa‎rámetro --generate-cli-skeleton para producir JSON y dirigirla a un archivo para guardarla.

    JSON
    $ aws ec2 run-instances --generate-cli-skeleton input > ec2runinst.json
    $ aws ec2 run-instances --generate-cli-skeleton input > ec2runinst.json
  2. Abra el archivo de esqueleto de parámetros en el editor de texto y quite todos los parámetros que no necesite. Por ejemplo, puede reducir la plantilla hasta dejarla tal y como se muestra a continuación. Confirme que el código JSON del archivo sigue siendo válido después de eliminar los elementos que no necesita.

    JSON
    { "DryRun": true, "ImageId": "", "KeyName": "", "SecurityGroups": [ "" ], "InstanceType": "", "Monitoring": { "Enabled": true } }
    { "DryRun": true, "ImageId": "", "KeyName": "", "SecurityGroups": [ "" ], "InstanceType": "", "Monitoring": { "Enabled": true } }

    En este ejemplo, dejamos el parámetro DryRun establecido en true para utilizar la característica “dry run” (simulacro) de Amazon EC2. Esta característica le permite probar el comando de forma segura sin crear ni modificar ningún recurso.

  3. Rellene los valores restantes con valores adecuados para su escenario. En este ejemplo, proporcionamos el tipo de instancia, el nombre de la clave, el grupo de seguridad y el identificador de Amazon Machine Image (AMI) que vamos a utilizar. En este ejemplo, se asume la Región de AWS predeterminada. La AMI ami-dfc39aef es una imagen de Amazon Linux de 64 bits alojada en la región us-west-2. Si utiliza una región diferente, debe encontrar el ID apropiado de la AMI que desea utilizar.

    JSON
    { "DryRun": true, "ImageId": "ami-dfc39aef", "KeyName": "mykey", "SecurityGroups": [ "my-sg" ], "InstanceType": "t2.micro", "Monitoring": { "Enabled": true } }
    { "DryRun": true, "ImageId": "ami-dfc39aef", "KeyName": "mykey", "SecurityGroups": [ "my-sg" ], "InstanceType": "t2.micro", "Monitoring": { "Enabled": true } }
  4. Ejecute el comando con los parámetros completados pasando el archivo de plantilla relleno al parámetro --cli-input-json al utilizar ‎el prefijo file://. La AWS CLI interpreta la ruta como relativa al directorio de trabajo actual. En el siguiente ejemplo, la AWS CLI busca el archivo en el directorio de trabajo actual.

    JSON
    $ aws ec2 run-instances --cli-input-json file://ec2runinst.json
    A client error (DryRunOperation) occurred when calling the RunInstances operation: Request would have succeeded, but DryRun flag is set.
    $ aws ec2 run-instances --cli-input-json file://ec2runinst.json
    A client error (DryRunOperation) occurred when calling the RunInstances operation: Request would have succeeded, but DryRun flag is set.

    El error del simulacro indica que el código JSON está formado correctament‎e y que los valores de los parámetros son válidos. Si se informa de cualquier otro problema en la salida, corríjalo y repita el paso anterior hasta que aparezca el mensaje "Request would have succeeded".

  5. Ahora puede establecer el parámetro DryRun en false para deshabilitar el simulacro.

    JSON
    { "DryRun": false, "ImageId": "ami-dfc39aef", "KeyName": "mykey", "SecurityGroups": [ "my-sg" ], "InstanceType": "t2.micro", "Monitoring": { "Enabled": true } }
    { "DryRun": false, "ImageId": "ami-dfc39aef", "KeyName": "mykey", "SecurityGroups": [ "my-sg" ], "InstanceType": "t2.micro", "Monitoring": { "Enabled": true } }
  6. Ejecute el comando para que run-instances lance una instancia de Amazon EC2 y muestre los detalles que se generan cuando el lanzamiento se realiza correctamente. El parámetro --output controla el formato de salida, independientemente del formato de la plantilla de parámetros de entrada.

    JSON
    $ aws ec2 run-instances --cli-input-json file://ec2runinst.json --output json
    { "OwnerId": "123456789012", "ReservationId": "r-d94a2b1", "Groups": [], "Instances": [ ...
    $ aws ec2 run-instances --cli-input-json file://ec2runinst.json --output json
    { "OwnerId": "123456789012", "ReservationId": "r-d94a2b1", "Groups": [], "Instances": [ ...

Combinación de archivos de entrada y parámetros de línea de comandos

Se puede usar un archivo de entrada para todos los parámetros o se puede combinar con los parámetros especificados en la AWS CLI. Puede utilizar esta característica para los ajustes que reutiliza con frecuencia en un archivo de entrada y, al mismo tiempo, conservar los ajustes individuales en el propio comando.

En los siguientes ejemplos de aws ec2 run-instances, se combinan el uso de un archivo de entrada y parámetros. Proporcionamos el tipo de instancia, el nombre de la clave, el grupo de seguridad y el identificador de la imagen de máquina de Amazon (AMI) que se va a utilizar y se asume la Región de AWS predeterminada. La AMI ami-dfc39aef es una imagen de Amazon Linux de 64 bits alojada en la región us-west-2. Si utiliza una región diferente, debe encontrar el ID apropiado de la AMI que desea utilizar.

JSON

Contenido del archivo JSON:

{ "ImageId": "ami-dfc39aef", "KeyName": "mykey", "SecurityGroups": [ "my-sg" ], "InstanceType": "t2.micro", "Monitoring": { "Enabled": true } }

Contenido del archivo JSON:

{ "ImageId": "ami-dfc39aef", "KeyName": "mykey", "SecurityGroups": [ "my-sg" ], "InstanceType": "t2.micro", "Monitoring": { "Enabled": true } }

En el siguiente ejemplo, se utiliza el archivo de entrada en combinación con el parámetro --dry-run para realizar una actualización de prueba del comando para confirmar si tiene los permisos necesarios y si ha rellenado el archivo con valores válidos.

JSON
$ aws ec2 run-instances --cli-input-json file://ec2runinst.json --dry-run
A client error (DryRunOperation) occurred when calling the RunInstances operation: Request would have succeeded, but DryRun flag is set.
$ aws ec2 run-instances --cli-input-json file://ec2runinst.json --dry-run
A client error (DryRunOperation) occurred when calling the RunInstances operation: Request would have succeeded, but DryRun flag is set.

A continuación, en el siguiente ejemplo se utiliza el mismo archivo de entrada, pero con el parámetro --no-dry-run para ejecutar el comando en su totalidad.

JSON
$ aws ec2 run-instances --cli-input-json file://ec2runinst.json --no-dry-run --output json
{ "OwnerId": "123456789012", "ReservationId": "r-d94a2b1", "Groups": [], "Instances": [ ...
$ aws ec2 run-instances --cli-input-json file://ec2runinst.json --no-dry-run --output json
{ "OwnerId": "123456789012", "ReservationId": "r-d94a2b1", "Groups": [], "Instances": [ ...
PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.