3 votes

Obtenir l'ID du VPC pour un VPC spécifique

Après la création du VPC, comment puis-je obtenir uniquement un ID de VPC spécifique en utilisant aws ec2 describe-vpcs, de sorte que cet ID de VPC puisse être transmis à l'intérieur du script pour l'étape suivante. Je sais que je peux le voir manuellement à partir de cette commande ou depuis la console AWS,

par exemple:

aws ec2 describe-vpcs --vpc-ids | grep VpcId
            "VpcId": "vpc-00a0338c2f671a77c",
            "VpcId": "vpc-0b3697513d5987516",
            "VpcId": "vpc-061e25f5f78877798",

cela me donne tous les IDs, ou:

aws ec2 describe-vpcs --vpc-ids | grep -i ansible
                    "Value": "ANSIBLE_VPC",

mais j'ai seulement besoin d'obtenir l'ID du VPC pour ce VPC spécifique à partir de la commande.

4voto

John R Points 11

Si vous venez de lancer une commande create-vpc, alors l'ID de VPC de ce VPC aurait été renvoyé en réponse à cette commande :

Sortie :

{
    "Vpc": {
        "CidrBlock": "10.0.0.0/16",
        "DhcpOptionsId": "dopt-5EXAMPLE",
        "State": "pending",
        "VpcId": "vpc-0a60eb65b4EXAMPLE",    <-- Ceci est l'ID de VPC
        "OwnerId": "123456789012",
        "InstanceTenancy": "default",
        "Ipv6CidrBlockAssociationSet": [],
        "CidrBlockAssociationSet": [
            {
                "AssociationId": "vpc-cidr-assoc-07501b79ecEXAMPLE",
                "CidrBlock": "10.0.0.0/16",
                "CidrBlockState": {
                    "State": "associated"
                }
            }
        ],
        "IsDefault": false,
        "Tags": []
    }
}

Ainsi, vous pourriez créer le VPC et stocker son ID comme ceci :

$ ID=`aws ec2 create-vpc --cidr-block 10.0.0.0/16 --query Vpc.VpcId --output text`

$ echo $ID
vpc-0fb4d08f9d6501e94

Si, au contraire, vous cherchez l'ID de VPC pour un VPC donné son étiquette de nom, vous pourriez utiliser :

$ ID=`aws ec2 describe-vpcs --filter Name=tag:Name,Values=ANSIBLE_VPC --query Vpcs[].VpcId --output text`

$ echo $ID
vpc-0fb4d08f9d6501e94

3voto

DanielC Points 352

Vous pouvez utiliser simplement l'aws cli pour cela, avec des filtres et une requête :

aws ec2 describe-vpcs --filters Name=tag:Name,Values=ANSIBLE_VPC --query "Vpcs[].VpcId" --output text"

Ou vous pouvez utiliser un mélange de la commande --filters avec grep pour accomplir votre tâche :

aws ec2 describe-vpcs --filters Name=tag:Name,Values=ANSIBLE_VPC | grep VpcId | grep -oh "vpc-\w*"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X