기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
CodeArtifact 토큰 새로고침
CodeArtifact를 사용하여 Python 종속성을 설치하는 경우 Amazon MWAA에는 활성 토큰이 필요합니다. Amazon MWAA가 런타임의 CodeArtifact 리포지토리에 액세스할 수 있도록 하려면 시작 스크립트를 사용하고 토큰과 PIP_EXTRA_INDEX_URL
다음 주제에서는 get_authorization_token
버전
-
이 페이지의 코드 예제는 Python 3.10
의 Apache Airflow v2에서 사용할 수 있습니다.
필수 조건
이 페이지의 이 샘플 코드를 사용하려면 다음 항목이 필요합니다.
-
환경에 대한 종속성을 저장하는 CodeArtifact 리포지토리입니다.
권한
CodeArtifact 토큰을 새로 고치고 결과를 Amazon S3에 쓰려면 Amazon MWAA의 실행 역할에 다음과 같은 권한이 있어야 합니다.
-
이
codeartifact:GetAuthorizationToken
작업을 통해 Amazon MWAA는 CodeArtifact에서 새 토큰을 검색할 수 있습니다. 다음 정책은 사용자가 생성하는 모든 CodeArtifact 도메인에 권한을 부여합니다. 명령문의 리소스 값을 수정하고 사용자 환경에서 액세스할 도메인만 지정하여 도메인에 대한 액세스를 추가로 제한할 수 있습니다.{ "Effect": "Allow", "Action": "codeartifact:GetAuthorizationToken", "Resource": "arn:aws:codeartifact:us-west-2:*:domain/*" }
-
CodeArtifact
GetAuthorizationToken
API 오퍼레이션을 호출하려면sts:GetServiceBearerToken
액션이 필요합니다. 이 작업은pip
와(과) CodeArtifact 같은 패키지 관리자를 사용할 때 사용해야 하는 토큰을 반환합니다. CodeArtifact 리포지토리와 함께 패키지 관리자를 사용하려면 사용자 환경의 실행 역할 역할이 다음 정책 설명에 표시된 대로sts:GetServiceBearerToken
을(를) 허용해야 합니다.{ "Sid": "AllowServiceBearerToken", "Effect": "Allow", "Action": "sts:GetServiceBearerToken", "Resource": "*" }
코드 샘플
다음 단계는 CodeArtifact 토큰을 업데이트하는 시작 스크립트를 만드는 방법을 설명합니다.
-
다음 코드 샘플의 내용을 복사하고 로컬에서
code_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"
-
스크립트를 저장한 폴더로 이동합니다. 새 프롬프트 창에서
cp
를 사용하여 스크립트를 버킷에 업로드합니다.your-s3-bucket
을 자신의 정보로 바꿉니다.$
aws s3 cp code_artifact_startup_script.sh s3://
your-s3-bucket
/code_artifact_startup_script.sh성공하면 Amazon S3가 객체에 대한 URL 경로를 출력합니다.
upload: ./code_artifact_startup_script.sh to s3://your-s3-bucket/code_artifact_startup_script.sh
스크립트를 업로드하면 시작 시 환경이 업데이트되고 스크립트가 실행됩니다.
다음 단계
-
시작 스크립트를 사용하여 Amazon MWAA에서 시작 스크립트 사용에서 환경을 사용자 지정하는 방법을 알아봅니다.
-
이 예제의 DAG 코드를 DAGs 추가 또는 업데이트에서 Amazon S3 버킷의
dags
폴더에 업로드하는 방법을 알아봅니다. -
이 예제의
plugins.zip
파일을 사용자 지정 플러그인 설치의 Amazon S3 버킷에 업로드하는 방법에 대해 자세히 알아봅니다.