aws batch の ジョブ定義をエクスポートしたJSONをインポートしたい

0

よろしくお願いします。 リージョンAのaws batchに設定しているジョブ定義を、リージョンBのbatchジョブ定義で利用(再利用)したいと考えています。

実施にあたり以下を参考にしています。 register-job-definition — AWS CLI 2.12.3 Command Reference https://awscli.amazonaws.com/v2/documentation/api/latest/reference/batch/register-job-definition.html

◆実施はクライアント(Windows10)のPowerShellを使ってaws cliを操作しています。

Step1:aws cliのリージョンを、リージョンAに設定(credentialはリージョンA、B共に同じ)

Step2:エクスポートしたいジョブ定義名を指定して、jsonを出力

aws batch describe-job-definition --job-definition-name ジョブ定義名 --query 'jobDefinitions[0]' > exportDef.json

Step3:出力したjsonのうちインポート時に不要な項目 jobDefinitionArn、revision、status、containerOrchestrationTypeの項を削除して保存

Step4:aws cliのリージョンをリージョンBに変更

Step5:Step3で編集したJSONを使って、リージョンBのジョブ定義にインポート

 PowerShellのヒアドキュメントを使ってJSONを送るため、後半でダブルクォーテーションをエスケープしています。

PS C:\Users\MYUSER> $param = @"
>> {
>>     "jobDefinitionName": "test",
>>     "type": "container",
>>     ],
>> }
>> "@

PS C:\Users\MYUSER> $param = $param.Replace('"', '\"')

PS C:\Users\MYUSER> aws batch register-job-definition --cli-input-json $param

Error parsing parameter 'cli-input-json': Invalid JSON received.

また JSONファイルを指定してインポートも行いましたが 結果は同じでした。

aws batch register-job-definition --cli-input-json file://c:/path/to/exportDef.json

以上、よろしくお願いいたします。

profile picture
tkmsg
質問済み 8ヶ月前325ビュー
1回答
0

エラーメッセージが Invalid JSON received. なので、JSONの構文に問題がありそうです。 カッコの閉じ忘れやカンマの付け忘れなどないでしょうか。

profile picture
hayao-k
回答済み 8ヶ月前
  • ご回答ありがとうございます。 構文チェックツールを介してもエラーになりませんでした。ご懸念点は無いと思っています。 (VSCodeやJSONチェックツールを使いました) 本文中にも記しました通りaws cliでエクスポートしたものを不要箇所のみ除いたものをインポートさせています。 また仮に文法、構文ミスがあった場合は、aws cliの結果に具体的に指摘が出力されます。

    「aws batch register-job-definition --cli-input-json」の操作のご経験おありでしょうか? もしその時の操作、手順をお教えいただけると幸いです。よろしくおねがいします。

    aws batch

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン