CodeArtifact 토큰 새로고침
CodeArtifact를 사용하여 Python 종속성을 설치하는 경우 Amazon MWAA에는 활성 토큰이 필요합니다. Amazon MWAA가 런타임의 CodeArtifact 리포지토리에 액세스할 수 있도록 하려면 시작 스크립트를 사용하고 토큰과 PIP_EXTRA_INDEX_URL
다음 주제에서는 get_authorization_token
버전
이 페이지의 코드 예제는 Python 3.10
사전 조건
이 페이지의 이 샘플 코드를 사용하려면 다음 항목이 필요합니다.
-
환경에 대한 종속성을 저장하는 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
GetAuthorizationTokenAPI 오퍼레이션을 호출하려면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, refer to 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를 사용하여 스크립트를 버킷에 업로드합니다.amzn-s3-demo-bucket을 자신의 정보로 바꿉니다.aws s3 cp code_artifact_startup_script.sh s3://amzn-s3-demo-bucket/code_artifact_startup_script.sh성공하면 Amazon S3가 객체에 대한 URL 경로를 출력합니다.
upload: ./code_artifact_startup_script.sh to s3://amzn-s3-demo-bucket/code_artifact_startup_script.sh
스크립트를 업로드하면 시작 시 환경이 업데이트되고 스크립트가 실행됩니다.
다음 단계
-
시작 스크립트를 사용하여 Amazon MWAA에서 시작 스크립트 사용에서 환경을 사용자 지정하는 방법을 알아봅니다.
-
이 예제의 DAG 코드를 DAG 추가 또는 업데이트에서 Amazon S3 버킷의
dags폴더에 업로드하는 방법을 알아봅니다. -
이 예제의
plugins.zip파일을 사용자 지정 플러그인 설치의 Amazon S3 버킷에 업로드하는 방법에 대해 자세히 알아봅니다.