Carregando parâmetros de um arquivo no AWS CLI - AWS Command Line Interface

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Carregando parâmetros de um arquivo no AWS CLI

Alguns parâmetros esperam nomes de arquivos como argumentos, a partir dos quais os dados são AWS CLI carregados. Outros parâmetros permitem que você especifique o valor do parâmetro como texto digitado na linha de comando ou lido de um arquivo. Se um arquivo é obrigatório ou opcional, você deve codificá-lo corretamente para que eles AWS CLI possam entendê-lo. A codificação do arquivo deve corresponder à localidade padrão do sistema de leitura. É possível determinar isso usando o método locale.getpreferredencoding() do Python.

nota

Por padrão, o Windows PowerShell gera texto como UTF -16, o que entra em conflito com a codificação UTF -8 usada por JSON arquivos e muitos sistemas Linux. Recomendamos que você use -Encoding ascii com seus PowerShell Out-File comandos para garantir que eles AWS CLI possam ler o arquivo resultante.

Como carregar os parâmetros de um arquivo

Às vezes, é conveniente carregar um valor de parâmetro de um arquivo em vez de tentar digitar tudo como um valor de parâmetro de linha de comando, como quando o parâmetro é uma JSON string complexa. Para especificar um arquivo que contenha o valor, especifique um arquivo URL no formato a seguir.

file://complete/path/to/file
  • Os dois primeiros caracteres de barra “/” fazem parte da especificação. Se o caminho exigido começar com “/”, o resultado será três caracteres de barra: file:///folder/file.

  • O URL fornece o caminho para o arquivo que contém o conteúdo real do parâmetro.

  • Ao usar arquivos com espaços ou caracteres especiais, siga as regras de aspas e escape para seu terminal.

Os caminhos do arquivo no exemplo a seguir são interpretados como sendo relativos ao diretório de trabalho atual.

Linux or macOS
// Read from a file in the current directory $ aws ec2 describe-instances --filters file://filter.json // Read from a file in /tmp $ aws ec2 describe-instances --filters file:///tmp/filter.json // Read from a file with a filename with whitespaces $ aws ec2 describe-instances --filters 'file://filter content.json'
Windows command prompt
// Read from a file in C:\temp C:\> aws ec2 describe-instances --filters file://C:\temp\filter.json // Read from a file with a filename with whitespaces C:\> aws ec2 describe-instances --filters "file://C:\temp\filter content.json"

A opção de prefixo file:// é compatível com as expansões de estilo Unix, inclusive "~/", "./" e "../". No Windows, a expressão "~/" se expande para o seu diretório de usuário, armazenado na variável de ambiente %USERPROFILE%. Por exemplo, no Windows 10, haveria normalmente um diretório de usuário em C:\Users\UserName\.

Você ainda deve escapar JSON dos documentos que estão incorporados como o valor de outro JSON documento.

$ aws sqs create-queue --queue-name my-queue --attributes file://attributes.json

attributes.json

{ "RedrivePolicy": "{\"deadLetterTargetArn\":\"arn:aws:sqs:us-west-2:0123456789012:deadletter\", \"maxReceiveCount\":\"5\"}" }

Arquivos binários

Para comandos que incluem dados binários como um parâmetro, especifique que os dados são conteúdo binário usando o prefixo fileb://. Comandos que aceitam dados binários incluem:

  • aws ec2 run-instances: parâmetro --user-data.

  • aws s3api put-object: parâmetro --sse-customer-key.

  • aws kms decrypt: parâmetro --ciphertext-blob.

O exemplo a seguir gera uma AES chave binária de 256 bits usando uma ferramenta de linha de comando do Linux e, em seguida, a fornece ao Amazon S3 para criptografar um arquivo carregado no lado do servidor.

$ dd if=/dev/urandom bs=1 count=32 > sse.key 32+0 records in 32+0 records out 32 bytes (32 B) copied, 0.000164441 s, 195 kB/s $ aws s3api put-object \ --bucket amzn-s3-demo-bucket \ --key test.txt \ --body test.txt \ --sse-customer-key fileb://sse.key \ --sse-customer-algorithm AES256 { "SSECustomerKeyMD5": "iVg8oWa8sy714+FjtesrJg==", "SSECustomerAlgorithm": "AES256", "ETag": "\"a6118e84b76cf98bf04bbe14b6045c6c\"" }

Para ver outro exemplo que faz referência a um arquivo JSON contendo parâmetros formatados, consulte. Anexando uma política IAM gerenciada a um usuário