As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Atualizando um token CodeArtifact
Se você estiver usando CodeArtifact para instalar dependências do Python, o Amazon MWAA exige um token ativo. Para permitir que o Amazon MWAA acesse um CodeArtifact repositório em tempo de execução, você pode usar um script de inicialização e configurá-lo PIP_EXTRA_INDEX_URL
O tópico a seguir descreve como você pode criar um script de inicialização que usa a operação da get_authorization_token
Versão
Você pode usar o exemplo de código nesta página com o Apache Airflow v2 no Python 3.10 e o Apache Airflow v3no Python 3.11
Pré-requisitos
Para usar o código de amostra nesta página, você precisará do seguinte:
-
Um CodeArtifact repositório onde você armazena dependências para seu ambiente.
Permissões
Para atualizar o CodeArtifact token e gravar o resultado no Amazon S3, o Amazon MWAA deve ter as seguintes permissões na função de execução.
-
A
codeartifact:GetAuthorizationTokenação permite que a Amazon MWAA recupere um novo token de. CodeArtifact A política a seguir concede permissão para cada CodeArtifact domínio que você criar. É possível restringir ainda mais o acesso aos seus domínios modificando o valor do recurso na instrução e especificando somente os domínios que você deseja que seu ambiente acesse.{ "Effect": "Allow", "Action": "codeartifact:GetAuthorizationToken", "Resource": "arn:aws:codeartifact:us-west-2:*:domain/*" } -
A
sts:GetServiceBearerTokenação é necessária para chamar a operação CodeArtifactGetAuthorizationTokenda API. Essa operação retorna um token que deve ser usado ao usar um gerenciador de pacotes, comopipwith CodeArtifact. Para usar um gerenciador de pacotes com um CodeArtifact repositório, a função de função de execução do seu ambiente deve permitir,sts:GetServiceBearerTokenconforme listado na declaração de política a seguir.{ "Sid": "AllowServiceBearerToken", "Effect": "Allow", "Action": "sts:GetServiceBearerToken", "Resource": "*" }
Exemplo de código
As etapas a seguir descrevem como você pode criar um script de inicialização que atualize o CodeArtifact token.
-
Copie o conteúdo da amostra de código a seguir e salve localmente como
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" -
Navegue até a pasta em que você salvou o script. Use
cpem uma nova janela de prompt para fazer o upload do script em seu bucket. Substituaamzn-s3-demo-bucketpor suas informações.aws s3 cp code_artifact_startup_script.sh s3://amzn-s3-demo-bucket/code_artifact_startup_script.shSe tiver êxito, o Amazon S3 envia o caminho da URL para o objeto:
upload: ./code_artifact_startup_script.sh to s3://amzn-s3-demo-bucket/code_artifact_startup_script.sh
Depois de fazer o upload do script, seu ambiente atualiza e executa o script no startup.
Próximas etapas
-
Saiba como usar scripts de startup para personalizar seu ambiente em Como usar um script de startup com o Amazon MWAA.
-
Saiba como fazer o upload do código DAG neste exemplo para a pasta
dagsem seu bucket do Amazon S3 em Adicionando ou atualizando DAGs. -
Saiba mais sobre como fazer o upload do
plugins.ziparquivo neste exemplo para seu bucket do Amazon S3 em Como instalar plug-ins personalizados.