簡體   English   中英

如何使用 Boto3 向 AWS Batch 提交多個命令?

[英]How to submit multiple commands to AWS Batch using Boto3?

我正在嘗試使用 AWS Batch 和 boto3 通過 Docker 運行多個 shell 命令。 當我嘗試使用 & 符號提交多個命令時,作業失敗。

我的嘗試

import boto3

client = boto3.client("batch")
response = client.submit_job(
    jobName='AndrewJob',
    jobQueue='AndrewJobQueue',
    jobDefinition='AndrewJobDefinition',
    containerOverrides={
        'command': 'ls & python myjob.py'.split(),
    },
    timeout = {'attemptDurationSeconds': 100}
)
print(response)

錯誤是:

ls: 無法訪問“&”: 沒有那個文件或目錄

根據此處的 Docker 文檔https://docs.docker.com/engine/reference/builder/#cmd和此處的這篇文章docker run <IMAGE> <MULTIPLE COMMANDS>似乎這應該可以在 shell 形式中實現。

看起來 Batch 的行為類似於subprocess.Popen ,因為它將命令作為一個命令執行,其中第一個參數是命令名稱,其余參數是命令參數。 我讓它與subprocess.Popen ,所以我打賭它可以與 Batch 一起使用:

subprocess.Popen(["/bin/bash", "-c", "ls && echo \"Hello world\""])

暫無
暫無

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

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