Como trabalhar com o Cloud Storage

O AI Platform Prediction lê dados nos locais do Cloud Storage a que seu projeto do AI Platform Prediction tem acesso. Nesta página, você verá um guia rápido sobre como usar o Cloud Storage com o AI Platform Prediction.

Visão geral

O uso do Cloud Storage é obrigatório ou recomendado para os seguintes aspectos dos serviços do AI Platform Prediction:

Previsão on-line

Predição em lote

  • Armazenamento dos arquivos de entrada da previsão em lote.
  • Armazenamento da saída da previsão em lote.
  • Armazenamento do modelo, se você usar a predição em lote sem, primeiro, implantar o modelo no AI Platform Prediction.

Considerações sobre regiões

Ao criar um bucket do Cloud Storage para usar com o AI Platform Prediction, você precisa fazer o seguinte:

  • Atribuí-lo a uma região de computação específica, não a um valor multirregional.
  • Usar a mesma região em que os jobs de treinamento são executados.

Saiba mais sobre as regiões disponíveis do AI Platform Prediction.

Como configurar os buckets do Cloud Storage

Nesta seção, você aprende a criar um novo bucket. É possível usar um bucket atual, mas ele precisa estar na mesma região em que você planeja executar os jobs do AI Platform. Além disso, se ele não fizer parte do projeto que você usa para executar o AI Platform Prediction, é necessário conceder acesso explícito às contas de serviço do AI Platform Prediction.

  1. Especifique um nome para o novo bucket. Ele precisa ser único em todos os buckets no Cloud Storage.

    BUCKET_NAME="YOUR_BUCKET_NAME"

    Por exemplo, use o nome do seu projeto com -aiplatform anexado:

    PROJECT_ID=$(gcloud config list project --format "value(core.project)")
    BUCKET_NAME=${PROJECT_ID}-aiplatform
  2. Verifique o nome do bucket que você criou.

    echo $BUCKET_NAME
  3. Selecione a região do bucket e defina a variável de ambiente REGION.

    Use a mesma região em que você planeja executar jobs do AI Platform Prediction. Consulte as regiões disponíveis para os serviços do AI Platform Prediction.

    Por exemplo, o código a seguir cria REGION e a define como us-central1:

    REGION=us-central1
  4. Crie o novo bucket:

    gsutil mb -l $REGION gs://$BUCKET_NAME

Organização do modelo em buckets

Organize a estrutura de pastas no bucket de forma a acomodar as muitas iterações do seu modelo.

  • Coloque cada modelo salvo em um diretório próprio em separado dentro do bucket.
  • Use carimbos de data/hora para nomear os diretórios no bucket.

Por exemplo, coloque o primeiro modelo em uma estrutura semelhante a gs://your-bucket/your-model-DATE1/your-saved-model-file. Para nomear os diretórios de cada iteração posterior do modelo, use um carimbo de data/hora atualizado. Por exemplo, gs://your-bucket/your-model-DATE2/your-saved-model-file e assim por diante.

Como acessar o Cloud Storage durante a previsão

Se você implantar uma rotina de previsão personalizada ou um pipeline do scikit-learn com código personalizado (ambos em Beta), a versão do modelo poderá fazer leituras em qualquer bucket do Cloud Storage que esteja no mesmo projeto durante o processamento das previsões.

Use um módulo do Python que possa ler o Cloud Storage no código de previsão personalizado, como o cliente Python para o Google Cloud Storage, o módulo tf.io.gfile.GFile do TensorFlow ou o pandas 0.24.0 ou superior (páginas em inglês). O AI Platform Prediction cuida da autenticação.

Também é possível especificar uma conta de serviço ao implantar uma rotina de previsão personalizada para escolher quais recursos do Cloud Storage poderão ser acessados por sua implantação.

Como usar um bucket do Cloud Storage de um projeto diferente

Nesta seção, você aprenderá como configurar buckets do Cloud Storage de fora do seu projeto para que o AI Platform Prediction possa acessá-los.

Se você configurar seu bucket do Cloud Storage no mesmo projeto em que o AI Platform Prediction é utilizado, suas contas de serviço do AI Platform Prediction já terão as permissões necessárias para acessar esse bucket.

