aws cli: ssm start-session не работает с переменной в качестве значения параметра - PullRequest
0 голосов
/ 17 марта 2019

Я пытаюсь автоматизировать некоторую часть своей работы, создав функцию bash, которая позволяет мне легко использовать ssm в одном из наших экземпляров. Для этого мне нужно знать только идентификатор экземпляра. Затем я запускаю aws ssm start-session с соответствующим профилем. Вот функция:

function ssm_to_cluster() {
  local instance_id=$(aws ec2 describe-instances --filters \
    "Name=tag:Environment,Values=staging" \
    "Name=tag:Name,Values=my-cluster-name" \
    --query 'Reservations[*].Instances[*].[InstanceId]' \
    | grep i- | awk '{print $1}' | tail -1)
  aws ssm start-session --profile AccountProfile --target $instance_id
}

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

An error occurred (TargetNotConnected) when calling the StartSession operation: "i-0599385eb144ff93c" is not connected.

Однако затем я беру этот экземпляр экземпляра и запускаю его непосредственно из моего терминала, он работает:

aws ssm start-session --profile MyProfile --target i-0599385eb144ff93c

Почему это?

1 Ответ

1 голос
/ 17 марта 2019

Вы отправляете идентификатор экземпляра как "i-0599385eb144ff93c" вместо i-0599385eb144ff93c.

Модифицированная функция, которая должна работать -

function ssm_to_cluster() {
  local instance_id=$(aws ec2 describe-instances --filters \
    "Name=tag:Environment,Values=staging" \
    "Name=tag:Name,Values=my-cluster-name" \
    --query 'Reservations[*].Instances[*].[InstanceId]' \
    | grep i- | awk '{print $1}' | tail -1 | tr -d '"')
  aws ssm start-session --profile AccountProfile --target $instance_id
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...