

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Erstellen eines Apache Airflow CLI-Tokens
<a name="call-mwaa-apis-cli"></a>

**Tipp**  
Die REST-API ist moderner als die CLI und wurde für die programmatische Integration mit externen Systemen entwickelt. REST ist die bevorzugte Art der Interaktion mit Apache Airflow.

Sie können die Befehle auf dieser Seite verwenden, um ein CLI-Token zu generieren und dann Amazon Managed Workflows for Apache Airflow API-Aufrufe direkt in Ihrer Befehlsshell durchzuführen. Sie können beispielsweise ein Token abrufen und es dann mithilfe von Amazon MWAA DAGs programmgesteuert bereitstellen. APIs Der folgende Abschnitt enthält die Schritte zum Erstellen eines Apache Airflow-CLI-Tokens mithilfe eines CURL-Skripts AWS CLI, eines Python-Skripts oder eines Bash-Skripts. Das in der Antwort zurückgegebene Token ist 60 Sekunden gültig.

Das AWS CLI Token ist als Ersatz für synchrone Shell-Aktionen gedacht, nicht für asynchrone API-Befehle. Daher ist die verfügbare Parallelität begrenzt. Um sicherzustellen, dass der Webserver weiterhin für Benutzer reagiert, empfehlen wir, keine neue AWS CLI Anfrage zu öffnen, bis die vorherige erfolgreich abgeschlossen wurde.

