Configurar uma VPC para se conectar ao PyPI para AWS Glue - AWS Glue

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

Configurar uma VPC para se conectar ao PyPI para AWS Glue

O Python Package Index (PyPI) é um repositório de software para a linguagem de programação Python. Este tópico aborda os detalhes necessários para oferecer suporte ao uso de pacotes instalados pelo pip (conforme especificado pelo criador da sessão usando o sinalizador --additional-python-modules).

O uso de sessões interativas do AWS Glue com um conector resulta no uso da rede VPC por meio da sub-rede especificada para o conector. Consequentemente, os serviços do AWS e outros destinos de rede não estão disponíveis, a menos que você defina uma configuração especial.

As resoluções para esse problema incluem:

  • Uso de um gateway da internet que seja acessível por sua sessão.

  • Configuração e uso de um bucket S3 com um repositório PyPI/simple contendo o fechamento transitivo das dependências de um conjunto de pacotes.

  • Uso de um repositório CodeArtifact que está espelhando o PyPI e anexado à sua VPC.

Configuração de um gateway da Internet

Os aspectos técnicos são detalhados em Casos de uso do gateway NAT, mas observe esses requisitos para usar o --additional-python-modules. Especificamente, o --additional-python-modules requer acesso ao pypi.org, que é determinado pela configuração da sua VPC. Observe os seguintes requisitos:

  1. A exigência de instalar módulos adicionais do python via pip install para uma sessão do usuário. Se a sessão usar um conector, sua configuração poderá ser afetada.

  2. Quando um conector está sendo usado com o --additional-python-modules, quando a sessão é iniciada, a sub-rede associada aos PhysicalConnectionRequirements do conector deve fornecer um caminho de rede para alcançar pypi.org.

  3. Você deve determinar se sua configuração está correta ou não.

Configurar um bucket do Amazon S3 para hospedar um repositório PyPI/simple de destino

Este exemplo configura um espelho PyPI no Amazon S3 para um conjunto de pacotes e suas dependências.

Para configurar o espelho PyPI para um conjunto de pacotes:

# pip download all the dependencies pip download -d s3pypi --only-binary :all: plotly gglplot pip download -d s3pypi --platform manylinux_2_17_x86_64 --only-binary :all: psycopg2-binary # create and upload the pypi/simple index and wheel files to the s3 bucket s3pypi -b test-domain-name --put-root-index -v s3pypi/*

Se você já tiver um repositório de artefatos existente, ele terá um URL de índice para uso do pip que você pode fornecer no lugar do URL de exemplo para o bucket do Amazon S3, conforme descrito acima.

Para usar o index-url personalizado, com alguns pacotes de exemplo:

%%configure { "--additional-python-modules": "psycopg2_binary==2.9.5", "python-modules-installer-option": "--no-cache-dir --verbose --index-url https://test-domain-name.s3.amazonaws.com/ --trusted-host test-domain-name.s3.amazonaws.com" }

Configurar um espelho CodeArtifact de pypi conectado à sua VPC

Para configurar um espelho:

  1. Crie um repositório na mesma região da sub-rede usada pelo conector.

    Selecione Public upstream repositories e escolha pypi-store.

  2. Forneça acesso ao repositório da VPC para a sub-rede.

  3. Especifique o --index-url correto usando o python-modules-installer-option.

    %%configure { "--additional-python-modules": "psycopg2_binary==2.9.5", "python-modules-installer-option": "--no-cache-dir --verbose --index-url https://test-domain-name.s3.amazonaws.com/ --trusted-host test-domain-name.s3.amazonaws.com" }

Para obter mais informações, consulte Use CodeArtifact from a VPC.