

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á.

# Como atualizar um token CodeArtifact
<a name="samples-code-artifact"></a>

Se você estiver usando o CodeArtifact para instalar dependências do Python, o Amazon MWAA exigirá um token ativo. Para permitir que o Amazon MWAA acesse um repositório CodeArtifact em runtime, é possível usar um [script de startup](using-startup-script.md) e configurar [https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-extra-index-url](https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-extra-index-url) com o token.

O tópico a seguir descreve como é possível criar um script de startup que usa a operação da API CodeArtifact [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/codeartifact.html#CodeArtifact.Client.get_authorization_token](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/codeartifact.html#CodeArtifact.Client.get_authorization_token) para recuperar um novo token sempre que seu ambiente for inicializado ou atualizado.

**Topics**
+ [Versão](#samples-code-artifact-version)
+ [Pré-requisitos](#samples-code-artifact-prereqs)
+ [Permissões](#samples-code-artifact-permissions)
+ [Exemplo de código](#samples-code-artifact-code)
+ [Próximas etapas](#samples-code-artifact-next-up)

## Versão
<a name="samples-code-artifact-version"></a>

É possível usar o exemplo de código nesta página com o **Apache Airflow v2** no [Python 3.10](https://peps.python.org/pep-0619/) e o **Apache Airflow v3** no [Python 3.11](https://peps.python.org/pep-0664/).

## Pré-requisitos
<a name="samples-code-artifact-prereqs"></a>

Para usar o código de amostra nesta página, você precisará do seguinte:
+ Um [ambiente Amazon MWAA](get-started.md).
+ Um [repositório CodeArtifact](https://docs.aws.amazon.com/codeartifact/latest/ug/create-repo.html) onde você armazena dependências para seu ambiente.

## Permissões
<a name="samples-code-artifact-permissions"></a>

Para atualizar o token CodeArtifact e gravar o resultado no Amazon S3, o Amazon MWAA deve ter as seguintes permissões no perfil de execução.
+ A ação `codeartifact:GetAuthorizationToken` permite que o Amazon MWAA recupere um novo token do CodeArtifact. A política a seguir concede permissão para cada domínio do CodeArtifact 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 ação `sts:GetServiceBearerToken` é necessária para chamar a operação da API CodeArtifact [https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_GetAuthorizationToken.html](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_GetAuthorizationToken.html). Essa operação retorna um token que deve ser usado ao usar um gerenciador de pacotes, como `pip` com CodeArtifact. Para usar um gerenciador de pacotes com um repositório CodeArtifact, um perfil de execução do seu ambiente deve permitir `sts:GetServiceBearerToken`, conforme mostrado na instrução da política a seguir.

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

## Exemplo de código
<a name="samples-code-artifact-code"></a>

As etapas a seguir descrevem como é possível criar um script de inicialização que atualize o token CodeArtifact.

1. 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"
   ```

1. Navegue até a pasta em que você salvou o script. Use `cp` em uma nova janela de prompt para fazer o upload do script em seu bucket. Substitua *amzn-s3-demo-bucket* por suas informações.

   ```
   aws s3 cp code_artifact_startup_script.sh s3://amzn-s3-demo-bucket/code_artifact_startup_script.sh
   ```

   Se 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
<a name="samples-code-artifact-next-up"></a>
+ Saiba como usar scripts de startup para personalizar seu ambiente em [Como usar um script de startup com o Amazon MWAA](using-startup-script.md).
+ Saiba como fazer o upload do código DAG neste exemplo para a pasta `dags` em seu bucket do Amazon S3 em [Como adicionar ou atualizar DAGs](configuring-dag-folder.md).
+ Saiba mais sobre como fazer o upload do `plugins.zip` arquivo neste exemplo para seu bucket do Amazon S3 em [Como instalar plug-ins personalizados](configuring-dag-import-plugins.md).