#java #amazon-web-services #amazon-dynamodb #aws-sdk
Вопрос:
У меня есть вызываемая таблица dynamodb environments
и столбец в этой таблице, вызываемый env_name
при запуске класса в командной строке:
java -cp target/sharedlibraries.jar com.mimo.sharedlibraries.fetchCMDBtable environments env_name
я получаю пустой список вместо списка, полного названий сред.
Вот мой класс, который я использую:
public class fetchCMDBtable {
public static void main(String[] args)throws Exception {
//default values
if (args.length != 2) {
System.out.println("Not enough args!");
System.exit(1);
}
String tableName = args[0]; //environments
String tableColumn = args[1]; //env_name
DynamoDbClient client = DynamoDbClient.builder()
.region(Region.EU_WEST_1)
.build();
CMDB(client,tableName,tableColumn);
System.out.println(CMDB(client, tableName, tableColumn));
client.close();
}
public static List<String> CMDB(DynamoDbClient client,String tableName, String tableColumn) throws Exception {
List<String> ListValues = new ArrayList<>();
try {
ScanRequest scanRequest = ScanRequest.builder()
.tableName(tableName)
.build();
ScanResponse response = client.scan(scanRequest);
for (Map<String, AttributeValue> item : response.items()){
Set<String> keys = item.keySet();
for (String key : keys) {
if (key == tableColumn) {
ListValues.add(item.get(key).s()) ;
}
}
}
} catch (DynamoDbException e){
e.printStackTrace();
System.exit(1);
}
return ListValues;
}
}
Ответ №1:
попробуйте использовать key.equals(tableColumn)
вместо key == tableColumn