Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Mengotomatiskan penerapan aplikasi - AWS Panorama

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengotomatiskan penerapan aplikasi

Untuk menerapkan aplikasi, Anda menggunakan AWS Panorama Application CLI dan. AWS Command Line Interface Setelah membangun wadah aplikasi, Anda mengunggahnya dan aset lainnya ke jalur akses Amazon S3. Anda kemudian menerapkan aplikasi dengan CreateApplicationInstanceAPI.

Untuk konteks dan instruksi lebih lanjut untuk menggunakan skrip yang ditampilkan, ikuti instruksi dalam contoh aplikasi README.

Bangun wadahnya

Untuk membangun wadah aplikasi, gunakan build-container perintah. Perintah ini membangun wadah Docker dan menyimpannya sebagai sistem file terkompresi di folder. assets

contoh 3-build-container.sh
CODE_PACKAGE=SAMPLE_CODE ACCOUNT_ID=$(aws sts get-caller-identity --output text --query 'Account') panorama-cli build-container --container-asset-name code_asset --package-path packages/${ACCOUNT_ID}-${CODE_PACKAGE}-1.0

Anda juga dapat menggunakan penyelesaian baris perintah untuk mengisi argumen jalur dengan mengetikkan bagian dari jalur, lalu menekan. TAB

$ panorama-cli build-container --package-path packages/TAB

Unggah wadah dan daftarkan node

Untuk mengunggah aplikasi, gunakan package-application perintah. Perintah ini mengunggah aset dari assets folder ke jalur akses Amazon S3 yang dikelola AWS Panorama.

contoh 4-package-app.sh
panorama-cli package-application

CLI Aplikasi AWS Panorama mengunggah kontainer dan aset deskriptor yang direferensikan oleh konfigurasi paket (package.json) di setiap paket, dan mendaftarkan paket sebagai node di AWS Panorama. Anda kemudian merujuk ke node ini dalam manifes aplikasi Anda (graph.json) untuk menyebarkan aplikasi.

Deploy aplikasi

Untuk menyebarkan aplikasi, Anda menggunakan CreateApplicationInstanceAPI. Tindakan ini mengambil parameter berikut, antara lain.

  • ManifestPayload— Manifes aplikasi (graph.json) yang mendefinisikan node, paket, tepi, dan parameter aplikasi.

  • ManifestOverridesPayload— Manifes kedua yang mengesampingkan parameter di yang pertama. Manifes aplikasi dapat dianggap sebagai sumber daya statis di sumber aplikasi, di mana manifes override menyediakan pengaturan waktu penerapan yang menyesuaikan penerapan.

  • DefaultRuntimeContextDevice— Perangkat target.

  • RuntimeRoleArn— ARN dari peran IAM yang digunakan aplikasi untuk mengakses layanan dan sumber daya AWS.

  • ApplicationInstanceIdToReplace— ID dari instance aplikasi yang ada untuk dihapus dari perangkat.

Muatan manifes dan override adalah dokumen JSON yang harus disediakan sebagai nilai string yang bersarang di dalam dokumen lain. Untuk melakukan ini, skrip memuat manifes dari file sebagai string dan menggunakan alat jq untuk membangun dokumen bersarang.

contoh 5-deploy.sh - tulis manifes
GRAPH_PATH="graphs/my-app/graph.json" OVERRIDE_PATH="graphs/my-app/override.json" # application manifest GRAPH=$(cat ${GRAPH_PATH} | tr -d '\n' | tr -d '[:blank:]') MANIFEST="$(jq --arg value "${GRAPH}" '.PayloadData="\($value)"' <<< {})" # manifest override OVERRIDE=$(cat ${OVERRIDE_PATH} | tr -d '\n' | tr -d '[:blank:]') MANIFEST_OVERRIDE="$(jq --arg value "${OVERRIDE}" '.PayloadData="\($value)"' <<< {})"

Skrip penerapan menggunakan ListDevicesAPI untuk mendapatkan daftar perangkat terdaftar di Wilayah saat ini, dan menyimpan pilihan pengguna ke file lokal untuk penerapan berikutnya.

