簡體   English   中英

將 AWS CLI 命令中的 output 分配給第二個 AWS CLI 命令

[英]Assign output from AWS CLI command to 2nd AWS CLI command

我正在編寫用於創建 AWS AMI 映像的自動化任務,目標是從aws import-image (.ova 到 ami 轉換)獲取 output 並在第二個命令中添加名稱:

importaskid=$(aws ec2 import-image --disk-containers  Format=ova,UserBucket="{S3Bucket=acp17,S3Key=XXXXX.ova}" | jq -r '.ImportTaskId')

aws ec2 create-tags --resources echo $importaskid --tags 'Key=Name, Value=acp_ami_test'

我能夠$importaskid並看到所需的 output 但是當使用aws ec2 create-tags時,創建的 AMI 映像沒有名稱,並且來自第二個命令的 output 為空。

感謝您的幫助。

這應該適合你:

# set bash variable "importaskid":
importaskid=$(aws ec2 import-image --disk-containers Format=ova,UserBucket="{S3Bucket=acp17,S3Key=XXXXX.ova}" | jq -r '.ImportTaskId')

# Verify that importaskid is set correctly
echo $importaskid

# Now use it:
aws ec2 create-tags --resources "$importaskid" --tags 'Key=Name, Value=acp_ami_test'

這里討論了將命令的 output 分配給變量的“$()”語法: https://www.cyberciti.biz/faq/unix-linux-bsd-appleosx-bash-assign-variable-command-output /

如果 "$importaskid" 的值恰好有空格,則"$importaskid"中的雙引號是必要的。

'希望有幫助!

感謝您的回復,所以當我在沒有 echo $ImportTaskId 的情況下運行命令時,請參見下文

aws ec2 create-tags --resource import-ami-XXXXXXXXXXXXX --tags Key=Name,Value='name_ami_test'

我得到空響應,並且未在 aws 控制台中分配名稱,因此我將在將名稱分配給 AMI ID 之后與 AWS 支持/檢查語法/檢查交談,而不是 import-ami-XXXXXXXXXXXXXXXX

暫無
暫無

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

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