**Contents**
+ [Voraussetzungen](#call-mwaa-apis-cli-prereqs)
  + [Zugriff](#access-airflow-ui-prereqs-access)
  + [AWS CLI](#access-airflow-ui-prereqs-cli)
+ [Mit dem AWS CLI](#create-cli-token-cli)
+ [Verwenden eines Curl-Skripts](#create-cli-token-curl)
+ [Verwenden eines Bash-Skripts](#create-cli-token-bash)
+ [Verwenden eines Python-Skripts](#create-cli-token-python)
+ [Als nächstes](#mwaa-cli-next-up)

## Voraussetzungen
<a name="call-mwaa-apis-cli-prereqs"></a>

Im folgenden Abschnitt werden die vorbereitenden Schritte beschrieben, die zur Verwendung der Befehle und Skripts auf dieser Seite erforderlich sind.

### Zugriff
<a name="access-airflow-ui-prereqs-access"></a>
+ AWS-Konto Zugriff in AWS Identity and Access Management (IAM) auf die Amazon MWAA-Berechtigungsrichtlinie in. [Zugriffsrichtlinie für die Apache Airflow Airflow-Benutzeroberfläche: Amazon MWAAWeb ServerAccess](access-policies.md#web-ui-access)
+ AWS-Konto Zugriff in AWS Identity and Access Management (IAM) auf die Amazon MWAA-Berechtigungsrichtlinie. [Vollständige API- und Konsolenzugriffsrichtlinie: Amazon MWAAFull ApiAccess](access-policies.md#full-access-policy)

### AWS CLI
<a name="access-airflow-ui-prereqs-cli"></a>

Das AWS Command Line Interface (AWS CLI) ist ein Open-Source-Tool, mit dem Sie mithilfe von Befehlen in Ihrer AWS Befehlszeilen-Shell mit Diensten interagieren können. Um die Schritte auf dieser Seite abzuschließen, benötigen Sie Folgendes:
+ [AWS CLI — Installieren Sie Version 2.](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html)
+ [AWS CLI — Schnelle Konfiguration mit `aws configure`](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).

## Mit dem AWS CLI
<a name="create-cli-token-cli"></a>

Im folgenden Beispiel wird der [create-cli-token](https://docs.aws.amazon.com/cli/latest/reference/mwaa/create-cli-token.html)Befehl in verwendet, AWS CLI um ein Apache Airflow CLI-Token zu erstellen.

```
aws mwaa create-cli-token --name {{YOUR_ENVIRONMENT_NAME}}
```

## Verwenden eines Curl-Skripts
<a name="create-cli-token-curl"></a>

Das folgende Beispiel verwendet ein Curl-Skript, um den [create-web-login-token](https://docs.aws.amazon.com/cli/latest/reference/mwaa/create-cli-token.html)Befehl in der aufzurufen, AWS CLI um die Apache Airflow CLI über einen Endpunkt auf dem Apache Airflow Airflow-Webserver aufzurufen.

------
#### [ Apache Airflow v3 ]

1. Kopieren Sie die curl-Anweisung aus Ihrer Textdatei und fügen Sie sie in Ihre Befehlsshell ein.
**Anmerkung**  
Nachdem Sie sie in Ihre Zwischenablage kopiert haben, müssen Sie möglicherweise in Ihrem **Shell-Menü Bearbeiten > Einfügen** verwenden.

   ```
   CLI_JSON=$(aws mwaa --region {{us-east-1}} create-cli-token --name {{YOUR_ENVIRONMENT_NAME}}) \
   && CLI_TOKEN=$(echo $CLI_JSON | jq -r '.CliToken') \
   && WEB_SERVER_HOSTNAME=$(echo $CLI_JSON | jq -r '.WebServerHostname') \
   && CLI_RESULTS=$(curl -L --request POST "https://$WEB_SERVER_HOSTNAME/aws_mwaa/cli" \
   --header "Authorization: Bearer $CLI_TOKEN" \
   --header "Content-Type: text/plain" \
   --data-raw "dags trigger YOUR_DAG_NAME --logical-date $(date -u +"%Y-%m-%dT%H:%M:%SZ")") \
   && echo "Output:" \
   && echo $CLI_RESULTS | jq -r '.stdout' | base64 --decode \
   && echo "Errors:" \
   && echo $CLI_RESULTS | jq -r '.stderr' | base64 --decode
   ```

1. Ersetzen Sie die Platzhalter durch die Platzhalter AWS-Region für Ihre Umgebung`{{YOUR_DAG_NAME}}`, und. {{red}} `{{YOUR_ENVIRONMENT_NAME}}` Ein Hostname für ein öffentliches Netzwerk sieht beispielsweise wie folgt aus (ohne *https://)*:

   ```
   123456a0-0101-2020-9e11-1b159eec9000.c2.{{us-east-1}}.airflow.amazonaws.com
   ```

   In Ihrer Befehlszeile wird Folgendes angezeigt:

   ```
   {
     "stderr":"<STDERR of the CLI execution (if any), base64 encoded>",
     "stdout":"<STDOUT of the CLI execution, base64 encoded>"
   }
   ```

------
#### [ Apache Airflow v2 ]

1. Kopieren Sie die curl-Anweisung aus Ihrer Textdatei und fügen Sie sie in Ihre Befehlsshell ein.
**Anmerkung**  
Nachdem Sie sie in Ihre Zwischenablage kopiert haben, müssen Sie möglicherweise in Ihrem **Shell-Menü Bearbeiten > Einfügen** verwenden.

   ```
   CLI_JSON=$(aws mwaa --region {{us-east-1}} create-cli-token --name {{YOUR_ENVIRONMENT_NAME}}) \
   && CLI_TOKEN=$(echo $CLI_JSON | jq -r '.CliToken') \
   && WEB_SERVER_HOSTNAME=$(echo $CLI_JSON | jq -r '.WebServerHostname') \
   && CLI_RESULTS=$(curl --request POST "https://$WEB_SERVER_HOSTNAME/aws_mwaa/cli" \
   --header "Authorization: Bearer $CLI_TOKEN" \
   --header "Content-Type: text/plain" \
   --data-raw "dags trigger {{YOUR_DAG_NAME}}") \
   && echo "Output:" \
   && echo $CLI_RESULTS | jq -r '.stdout' | base64 --decode \
   && echo "Errors:" \
   && echo $CLI_RESULTS | jq -r '.stderr' | base64 --decode
   ```

1. Ersetzen Sie die Platzhalter durch die Platzhalter AWS-Region für Ihre Umgebung`YOUR_DAG_NAME`, und. {{red}} `YOUR_ENVIRONMENT_NAME` Ein Hostname für ein öffentliches Netzwerk sieht beispielsweise wie folgt aus (ohne *https://)*:

   ```
   123456a0-0101-2020-9e11-1b159eec9000.c2.{{us-east-1}}.airflow.amazonaws.com
   ```

   In Ihrer Befehlszeile wird Folgendes angezeigt:

   ```
   {
     "stderr":"<STDERR of the CLI execution (if any), base64 encoded>",
     "stdout":"<STDOUT of the CLI execution, base64 encoded>"
   }
   ```

------

## Verwenden eines Bash-Skripts
<a name="create-cli-token-bash"></a>

Das folgende Beispiel verwendet ein Bash-Skript, um den [create-cli-token](https://docs.aws.amazon.com/cli/latest/reference/mwaa/create-cli-token.html)Befehl in der aufzurufen, AWS CLI um ein Apache Airflow CLI-Token zu erstellen.

------
#### [ Apache Airflow v3 ]

1. Kopieren Sie den Inhalt des folgenden Codebeispiels und speichern Sie ihn lokal unter. `get-cli-token.sh`

   ```
   # brew install jq
   								aws mwaa create-cli-token --name {{YOUR_ENVIRONMENT_NAME}} | export CLI_TOKEN=$(jq -r .CliToken) && curl -L --request POST "https://{{YOUR_HOST_NAME}}/aws_mwaa/cli" \
   								--header "Authorization: Bearer $CLI_TOKEN" \
   								--header "Content-Type: text/plain" \
   								--data-raw "dags trigger {{YOUR_DAG_NAME}} --logical-date $(date -u +"%Y-%m-%dT%H:%M:%SZ")"
   ```

1. Ersetzen Sie die Platzhalter durch `YOUR_ENVIRONMENT_NAME``YOUR_HOST_NAME`, und`YOUR_DAG_NAME`. {{red}} Ein Hostname für ein öffentliches Netzwerk sieht beispielsweise wie folgt aus (ohne *https://)*:

   ```
   123456a0-0101-2020-9e11-1b159eec9000.c2.{{us-east-1}}.airflow.amazonaws.com
   ```

1. (optional) MacOS- und Linux-Benutzer müssen möglicherweise den folgenden Befehl ausführen, um sicherzustellen, dass das Skript ausführbar ist.

   ```
   chmod +x get-cli-token.sh
   ```

1. Führen Sie das folgende Skript aus, um ein Apache Airflow CLI-Token zu erstellen.

   ```
   ./get-cli-token.sh
   ```

------
#### [ Apache Airflow v2 ]

1. Kopieren Sie den Inhalt des folgenden Codebeispiels und speichern Sie ihn lokal unter. `get-cli-token.sh`

   ```
   # brew install jq
   aws mwaa create-cli-token --name {{YOUR_ENVIRONMENT_NAME}} | export CLI_TOKEN=$(jq -r .CliToken) && curl --request POST "https://{{YOUR_HOST_NAME}}/aws_mwaa/cli" \
   --header "Authorization: Bearer $CLI_TOKEN" \
   --header "Content-Type: text/plain" \
   --data-raw "dags trigger {{YOUR_DAG_NAME}}"
   ```

1. Ersetzen Sie die Platzhalter durch `YOUR_ENVIRONMENT_NAME``YOUR_HOST_NAME`, und`YOUR_DAG_NAME`. {{red}} Ein Hostname für ein öffentliches Netzwerk sieht beispielsweise wie folgt aus (ohne *https://)*:

   ```
   123456a0-0101-2020-9e11-1b159eec9000.c2.{{us-east-1}}.airflow.amazonaws.com
   ```

1. (optional) MacOS- und Linux-Benutzer können den folgenden Befehl ausführen, um sicherzustellen, dass das Skript ausführbar ist.

   ```
   chmod +x get-cli-token.sh
   ```

1. Führen Sie das folgende Skript aus, um ein Apache Airflow CLI-Token zu erstellen.

   ```
   ./get-cli-token.sh
   ```

------

## Verwenden eines Python-Skripts
<a name="create-cli-token-python"></a>

Im folgenden Beispiel wird die Methode [boto3 create\_cli\_token](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/mwaa.html#MWAA.Client.create_cli_token) in einem Python-Skript verwendet, um ein Apache Airflow-CLI-Token zu erstellen und eine DAG auszulösen. Sie können dieses Skript außerhalb von Amazon MWAA ausführen. Sie müssen lediglich die boto3-Bibliothek installieren. Möglicherweise möchten Sie eine virtuelle Umgebung erstellen, um die Bibliothek zu installieren. Es wird davon ausgegangen, dass Sie [AWS Anmeldeinformationen für Ihr Konto konfiguriert](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#configuration) haben.

------
#### [ Apache Airflow v3 ]

1. Kopieren Sie den Inhalt des folgenden Codebeispiels und speichern Sie ihn lokal unter`create-cli-token.py`.

   ```
   """
   Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
    
   Permission is hereby granted, free of charge, to any person obtaining a copy of
   this software and associated documentation files (the "Software"), to deal in
   the Software without restriction, including without limitation the rights to
   use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
   the Software, and to permit persons to whom the Software is furnished to do so.
    
   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
   FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
   COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
   IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
   CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
   """
   import boto3
   import json
   import requests 
   import base64
   
   mwaa_env_name = 'YOUR_ENVIRONMENT_NAME'
   dag_name = 'YOUR_DAG_NAME'
   mwaa_cli_command = 'dags trigger'
   
   client = boto3.client('mwaa')
   
   mwaa_cli_token = client.create_cli_token(
       Name=mwaa_env_name
   )
   
   mwaa_auth_token = 'Bearer ' + mwaa_cli_token['CliToken']
   mwaa_webserver_hostname = 'https://{0}/aws_mwaa/cli'.format(mwaa_cli_token['WebServerHostname'])
   raw_data = '{0} {1}'.format(mwaa_cli_command, dag_name)
   
   mwaa_response = requests.post(
           mwaa_webserver_hostname,
           headers={
               'Authorization': mwaa_auth_token,
               'Content-Type': 'text/plain'
               },
           data=raw_data
           )
           
   mwaa_std_err_message = base64.b64decode(mwaa_response.json()['stderr']).decode('utf8')
   mwaa_std_out_message = base64.b64decode(mwaa_response.json()['stdout']).decode('utf8')
   
   print(mwaa_response.status_code)
   print(mwaa_std_err_message)
   print(mwaa_std_out_message)
   ```

1. Ersetzen Sie `YOUR_ENVIRONMENT_NAME` und `YOUR_DAG_NAME` durch die Platzhalter.

1. Führen Sie das folgende Skript aus, um ein Apache Airflow CLI-Token zu erstellen.

   ```
   python3 create-cli-token.py
   ```

------
#### [ Apache Airflow v2 ]

1. Kopieren Sie den Inhalt des folgenden Codebeispiels und speichern Sie ihn lokal unter. `create-cli-token.py`

   ```
   """
   Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
    
   Permission is hereby granted, free of charge, to any person obtaining a copy of
   this software and associated documentation files (the "Software"), to deal in
   the Software without restriction, including without limitation the rights to
   use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
   the Software, and to permit persons to whom the Software is furnished to do so.
    
   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
   FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
   COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
   IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
   CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
   """
   import boto3
   import json
   import requests 
   import base64
   
   mwaa_env_name = 'YOUR_ENVIRONMENT_NAME'
   dag_name = 'YOUR_DAG_NAME'
   mwaa_cli_command = 'dags trigger'
   
   client = boto3.client('mwaa')
   
   mwaa_cli_token = client.create_cli_token(
       Name=mwaa_env_name
   )
   
   mwaa_auth_token = 'Bearer ' + mwaa_cli_token['CliToken']
   mwaa_webserver_hostname = 'https://{0}/aws_mwaa/cli'.format(mwaa_cli_token['WebServerHostname'])
   raw_data = '{0} {1}'.format(mwaa_cli_command, dag_name)
   
   mwaa_response = requests.post(
           mwaa_webserver_hostname,
           headers={
               'Authorization': mwaa_auth_token,
               'Content-Type': 'text/plain'
               },
           data=raw_data
           )
           
   mwaa_std_err_message = base64.b64decode(mwaa_response.json()['stderr']).decode('utf8')
   mwaa_std_out_message = base64.b64decode(mwaa_response.json()['stdout']).decode('utf8')
   
   print(mwaa_response.status_code)
   print(mwaa_std_err_message)
   print(mwaa_std_out_message)
   ```

1. Ersetzen Sie `YOUR_ENVIRONMENT_NAME` und `YOUR_DAG_NAME` durch die Platzhalter.

1. Führen Sie das folgende Skript aus, um ein Apache Airflow CLI-Token zu erstellen.

   ```
   python3 create-cli-token.py
   ```

------

## Als nächstes
<a name="mwaa-cli-next-up"></a>
+ Erkunden Sie den Amazon MWAA-API-Vorgang, mit dem ein CLI-Token erstellt wurde, unter. [CreateCliToken](https://docs.aws.amazon.com/mwaa/latest/API/API_CreateCliToken.html)