สวัสดี ทีมงาน ฉันต้องการความช่วยเหลือในการแทนที่การแก้ไขการกำหนดงาน ecs ปัจจุบันในไฟล์ json ฉันสามารถแทนที่ค่าสำหรับ awsNetworkSubnet ในตัวแปร json ได้สำเร็จ
แต่พยายามสร้างคำสั่ง sed ที่เหมาะสมสำหรับการแก้ไขหมายเลข (ซึ่งเป็น 7 ในตัวแปรตัวอย่าง json ด้านล่าง)
สคริปต์ทุบตี:
#!/bin/bash
Input_file=$1
ENV=$2
Commit_id=$3
subnet_id=$(aws ec2 อธิบาย subnets --filter "Name=tag:use,Values=data" --query "Subnets[*].SubnetId" --output json | jq -r '.[0]')
echo "Subnet ID: ${subnet_id}"
airflow_ecs_task_definition_revision=$( aws ecs อธิบายงานนิยาม -- งานนิยาม airflow_ecs-small --output json | jq '.taskDefinition.revision')
echo "การแก้ไขข้อกำหนดงาน ECS: ${airflow_ecs_task_definition_revision}"
sed -i $1 \
-e "/\"awsNetworkSubnet\":/ s/\"awsNetworkSubnet\":[^,]*/\"awsNetworkSubnet\":\"${subnet_id}\"/"
ตัวอย่างไฟล์ Json (ตัวแปร,json)
"awsCluster": "airflow_ecs-dev",
"awsContainerName": "airflow_ecs",
"awsNetworkSubnet": "ซับเน็ต-1234",
"awsRegionName": "เรา-ตะวันออก-1",
"awsSecurityGroup": "sg-1234",
"awsTaskDefinition": "airflow_ecs-small:7"
},
AWS CLi ที่ใช้:
./subnet-cicd.sh ตัวแปร json ทดสอบ cmt1234