6
votes

Comment résoudre: «Impossible de résoudre le compte AWS à utiliser. Il doit être soit configuré lors de la définition de votre CDK, soit via l'environnement '

J'essaye d'exécuter des commandes CDK pour vérifier le diff de ma pile locale et distante.

J'utilise la commande suivante.

Unable to resolve AWS account to use. It must be either configured when you define your CDK or through the environment

Je reçois le message d'erreur suivant

cdk diff --profile saml

Je cherche des moyens de résoudre ce problème.


0 commentaires

8 Réponses :


1
votes

Vous devez spécifier vos informations d'identification. Consultez cet article: https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html#getting_started_credentials

Il donne des détails sur la façon de procéder:

Spécification de vos informations d'identification et de votre région

Vous devez spécifier vos informations d'identification et une région AWS pour utiliser l'AWS CDK CLI. Le CDK recherche les informations d'identification et la région dans l'ordre suivant:

Utilisation de l'option --profile pour les commandes cdk.

Utilisation des variables d'environnement.

Utilisation du profil par défaut défini par l'AWS Command Line Interface (AWS CLI).

Vous pouvez configurer un profil à l'aide de l'AWS CLI. Voir https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html pour plus de détails sur la façon de procéder. Vous pouvez spécifier des profils nommés, comme un profil pour chaque compte, puis spécifier le nom de profil à utiliser pour votre appel CDK.


1 commentaires

Donc j'ai fait cela et j'ai utilisé le --profile <profile_name> mais cela n'a pas fonctionné



1
votes

Vous devez définir explicitement votre compte et votre région lors de l'initialisation de vos piles. AWS CDK CLI fournit deux variables d'environnement, CDK_DEFAULT_ACCOUNT et CDK_DEFAULT_REGION, pour déterminer la cible au moment de la synthèse.

new MyDevStack(app, 'dev', { 
  env: { 
    account: process.env.CDK_DEFAULT_ACCOUNT, 
    region: process.env.CDK_DEFAULT_REGION 
}});

Si vous utilisez ces variables d'environnement, le compte cible et la région sont extraits de votre profil AWS actif, par exemple l'option --profile.

https://docs.aws.amazon.com/cdk/latest/guide/environments.html


1 commentaires

Ok, cela a du sens mais quand je lance 'cdk diff --profile <profile_name>' cela me donne toujours la même erreur.



3
votes

La suppression de [profile default] de ~/.aws/config résolu pour moi.


0 commentaires

0
votes

Enfin, j'ai utilisé ce qui suit dans C: \ XXXX.aws \ credentials

[project1]
aws_access_key_id = ANOTHER_AWS_ACCESS_KEY_ID
aws_secret_access_key = ANOTHER_AWS_SECRET_ACCESS_KEY

et cmd:> cdk deploy --profile default

Cependant, cela n'a pas fonctionné.

[default]
aws_access_key_id=XXXXXXXXXXXXXX
aws_secret_access_key=XXXXXXXXXXXX

et cmd:> cdk deploy --profile project1

Erreur: la région AWS doit être configurée lorsque vous configurez votre pile CDK ou via l'environnement


0 commentaires

0
votes

Vous pourriez souffrir de https://github.com/aws/aws-cdk/issues/5455

Pour contourner le problème, n'utilisez pas de profil, récupérez les clés d'accès (votre organisation devrait avoir un moyen) et exportez-les vers l'environnement


0 commentaires

0
votes

Je ne sais pas si cela aide, mais dans mon organisation, nous utilisons AWS SSO, avec plus de 90 comptes AWS, avec MFA, il était donc impossible de gérer CDK sans AWS CLIv2 avec des profils et la prise en charge d'AWS SSO.

J'ai trouvé un moyen de le résoudre, donc jusqu'à ce qu'il soit officiellement publié, vous pouvez l'utiliser, cela fonctionne très bien: blog MatsCloud - CDK avec profil multi-comptes AWS SSO


0 commentaires

1
votes

Dans votre dossier .aws , créez / ajoutez un fichier vide nommé credentials sans l'extension de fichier.


0 commentaires

0
votes

Dans mon cas, cela n'avait rien à voir avec les solutions proposées.
Si vous ajoutez l'argument -v (verbose) à la commande cdk, vous verrez l'erreur réelle: Unable to determine the default AWS account: TypeError [ERR_INVALID_PROTOCOL]: Protocol "https:" not supported. Expected "http:"

J'ai essayé différentes versions de CDK et rien, toujours la même erreur. Après de nombreux essais, je me suis retrouvé avec la cause première: la version du nœud. Avec la v15.2.1, j'ai eu cette erreur, mais après la rétrogradation vers la v14.15.1, le problème a été résolu.


0 commentaires