簡體   English   中英

aws cli:ssm啟動會話無法將變量用作參數值

[英]aws cli: ssm start-session not working with a variable as a parameter value

我試圖通過創建一個bash函數來使我的工作的一部分自動化,讓我輕松地將其輸入到我們的一個實例中。 為此,我只需要知道實例ID。 然后,使用適當的配置文件運行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.

但是,然后我獲取該實例ID並直接從我的終端運行它,它的工作原理是:

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

為什么是這樣?

您將實例ID發送為"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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM