AWS CLI esqueletos y archivos de entrada en el AWS CLI - AWS Command Line Interface

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

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

AWS CLI esqueletos y archivos de entrada en el AWS CLI

La mayoría de los AWS CLI comandos aceptan todas las entradas de parámetros de un archivo. Estas plantillas se pueden generar mediante opción generate-cli-skeleton.

Acerca de los AWS CLI esqueletos y los archivos de entrada

La mayoría de los comandos AWS Command Line Interface (AWS CLI) admiten la posibilidad de aceptar todas las entradas de parámetros de un archivo mediante el --cli-input-yaml parámetro --cli-input-json s.

Estos mismos comandos proporcionan el --generate-cli-skeleton parámetro necesario para generar un archivo en varios formatos con todos los parámetros que se pueden editar y rellenar. ‎A continuación, puede ejecutar el comando con el parámetro --cli-input-json relevante y apuntar al archivo cumplimentado.

importante

Varios AWS CLI comandos no se asignan directamente a AWS API operaciones individuales, como los aws s3comandos de . ‎Estos comandos no son compatibles con los parámetros --generate-cli-skeleton o --cli-input-json descritos en este tema. Si no sabe si un comando específico admite estos parámetros, ejecute el siguiente comando, sustituyendo el service y command nombres con los que le interesen.

$ aws service command help

El resultado incluye una sección Synopsis que muestra los parámetros que admite el comando especificado.

$ aws iam list-users help ... SYNOPSIS list-users ... [--cli-input-json] ... [--generate-cli-skeleton <value>] ...

El parámetro --generate-cli-skeleton hace que el comando no se ejecute, sino que genere y muestre una plantilla de parámetros que se puede personalizar y utilizar como entrada de otro comando posterior. 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 comoJSON. Este es el valor predeterminado.

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

Como básicamente AWS CLI se trata de un «envoltorio» alrededor de los del servicioAPI, el archivo básico espera que se haga referencia a todos los parámetros por sus nombres de API parámetros subyacentes. Es probable que sea diferente del nombre del AWS CLI parámetro. Por ejemplo, un AWS CLI parámetro denominado user-name podría asignarse al API parámetro del AWS servicio denominado UserName (observe que se ha modificado el uso de mayúsculas y que falta un guión). 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. También puede consultar la Guía de API referencia 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 (AmazonEC2)run-instances.

JSON

En el siguiente ejemplo, se muestra cómo generar una plantilla JSON formateada con el valor predeterminado (input) para el --generate-cli-skeleton parámetro.

$ 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 de un esqueleto de comandos

Para generar y utilizar un archivo de esqueleto de parámetros
  1. Ejecute el comando con el --generate-cli-skeleton parámetro para generar una y dirija la salida a un archivo para guardarla.

    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. Asegúrese de que el archivo siga siendo válido JSON después de eliminar los elementos que no necesite.

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

    En este ejemplo, dejamos el DryRun parámetro establecido en true para usar la función Amazon EC2 dry run. 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 clave, el grupo de seguridad y el identificador de Amazon Machine Image (AMI) que se va a utilizar. En este ejemplo, se asume la AWS región predeterminada. AMIami-dfc39aefEs una imagen de Amazon Linux de 64 bits alojada en la us-west-2 región. Si usa una región diferente, debe encontrar el AMI ID correcto para usarlo.

    JSON
    { "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://. AWS CLI interpreta que la ruta es relativa a su directorio de trabajo actual, por lo que en el siguiente ejemplo, que muestra solo el nombre del archivo sin ninguna ruta, busca el archivo directamente 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.

    El error de ejecución en seco indica que el JSON está formado correctamente 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 } }
  6. Ejecuta el comando y, de run-instances hecho, lanza una EC2 instancia de Amazon y muestra los detalles generados por el lanzamiento exitoso. 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": [ ...