As instruções abaixo se aplicam aos seguintes casos:

  • Se não for possível usar um bucket a partir do projeto, como quando um grande conjunto de dados é compartilhado por vários projetos.
  • Se você usar vários buckets com o AI Platform Prediction, conceda individualmente às contas de serviço do AI Platform Prediction acesso a cada bucket.

Etapa 1: receber informações necessárias do projeto na nuvem

Console

  1. Abra a página "IAM" no Console do Google Cloud.

    Abrir a página "IAM"

  2. A página "IAM" exibe uma lista de todos os principais com acesso ao seu projeto, junto aos respectivos papéis. O projeto do AI Platform Prediction tem várias contas de serviço. Localize a conta de serviço na lista que tem o papel de Agente de serviço do Cloud ML e copie o ID da conta de serviço, que é assim:

    "service-111111111111@cloud-ml.google.com.iam.gserviceaccount.com".

    Você precisa colar esse ID em uma página diferente no Console do Cloud nas próximas etapas.

Linha de comando

Ao seguir as etapas desta seção, você recebe as informações do seu projeto do Google Cloud. Use-as para mudar o controle de acesso da conta de serviço do AI Platform Prediction do projeto. É preciso armazenar os valores para uso posterior em variáveis de ambiente.

  1. Use a ferramenta de linha de comando gcloud com o projeto selecionado para conseguir o identificador dele:

    PROJECT_ID=$(gcloud config list project --format "value(core.project)")
    
  2. Use a gcloud para receber o token de acesso do projeto:

    AUTH_TOKEN=$(gcloud auth print-access-token)
    
  3. Consiga as informações da conta de serviço solicitando a configuração do projeto no serviço REST:

    SVC_ACCOUNT=$(curl -X GET -H "Content-Type: application/json" \
        -H "Authorization: Bearer $AUTH_TOKEN" \
        https://ml.googleapis.com/v1/projects/${PROJECT_ID}:getConfig \
        | python -c "import json; import sys; response = json.load(sys.stdin); \
        print response['serviceAccount']")
    

Etapa 2: configurar o acesso ao bucket do Cloud Storage

Console

  1. Abra a página "Storage" no Console do Cloud.

    Abrir a página "Armazenamento"

  2. Para selecionar o bucket do Cloud Storage que você usará para implantar os modelos, marque a caixa à esquerda do nome do bucket.

  3. Clique no botão Mostrar o painel de informações no canto superior direito para exibir a guia Permissões.

  4. Cole o código da conta de serviço no campo Adicionar principais. À direita desse campo, selecione os papéis que você quer, por exemplo, Leitor de bucket legado do Storage.

    Se não tiver certeza sobre qual papel selecionar, é possível selecionar vários papéis para vê-los exibidos abaixo do campo Adicionar principais, cada um com uma breve descrição das respectivas permissões.

  5. Para atribuir os papéis que você quiser à conta de serviço, clique no botão Adicionar à direita do campo Adicionar principais.

Linha de comando

Agora que você já tem as informações da conta de serviço e do projeto, é necessário atualizar as permissões de acesso do bucket do Cloud Storage. Estas etapas usam os mesmos nomes de variáveis da seção anterior.

  1. Defina o nome do bucket em uma variável de ambiente chamada BUCKET_NAME:

    BUCKET_NAME="your_bucket_name"
    
  2. Conceda à conta de serviço acesso de leitura ao bucket do Cloud Storage:

    gsutil -m defacl ch -u $SVC_ACCOUNT:R gs://$BUCKET_NAME
    
  3. Se o bucket já contiver objetos que você precisa acessar, conceda explicitamente o acesso de leitura a eles:

    gsutil -m acl ch -u $SVC_ACCOUNT:R -r gs://$BUCKET_NAME
    
  4. Conceda acesso de gravação:

    gsutil -m acl ch -u $SVC_ACCOUNT:W gs://$BUCKET_NAME
    

Para escolher um papel que será concedido à conta de serviço do AI Platform Prediction, consulte os papéis de IAM do Cloud Storage. Para mais informações gerais sobre como atualizar os papéis do IAM no Cloud Storage, consulte Como conceder acesso a uma conta de serviço em um recurso.

A seguir