これをプログラムで発見する方法はわかりませんが[以下を参照]、パラメーターの値をuserdataセクションに挿入することはできます。次に例を示します。
UserData: {
"Fn::Base64": {
"Fn::Join: [
"",
[
"all of the script up to the missing value",
{"Ref": "NumberOfCoresParameterName"},
"all of the script after the missing value"
]
]
}
}
この例で"NumberOfCoresParameterNameは、は、値を挿入するパラメータに付ける名前です。
この"Fn::Base64"関数は、その値をUserDataに必要なbase64でエンコードされた文字列に変換します。
"Fn::Join"2つのパラメータを取ります。結合する文字列の間に挿入する文字列(ここでは空の文字列)と、結合する文字列の配列です。他の"Ref"文字列の途中にあるオブジェクトは、パラメーターの値に置き換えられます。
追加のために編集:コアの数を取得する方法はわかりませんが、コマンドを使用してAWSインスタンスタイプを取得できます
curl http://169.254.169.254/latest/meta-data/instance-type
t1.microこれにより、、などの文字列が返されますm1.large。AWSのドキュメントを使用して、そのインスタンスタイプに含まれるコアの数を確認できます。ただし、この結果をテンプレート内で使用する方法はわかりません。UserDataセクションで必要なことをすべて実行するシェルスクリプトを作成できます。