기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
CodeArtifact 토큰 새로고침
Python 종속성을 설치하는 CodeArtifact 데 사용하는 경우 MWAA Amazon에는 활성 토큰이 필요합니다. Amazon이 MWAA 런타임에 CodeArtifact 리포지토리에 액세스할 수 있도록 하려면 시작 스크립트를 사용하고 PIP_EXTRA_INDEX_URL
다음 주제에서는 환경이 시작되거나 업데이트될 때마다 get_authorization_token
버전
-
이 페이지의 코드 예제를 Python
3.10의 아파치 에어플로우 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/*" }
-
오퍼레이션을 호출하려면 해당
sts:GetServiceBearerToken
조치가 CodeArtifactGetAuthorizationToken
API필요합니다. 이 작업은pip
with와 같은 패키지 관리자를 사용할 때 사용해야 하는 토큰을 반환합니다 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
를 사용하여 스크립트를 버킷에 업로드합니다. Replaceyour-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 코드를 Amazon S3 버킷의
dags
폴더에 업로드하는 방법을 알아봅니다DAG 추가 또는 업데이트. -
이 예제의
plugins.zip
파일을 사용자 지정 플러그인 설치의 Amazon S3 버킷에 업로드하는 방법에 대해 자세히 알아봅니다.