Zwróć uwagę na ograniczenie w dokumentach, gdy używasz --db-instance-indentifier
:
--db-instance-identifier (string)
The user-supplied instance identifier. If this parameter is specified,
information from only the specific DB instance is returned. This parameter
isn't case-sensitive.
Constraints:
- If supplied, must match the identifier of an existing DBInstance
Możesz więc użyć tej opcji tylko wtedy, gdy wiesz, że DB faktycznie istnieje.
Korzystanie z zapytań
Aby wyszukać DB, która może istnieć lub nie, musisz użyć --query
opcji:
$ aws rds describe-db-instances \
--query 'DBInstances[*].[DBName,DBInstanceIdentifier]' --output text
Struktura DBINstances
JSON jest dostępna w pomocy awscli:
$ aws rds describe-db-instances help --output text
...
...
{
"DBInstances": [
{
"PubliclyAccessible": false,
"MasterUsername": "mymasteruser",
"MonitoringInterval": 0,
"LicenseModel": "general-public-license",
...
...
"DBName": "sample",
...
...
"DBInstanceStatus": "stopped",
"EngineVersion": "5.6.27",
"AvailabilityZone": "us-east-1e",
"StorageType": "standard",
"StorageEncrypted": false,
"DBInstanceClass": "db.t2.micro",
"DbInstancePort": 0,
"DBInstanceIdentifier": "mydbinstance-1"
}
]
}
...
...
Korzystanie z filtrów
Innym prostym rozwiązaniem pierwszego pytania jest użycie --filters
parametru. Zapytanie zwróci identyfikator instancji (jeśli instancja istnieje) lub pusty ciąg (jeśli nie istnieje):
#! / usr / bin / env bash
DBINSTANCEIDENTIFIER = "greatdb"
EXISTINGINSTANCE = $ (aws rds description-db-instances \
--query „DBInstances [*]. [DBInstanceIdentifier] '\
--filters Nazwa = db-instance-id, Wartości = $ DBINSTANCEIDENTIFIER \
- tekst wyjściowy \
)
jeśli [-z $ EXISTINGINSTANCE]
następnie
echo „instancja $ DBINSTANCEIDENTIFIER nie istnieje!”
jeszcze
echo „instancja $ DBINSTANCEIDENTIFIER istnieje!”
fi
Bibliografia