Maison  >  Article  >  développement back-end  >  Comment l'AWS CLI ouvre-t-elle un navigateur et attend-elle une réponse avant de continuer ?

Comment l'AWS CLI ouvre-t-elle un navigateur et attend-elle une réponse avant de continuer ?

PHPz
PHPzavant
2024-02-10 21:30:10635parcourir

AWS CLI 如何打开浏览器并等待响应然后再继续?

l'éditeur php Banana vous présentera dans cet article comment utiliser l'outil de ligne de commande AWS CLI pour ouvrir le navigateur et attendre la réponse avant de continuer à effectuer d'autres opérations. AWS CLI est un outil de ligne de commande fourni par Amazon pour gérer les services cloud AWS. Il peut effectuer diverses opérations AWS via l'interface de ligne de commande. Dans certains cas, nous devrons peut-être ouvrir un navigateur dans la ligne de commande et attendre que l'utilisateur termine certaines actions avant de poursuivre les commandes suivantes. Cet article présentera en détail comment utiliser l'AWS CLI pour implémenter cette fonction, rendant ainsi vos opérations de ligne de commande plus flexibles et plus pratiques.

Contenu de la question

J'essaie de créer un outil Golang cli pour mon entreprise et de créer une connexion et d'autres fonctionnalités dans le cadre de l'outil. Je n'arrive pas du tout à comprendre comment AWS est capable d'ouvrir une fenêtre de navigateur et d'attendre quelques clics de bouton avant de continuer à partir de la CLI.

https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_StartDeviceAuthorization.html

C'est la commande CLI que j'ai entrée

aws sso login --profile login                                                                                                    

Attempting to automatically open the SSO authorization page in your default browser.
If the browser does not open or you wish to use a different device to authorize this request, open the following URL:

https://device.sso.us-east-1.amazonaws.com/

Then enter the code:

abcd-efgh
Successfully logged into Start URL: https://d-1421421423.awsapps.com/start

Il existe également de la documentation Python pour démarrer l'authentification des appareils et créer des jetons

https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sso-oidc/client/start_device_authorization.html https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sso-oidc/client/create_token.html

Workaround

Une option que je viens de mettre en place et qui semble fonctionner est celle-ci. Une boucle qui vérifie chaque seconde

for attempts <= 30 {
            fmt.Println(attempts)
            token, err := idc.CreateToken(context.TODO(), &createTokenInput)
            if err != nil {
                // if debug is enabled show error
                log.Debug(err.Error())
                attempts++
                // wait 1 second
                time.Sleep(1 * time.Second)
            } else {
                response = *token
                break
            }
        }

Éditeur :

Après l'exécution AWS sso login —debug J'ai remarqué que les journaux effectuaient une boucle et exécutaient la requête createToken encore et encore, donc AWS faisait quelque chose de similaire à ce qui précède.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer