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