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.
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
.
Temas
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
y s.
Estos mismos comandos proporcionan el --generate-cli-skeleton
parámetro necesario para generar un archivo en uno JSON o YAML 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
o --cli-input-yaml
relevante y apuntar al archivo cumplimentado.
importante
Varios AWS CLI comandos no se asignan directamente a AWS API operaciones individuales, como los . Estos comandos no son compatibles con los parámetros --generate-cli-skeleton
o --cli-input-json
y --cli-input-yaml
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 | --cli-input-yaml]
...
[--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. -
yaml-input
— La plantilla generada incluye todos los parámetros de entrada formateados como. YAML -
output
— La plantilla generada incluye todos los parámetros de salida formateados como. JSON Actualmente no puede solicitar los parámetros de salida comoYAML.
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.
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
-
Ejecute el comando con el
--generate-cli-skeleton
parámetro para generar una JSONo varias opciones YAML y dirija la salida a un archivo para guardarla.$
aws ec2 run-instances --generate-cli-skeleton input
> ec2runinst.json
-
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 o YAML después de eliminar los elementos que no necesite.
{ "DryRun": true, "ImageId": "", "KeyName": "", "SecurityGroups": [ "" ], "InstanceType": "", "Monitoring": { "Enabled": true } }
En este ejemplo, dejamos el
DryRun
parámetro establecido entrue
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. -
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. AMI
ami-dfc39aef
Es una imagen de Amazon Linux de 64 bits alojada en laus-west-2
región. Si usa una región diferente, debe encontrar el AMI ID correcto para usarlo. { "DryRun": true, "ImageId": "
ami-dfc39aef
", "KeyName": "mykey
", "SecurityGroups": [ "my-sg
" ], "InstanceType": "t2.micro
", "Monitoring": { "Enabled": true } } -
Ejecute el comando con los parámetros completados pasando el archivo de plantilla relleno al parámetro
--cli-input-json
ocli-input-yaml
al utilizar el prefijofile://
. 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.$
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 o YAML 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
". -
Ahora puede establecer el parámetro
DryRun
enfalse
para deshabilitar el simulacro.{ "DryRun": false, "ImageId": "ami-dfc39aef", "KeyName": "mykey", "SecurityGroups": [ "my-sg" ], "InstanceType": "t2.micro", "Monitoring": { "Enabled": true } }
-
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.$
aws ec2 run-instances --cli-input-json file://ec2runinst.json --output json
{ "OwnerId": "123456789012", "ReservationId": "r-d94a2b1", "Groups": [], "Instances": [ ...