SpotFleetRequest - 标签规范资源类型必须有一个值

Bra*_*lle 2 amazon-ec2 amazon-web-services

在过去的几周里,我能够很好地创建 SpotFleetRequests(通过 Java)。但是从昨天开始我收到以下错误:

com.amazonaws.services.ec2.model.AmazonEC2Exception: Tag specification resource type must have a value (Service: AmazonEC2; Status Code: 400; Error Code: InvalidSpotFleetRequestConfig; Request ID: ef69f477-e8f3-4d86-aa91-1646c4067d68)
Run Code Online (Sandbox Code Playgroud)

我并没有真正改变任何东西,更奇怪的是:我已经在我的SpotFleetRequestConfigData的SpotFleetLaunchSpecification中添加了SpotFleetTagSpecification

这是我的代码:

List<Tag> tags = new ArrayList<>();
tags.add(new Tag("TEAM", "CROCODILE"));
SpotFleetTagSpecification tagSpec = new SpotFleetTagSpecification().withTags(tags);
SpotFleetLaunchSpecification launchSpec = new SpotFleetLaunchSpecification()
                .withSecurityGroups(new GroupIdentifier().withGroupId(securityGroupId))
                .withIamInstanceProfile(new IamInstanceProfileSpecification().withArn(instanceProfileArn))
                .withImageId(imageId)
                .withInstanceType(InstanceType.M3Xlarge)
                .withSubnetId(subnetIds)
                .withUserData(getUserDataToConfigureECSCluster(ecsClusterName))
                .withTagSpecifications(tagSpec);
// Configure the actual request
SpotFleetRequestConfigData config = new SpotFleetRequestConfigData()
                    .withIamFleetRole(fleetRoleArn)
                    .withLaunchSpecifications(launchSpec)
                    .withAllocationStrategy(AllocationStrategy.LowestPrice)
                    .withTargetCapacity(targetCapacity)
                    .withType(FleetType.Maintain)
                    .withClientToken(spotFleetToken);
RequestSpotFleetRequest request = new RequestSpotFleetRequest()
                    .withSpotFleetRequestConfig(config);
RequestSpotFleetResult result = ec2.requestSpotFleet(request);
LOG.info("Created spot fleet request with ID {}", result.getSpotFleetRequestId());
Run Code Online (Sandbox Code Playgroud)

更改或删除标签也不起作用,无论如何,错误仍然存​​在。有人知道我做错了什么吗?

Bra*_*lle 9

看起来文档有点混乱。它提到ResourceType不是必需的,但我必须将其显式设置为实例才能成功创建我的 SpotFleetRequest。