Menyegarkan token CodeArtifact - Amazon Managed Workflows for Apache Airflow (MWAA)

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

Menyegarkan token CodeArtifact

Jika Anda menggunakan CodeArtifact untuk menginstal dependensi Python, MWAA Amazon memerlukan token aktif. Untuk memungkinkan Amazon MWAA mengakses CodeArtifact repositori saat runtime, Anda dapat menggunakan skrip startup dan menyetelnya PIP_EXTRA_INDEX_URLdengan token.

Topik berikut menjelaskan bagaimana Anda dapat membuat skrip startup yang menggunakan get_authorization_token CodeArtifact APIoperasi untuk mengambil token baru setiap kali lingkungan Anda dimulai, atau diperbarui.

Versi

Prasyarat

Untuk menggunakan kode sampel di halaman ini, Anda memerlukan yang berikut:

Izin

Untuk menyegarkan CodeArtifact token dan menulis hasilnya ke Amazon S3 Amazon MWAA harus memiliki izin berikut dalam peran eksekusi.

  • codeartifact:GetAuthorizationTokenTindakan ini memungkinkan Amazon MWAA untuk mengambil token baru dari CodeArtifact. Kebijakan berikut memberikan izin untuk setiap CodeArtifact domain yang Anda buat. Anda dapat membatasi akses ke domain Anda dengan memodifikasi nilai sumber daya dalam pernyataan, dan hanya menentukan domain yang ingin diakses oleh lingkungan Anda.

    { "Effect": "Allow", "Action": "codeartifact:GetAuthorizationToken", "Resource": "arn:aws:codeartifact:us-west-2:*:domain/*" }
  • sts:GetServiceBearerTokenTindakan diperlukan untuk memanggil CodeArtifact GetAuthorizationTokenAPIoperasi. Operasi ini mengembalikan token yang harus digunakan saat menggunakan manajer paket seperti pip dengan CodeArtifact. Untuk menggunakan manajer paket dengan CodeArtifact repositori, peran peran eksekusi lingkungan Anda harus mengizinkan sts:GetServiceBearerToken seperti yang ditunjukkan dalam pernyataan kebijakan berikut.

    { "Sid": "AllowServiceBearerToken", "Effect": "Allow", "Action": "sts:GetServiceBearerToken", "Resource": "*" }

Contoh kode

Langkah-langkah berikut menjelaskan bagaimana Anda dapat membuat skrip start up yang memperbarui CodeArtifact token.

  1. Salin isi contoh kode berikut dan simpan secara lokal sebagaicode_artifact_startup_script.sh.

    #!/bin/sh # Startup script for MWAA, see https://docs.aws.amazon.com/mwaa/latest/userguide/using-startup-script.html set -eu # setup code artifact endpoint and token # https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-0 # https://docs.aws.amazon.com/mwaa/latest/userguide/samples-code-artifact.html DOMAIN="amazon" DOMAIN_OWNER="112233445566" REGION="us-west-2" REPO_NAME="MyRepo" echo "Getting token for CodeArtifact with args: --domain $DOMAIN --region $REGION --domain-owner $DOMAIN_OWNER" TOKEN=$(aws codeartifact get-authorization-token --domain $DOMAIN --region $REGION --domain-owner $DOMAIN_OWNER | jq -r '.authorizationToken') echo "Setting Pip env var for '--index-url' to point to CodeArtifact" export PIP_EXTRA_INDEX_URL="https://aws:$TOKEN@$DOMAIN-$DOMAIN_OWNER.d.codeartifact.$REGION.amazonaws.com/pypi/$REPO_NAME/simple/" echo "CodeArtifact startup setup complete"
  2. Arahkan ke folder tempat Anda menyimpan skrip. Gunakan cp di jendela prompt baru untuk mengunggah skrip ke bucket Anda. Ganti your-s3-bucket dengan informasi Anda.

    $ aws s3 cp code_artifact_startup_script.sh s3://your-s3-bucket/code_artifact_startup_script.sh

    Jika berhasil, Amazon S3 mengeluarkan URL jalur ke objek:

    upload: ./code_artifact_startup_script.sh to s3://your-s3-bucket/code_artifact_startup_script.sh

    Setelah Anda mengunggah skrip, lingkungan Anda memperbarui dan menjalankan skrip saat startup.

Apa selanjutnya?