我在 Lambda 函式中有以下 python 代碼:
print("Executing shell script-")
response = ssm_client.send_command(
InstanceIds=ec2_instance,
DocumentName="AWS-RunShellScript",
Parameters={
"commands": [f"sh /bin/test/publishImage.sh -c {ecr} -r {ecr_repo} -r {region} -e {environment}"]
},
OutputS3BucketName="deploymentlogs",
OutputS3Region=region
)
print("Done - Executing shell script.")
執行時,Lambda 會在幾秒鐘內立即回傳狀態碼 200,而 publishImage.sh 腳本大約需要 3 分鐘才能完成執行。
無論成功或失敗,我都希望 Lambda 在 publishImage.sh 腳本完成執行后回傳。
我怎樣才能做到這一點?請幫忙。
謝謝
uj5u.com熱心網友回復:
這是預期的,因為send_command不等待遠程主機上的命令完成。
如果您希望 lambda 函式等到 shell 腳本完成運行,您將需要實作某種等待邏輯來檢查命令的狀態。get_command_invocation您可以使用該功能檢查遠程命令執行的狀態。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/466741.html