contoh 5-deploy.sh - menemukan perangkat
echo "Getting devices..." DEVICES=$(aws panorama list-devices) DEVICE_NAMES=($((echo ${DEVICES} | jq -r '.Devices |=sort_by(.LastUpdatedTime) | [.Devices[].Name] | @sh') | tr -d \'\")) DEVICE_IDS=($((echo ${DEVICES} | jq -r '.Devices |=sort_by(.LastUpdatedTime) | [.Devices[].DeviceId] | @sh') | tr -d \'\")) for (( c=0; c<${#DEVICE_NAMES[@]}; c++ )) do echo "${c}: ${DEVICE_IDS[${c}]} ${DEVICE_NAMES[${c}]}" done echo "Choose a device" read D_INDEX echo "Deploying to device ${DEVICE_IDS[${D_INDEX}]}" echo -n ${DEVICE_IDS[${D_INDEX}]} > device-id.txt DEVICE_ID=$(cat device-id.txt)

Peran aplikasi dibuat oleh skrip lain (1-create-role.sh). Skrip penerapan mendapatkan ARN dari peran ini. AWS CloudFormation Jika aplikasi sudah disebarkan ke perangkat, skrip mendapatkan ID instance aplikasi itu dari file lokal.

contoh 5-deploy.sh - peran ARN dan argumen pengganti
# application role STACK_NAME=panorama-${NAME} ROLE_ARN=$(aws cloudformation describe-stacks --stack-name panorama-${PWD##*/} --query 'Stacks[0].Outputs[?OutputKey==`roleArn`].OutputValue' --output text) ROLE_ARG="--runtime-role-arn=${ROLE_ARN}" # existing application instance id if [ -f "application-id.txt" ]; then EXISTING_APPLICATION=$(cat application-id.txt) REPLACE_ARG="--application-instance-id-to-replace=${EXISTING_APPLICATION}" echo "Replacing application instance ${EXISTING_APPLICATION}" fi

Akhirnya, skrip menempatkan semua bagian bersama-sama untuk membuat instance aplikasi dan menyebarkan aplikasi ke perangkat. Layanan merespons dengan ID instance yang disimpan skrip untuk digunakan nanti.

contoh 5-deploy.sh - menyebarkan aplikasi
APPLICATION_ID=$(aws panorama create-application-instance ${REPLACE_ARG} --manifest-payload="${MANIFEST}" --default-runtime-context-device=${DEVICE_ID} --name=${NAME} --description="command-line deploy" --tags client=sample --manifest-overrides-payload="${MANIFEST_OVERRIDE}" ${ROLE_ARG} --output text) echo "New application instance ${APPLICATION_ID}" echo -n $APPLICATION_ID > application-id.txt

Pantau penyebaran

Untuk memantau penerapan, gunakan ListApplicationInstancesAPI. Skrip monitor mendapatkan ID perangkat dan ID instance aplikasi dari file di direktori aplikasi dan menggunakannya untuk membuat perintah CLI. Kemudian memanggil dalam satu lingkaran.

contoh 6-monitor-deployment.sh
APPLICATION_ID=$(cat application-id.txt) DEVICE_ID=$(cat device-id.txt) QUERY="ApplicationInstances[?ApplicationInstanceId==\`APPLICATION_ID\`]" QUERY=${QUERY/APPLICATION_ID/$APPLICATION_ID} MONITOR_CMD="aws panorama list-application-instances --device-id ${DEVICE_ID} --query ${QUERY}" MONITOR_CMD=${MONITOR_CMD/QUERY/$QUERY} while true; do $MONITOR_CMD sleep 60 done

Saat penerapan selesai, Anda dapat melihat log dengan memanggil Amazon CloudWatch Logs API. Skrip view logs menggunakan CloudWatch Logs GetLogEvents API.

contoh view-logs.sh
GROUP="/aws/panorama/devices/MY_DEVICE_ID/applications/MY_APPLICATION_ID" GROUP=${GROUP/MY_DEVICE_ID/$DEVICE_ID} GROUP=${GROUP/MY_APPLICATION_ID/$APPLICATION_ID} echo "Getting logs for group ${GROUP}." #set -x while true do LOGS=$(aws logs get-log-events --log-group-name ${GROUP} --log-stream-name code_node --limit 150) readarray -t ENTRIES < <(echo $LOGS | jq -c '.events[].message') for ENTRY in "${ENTRIES[@]}"; do echo "$ENTRY" | tr -d \" done sleep 20 done
PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.