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.
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