CodeArtifact 토큰 새로고침 - Amazon Managed Workflows for Apache Airflow

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

CodeArtifact 토큰 새로고침

Python 종속성을 설치하는 CodeArtifact 데 사용하는 경우 MWAA Amazon에는 활성 토큰이 필요합니다. Amazon이 MWAA 런타임에 CodeArtifact 리포지토리에 액세스할 수 있도록 하려면 시작 스크립트를 사용하고 PIP_EXTRA_INDEX_URL토큰으로 를 설정하면 됩니다.

다음 주제에서는 환경이 시작되거나 업데이트될 때마다 get_authorization_token CodeArtifact API작업을 사용하여 새 토큰을 검색하는 시작 스크립트를 생성하는 방법을 설명합니다.

버전

  • 이 페이지의 코드 예제를 Python 3.10의 아파치 에어플로우 v2와 함께 사용할 수 있습니다.

사전 조건

이 페이지의 이 샘플 코드를 사용하려면 다음 항목이 필요합니다.

권한

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 조치가 CodeArtifact GetAuthorizationTokenAPI필요합니다. 이 작업은 pip with와 같은 패키지 관리자를 사용할 때 사용해야 하는 토큰을 반환합니다 CodeArtifact. CodeArtifact 리포지토리와 함께 패키지 관리자를 사용하려면 환경의 실행 역할 역할이 다음 정책 설명에 나와 있는 sts:GetServiceBearerToken 것처럼 허용되어야 합니다.

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

코드 샘플

다음 단계는 CodeArtifact 토큰을 업데이트하는 시작 스크립트를 만드는 방법을 설명합니다.

  1. 다음 코드 샘플의 내용을 복사하고 로컬에서 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"
  2. 스크립트를 저장한 폴더로 이동합니다. 새 프롬프트 창에서 cp를 사용하여 스크립트를 버킷에 업로드합니다. Replace 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

    스크립트를 업로드하면 시작 시 환경이 업데이트되고 스크립트가 실행됩니다.

다음 단계