よろしくお願いします。
リージョン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
以上、よろしくお願いいたします。
ご回答ありがとうございます。 構文チェックツールを介してもエラーになりませんでした。ご懸念点は無いと思っています。 (VSCodeやJSONチェックツールを使いました) 本文中にも記しました通りaws cliでエクスポートしたものを不要箇所のみ除いたものをインポートさせています。 また仮に文法、構文ミスがあった場合は、aws cliの結果に具体的に指摘が出力されます。
「aws batch register-job-definition --cli-input-json」の操作のご経験おありでしょうか? もしその時の操作、手順をお教えいただけると幸いです。よろしくおねがいします。
aws batch