Heim  >  Artikel  >  Backend-Entwicklung  >  Wie öffnet die AWS CLI einen Browser und wartet auf eine Antwort, bevor sie fortfährt?

Wie öffnet die AWS CLI einen Browser und wartet auf eine Antwort, bevor sie fortfährt?

PHPz
PHPznach vorne
2024-02-10 21:30:10635Durchsuche

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

php-Editor Banana stellt Ihnen in diesem Artikel vor, wie Sie mit dem AWS CLI-Befehlszeilentool den Browser öffnen und auf die Antwort warten, bevor Sie mit der Ausführung anderer Vorgänge fortfahren. AWS CLI ist ein von Amazon bereitgestelltes Befehlszeilentool zur Verwaltung von AWS-Cloud-Diensten. Es kann verschiedene AWS-Vorgänge über die Befehlszeilenschnittstelle ausführen. In einigen Fällen müssen wir möglicherweise einen Browser in der Befehlszeile öffnen und darauf warten, dass der Benutzer bestimmte Aktionen ausführt, bevor wir mit nachfolgenden Befehlen fortfahren. In diesem Artikel wird detailliert beschrieben, wie Sie AWS CLI zum Implementieren dieser Funktion verwenden und so Ihre Befehlszeilenvorgänge flexibler und bequemer gestalten.

Frageninhalt

Ich versuche, ein Golang-CLI-Tool für mein Unternehmen zu erstellen und als Teil des Tools eine Anmeldung und einige andere Funktionen zu erstellen. Ich kann beim besten Willen nicht herausfinden, wie AWS in der Lage ist, ein Browserfenster zu öffnen und auf ein paar Tastenklicks zu warten, bevor es über die CLI fortfährt.

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

Dies ist der CLI-Befehl, den ich eingegeben habe

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

Es gibt auch eine Python-Dokumentation zum Starten der Geräteauthentifizierung und zum Erstellen von Tokens

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

Eine Option, die ich gerade zusammengestellt habe und die zu funktionieren scheint, ist diese A-Schleife das prüft jede Sekunde

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
            }
        }

Herausgeber:

Nach dem Ausführen AWS sso login —debug bemerkte ich, dass die Protokolle tatsächlich eine Schleife bildeten und die createToken-Abfrage immer wieder ausführten, sodass AWS etwas Ähnliches wie oben tat.

Das obige ist der detaillierte Inhalt vonWie öffnet die AWS CLI einen Browser und wartet auf eine Antwort, bevor sie fortfährt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen