rip*_*234 5 java amazon-ec2 amazon-web-services
我正在尝试检查特定 AMI 是否存在。所以,我正在做:
val filter = new Filter().withName("Name").withValues(amiName)
val result = ec2.describeImages(new DescribeImagesRequest().withFilters(filter))
result.getImages.size() > 0
Run Code Online (Sandbox Code Playgroud)
(代码是 Scala 而不是 Java,但这并不真正相关)。我收到以下异常:
com.amazonaws.AmazonServiceException: The filter 'Name' is invalid
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:644) ~[aws-java-sdk-1.4.2.1.jar:na]
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:338) ~[aws-java-sdk-1.4.2.1.jar:na]
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:190) ~[aws-java-sdk-1.4.2.1.jar:na]
at com.amazonaws.services.ec2.AmazonEC2Client.invoke(AmazonEC2Client.java:6199) ~[aws-java-sdk-1.4.2.1.jar:na]
at com.amazonaws.services.ec2.AmazonEC2Client.describeImages(AmazonEC2Client.java:2905) ~[aws-java-sdk-1.4.2.1.jar:na]
Run Code Online (Sandbox Code Playgroud)
如何正确定义DescribeImagesRequest 的过滤器?
TL;DR - 使用name而不是Name作为关键。
为了进行调查,我转向本地安装的 ec2 工具,然后运行
ec2-describe-images -o self -F name=myaminame
Run Code Online (Sandbox Code Playgroud)
遇到了类似的错误,但对 Google 更友好:
Filter definitions must have format 'name=value', but found 'name'
Run Code Online (Sandbox Code Playgroud)
谷歌搜索让我找到了这篇博客文章,然后从命令行开始工作:
ec2-describe-images -o self -F "name=myaminame"
Run Code Online (Sandbox Code Playgroud)
现在,在这次无关的游览之后,我发现了一个简单的问题:我尝试了Nameas key ,而实际上 key 应该是小写的name。
| 归档时间: |
|
| 查看次数: |
1960 次 |
| 最近记录: |