Создание файлов сценария bash для создания корзины S3 - PullRequest
0 голосов
/ 27 ноября 2018

Я написал эти команды для создания корзины s3:

bucketname=test1234
AWS_ACCESS_KEY_ID=*** AWS_SECRET_ACCESS_KEY=*** REGION=us-east-1 aws s3 mb "s3://$bucketname"

Это успешно создает корзину.но когда я копирую это в файл, передавая имя сегмента в качестве аргумента и запуская файл сценария, я получаю сообщение об ошибке:

Script in the file:
bucketname=$1
AWS_ACCESS_KEY_ID=*** AWS_SECRET_ACCESS_KEY=*** REGION=us-east-1 aws s3 mb "s3://$bucketname"

Файл Bash: createbucket.txt Используемая команда: ./createbucket.txt buckettest1234

    Error:

         Parameter validation failed:ettest1234
    ": Bucket name must match the regex "^[a-zA-Z0-9.\-_]{1,255}$"

Почему-то даже вынимает первые 4 буквы.

1 Ответ

0 голосов
/ 27 ноября 2018

Сообщение об ошибке, которое вы получаете, указывает на то, что с именем корзины что-то происходит до того, как оно поступило в команду aws.Вы ожидаете buckettest1234, но получаете что-то вроде ettest1234.

Чтобы было легче понять, почему это происходит, попробуйте заключить свои секреты в одинарные кавычки, ссылки на переменные в двойные кавычки,и инициализируем ваши переменные в их собственных строках и печатаем промежуточное значение, например так:

createbucket.sh:

#! /usr/bin/env bash
AWS_ACCESS_KEY_ID='***'
AWS_SECRET_ACCESS_KEY='***'
REGION='us-east-1' 
aws s3 mb "s3://$1"
aws s3 cp "s3://frombucket/testfile.txt" "s3://$1/testfile.txt"
...