Heim >Backend-Entwicklung >Golang >Wie öffnet die AWS CLI einen Browser und wartet auf eine Antwort, bevor sie fortfährt?
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.
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
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!