

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Membuat token CLI Apache Airflow
<a name="call-mwaa-apis-cli"></a>

**Tip**  
REST API lebih modern daripada CLI dan dirancang untuk integrasi terprogram dengan sistem eksternal. REST adalah cara yang disukai untuk berinteraksi dengan Apache Airflow.

Anda dapat menggunakan perintah di halaman ini untuk menghasilkan token CLI, dan kemudian membuat Amazon Managed Workflows untuk Apache Airflow API panggilan langsung di shell perintah Anda. Misalnya, Anda bisa mendapatkan token, lalu menyebarkan secara DAGs terprogram menggunakan Amazon MWAA. APIs Bagian berikut mencakup langkah-langkah untuk membuat token Apache Airflow CLI menggunakan AWS CLI, skrip curl, skrip Python, atau skrip bash. Token yang dikembalikan dalam respons berlaku selama 60 detik.

 AWS CLI Token dimaksudkan sebagai pengganti tindakan shell sinkron, bukan perintah API asinkron. Dengan demikian, konkurensi yang tersedia terbatas. Untuk memastikan bahwa server web tetap responsif bagi pengguna, kami sarankan untuk tidak membuka AWS CLI permintaan baru sampai yang sebelumnya berhasil diselesaikan.

**Contents**
+ [Prasyarat](#call-mwaa-apis-cli-prereqs)
  + [Akses](#access-airflow-ui-prereqs-access)
  + [AWS CLI](#access-airflow-ui-prereqs-cli)
+ [Menggunakan AWS CLI](#create-cli-token-cli)
+ [Menggunakan skrip curl](#create-cli-token-curl)
+ [Menggunakan skrip bash](#create-cli-token-bash)
+ [Menggunakan skrip Python](#create-cli-token-python)
+ [Apa selanjutnya?](#mwaa-cli-next-up)

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

Bagian berikut menjelaskan langkah-langkah awal yang diperlukan untuk menggunakan perintah dan skrip di halaman ini.

### Akses
<a name="access-airflow-ui-prereqs-access"></a>
+ Akun AWS akses di AWS Identity and Access Management (IAM) ke kebijakan izin Amazon MWAA di. [Kebijakan akses Apache Airflow UI: Amazon MWAAWeb ServerAccess](access-policies.md#web-ui-access)
+ Akun AWS akses di AWS Identity and Access Management (IAM) ke kebijakan izin Amazon MWAA. [Kebijakan akses API dan konsol lengkap: Amazon MWAAFull ApiAccess](access-policies.md#full-access-policy)

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

The AWS Command Line Interface (AWS CLI) adalah alat open source yang dapat Anda gunakan untuk berinteraksi dengan AWS layanan menggunakan perintah di shell baris perintah Anda. Untuk menyelesaikan langkah-langkah di halaman ini, Anda memerlukan yang berikut:
+ [AWS CLI — Instal versi 2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html).
+ [AWS CLI - Konfigurasi cepat dengan `aws configure`](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).

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

Contoh berikut menggunakan [create-cli-token](https://docs.aws.amazon.com/cli/latest/reference/mwaa/create-cli-token.html)perintah di AWS CLI untuk membuat token CLI Apache Airflow.

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

## Menggunakan skrip curl
<a name="create-cli-token-curl"></a>

Contoh berikut menggunakan skrip curl untuk memanggil [create-web-login-token](https://docs.aws.amazon.com/cli/latest/reference/mwaa/create-cli-token.html)perintah dalam untuk memanggil Apache Airflow CLI melalui endpoint pada webserver Apache Airflow. AWS CLI 

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

1. Salin pernyataan curl dari file teks Anda dan tempel di shell perintah Anda.
**catatan**  
Setelah menyalinnya ke clipboard Anda, Anda mungkin perlu menggunakan **Edit > Paste** dari menu shell Anda.

   ```
   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. Gantikan placeholder *red* untuk lingkungan Anda,`YOUR_DAG_NAME`, dan. Wilayah AWS `YOUR_ENVIRONMENT_NAME` Misalnya, nama host untuk jaringan publik menyerupai (tanpa *https://)*:

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

   Prompt perintah Anda menampilkan:

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

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

1. Salin pernyataan curl dari file teks Anda dan tempel di shell perintah Anda.
**catatan**  
Setelah menyalinnya ke clipboard Anda, Anda mungkin perlu menggunakan **Edit > Paste** dari menu shell Anda.

   ```
   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. Gantikan placeholder *red* untuk lingkungan Anda,`YOUR_DAG_NAME`, dan. Wilayah AWS `YOUR_ENVIRONMENT_NAME` Misalnya, nama host untuk jaringan publik menyerupai (tanpa *https://)*:

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

   Prompt perintah Anda menampilkan:

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

------

## Menggunakan skrip bash
<a name="create-cli-token-bash"></a>

Contoh berikut menggunakan skrip bash untuk memanggil [create-cli-token](https://docs.aws.amazon.com/cli/latest/reference/mwaa/create-cli-token.html)perintah di AWS CLI untuk membuat token CLI Apache Airflow.

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

1. Salin isi contoh kode berikut dan simpan secara lokal sebagai`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. Gantikan placeholder *red* untuk`YOUR_ENVIRONMENT_NAME`,`YOUR_HOST_NAME`, dan. `YOUR_DAG_NAME` Misalnya, nama host untuk jaringan publik menyerupai (tanpa *https://)*:

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

1. (opsional) pengguna macOS dan Linux mungkin perlu menjalankan perintah berikut untuk memastikan skrip dapat dieksekusi.

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

1. Jalankan skrip berikut untuk membuat token CLI Apache Airflow.

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

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

1. Salin isi contoh kode berikut dan simpan secara lokal sebagai`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. Gantikan placeholder *red* untuk`YOUR_ENVIRONMENT_NAME`,`YOUR_HOST_NAME`, dan. `YOUR_DAG_NAME` Misalnya, nama host untuk jaringan publik menyerupai (tanpa *https://)*:

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

1. (opsional) pengguna macOS dan Linux dapat menjalankan perintah berikut untuk memastikan skrip dapat dieksekusi.

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

1. Jalankan skrip berikut untuk membuat token CLI Apache Airflow.

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

------

## Menggunakan skrip Python
<a name="create-cli-token-python"></a>

Contoh berikut menggunakan metode [boto3 create\$1cli\$1token](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/mwaa.html#MWAA.Client.create_cli_token) dalam skrip Python untuk membuat token CLI Apache Airflow dan memicu DAG. Anda dapat menjalankan skrip ini di luar Amazon MWAA. Satu-satunya hal yang perlu Anda lakukan adalah menginstal perpustakaan boto3. Anda mungkin ingin membuat lingkungan virtual untuk menginstal perpustakaan. Ini mengasumsikan Anda telah [mengonfigurasi kredensi AWS otentikasi](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#configuration) untuk akun Anda.

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

1. Salin isi contoh kode berikut dan simpan secara lokal sebagai`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. Gantikan placeholder untuk `YOUR_ENVIRONMENT_NAME` dan. `YOUR_DAG_NAME`

1. Jalankan skrip berikut untuk membuat token CLI Apache Airflow.

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

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

1. Salin isi contoh kode berikut dan simpan secara lokal sebagai`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. Gantikan placeholder untuk `YOUR_ENVIRONMENT_NAME` dan. `YOUR_DAG_NAME`

1. Jalankan skrip berikut untuk membuat token CLI Apache Airflow.

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

------

## Apa selanjutnya?
<a name="mwaa-cli-next-up"></a>
+ Jelajahi operasi Amazon MWAA API yang digunakan untuk membuat token CLI di. [CreateCliToken](https://docs.aws.amazon.com/mwaa/latest/API/API_CreateCliToken.html)