これは、buildbotバージョン0.8.12のバグのようです。残念ながら、この時点でアップグレードすることはできません。代わりに、私はuser_dataを読み込み、そのタグ付けしたベースAMIにinitスクリプト(サービス)をインストールしました。 EC2LatentBuildSlaveのuser_dataフィールドを使ってタグの詳細を渡します。
login_aws() {
# Some code to configer aws access keys.
}
get_userdata() {
AWS_USERDATA=$(curl -s http://169.254.169.254/latest/user-data)
echo $AWS_USERDATA
}
tag_self_for_identification() {
login_aws
INSTANCE_ID=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)
if [ -z "$INSTANCE_ID" ]; then
echo "Error unable to obtain instance id"
return 0
fi
USERDATA=get_userdata
set $USERDATA
NAME="$2 $3"
if [ ! -z "$NAME" ]; then
echo "aws ec2 create-tags --resources $INSTANCE_ID --tags Key=Name,Value=$NAME"
aws ec2 create-tags --resources $INSTANCE_ID --tags Key=Name,Value="$NAME" \
Key=Buildbot,Value=Latentslave
fi
}
tag_self_for_identification
これは非常に工学的な解決策です。しかし、私は、これらのlatentlavesを識別できるようにいくつかのラムダ関数で動作するタグが必要です