[英]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.