Todos os produtos
Search
Central de documentação

Function Compute:Configurar uma montagem do OSS

Última atualização: Jun 29, 2026

Object Storage Service (OSS) é um serviço de armazenamento em nuvem massivo, seguro, econômico e altamente confiável. Monte um bucket do OSS no Function Compute para permitir que sua função interaja com o OSS como se fosse um sistema de arquivos local. Isso simplifica o acesso a recursos e os fluxos de trabalho de processamento de dados.

Limites

  • Uma função do Function Compute suporta até cinco destinos de montagem NAS e cinco OSS na mesma região.

  • Os diretórios locais para destinos de montagem NAS e OSS devem ser exclusivos no ambiente de execução da função.

    Para obter mais informações sobre a configuração de destinos de montagem NAS, consulte Configurar um sistema de arquivos NAS.

Pré-requisitos

Procedimento

Etapa 1: Configurar um destino de montagem do OSS

  1. Faça login no console do Function Compute. No painel de navegação à esquerda, escolha Function Management > Functions.

  2. Na barra de navegação superior, selecione uma região. Na página Functions, clique em o nome da função de destino.

  3. Na página de detalhes da função, clique em a aba Configuration. Clique em Advanced Settings à direita de Modify. No painel Advanced Settings, localize a seção Storage, ative a chave de Mount OSS, configure os parâmetros e clique em Deploy.

    Parâmetro

    Descrição

    Exemplo

    OSS Mount Target: Configure o destino de montagem do OSS.

    Bucket

    Selecione um bucket existente. Para criar um novo, clique em Create OSS Bucket para abrir o console do OSS. Para obter informações sobre taxas associadas ao OSS, consulte Visão geral do faturamento do OSS.

    example-bucket

    Bucket Subdirectory

    Especifique um subdiretório no bucket. Use um caminho absoluto. Se este campo estiver vazio ou definido como /, o sistema monta o diretório raiz do bucket.

    /files

    OSS Endpoint

    Ao selecionar um bucket, o sistema seleciona automaticamente seu endpoint. Selecione Custom Endpoint para modificar o endereço do endpoint. Para obter uma lista de endpoints do OSS por região, consulte Regiões e endpoints.

    Nota
    • Se o bucket e sua função do Function Compute estiverem na mesma região, use um endpoint interno.

    • Caso o bucket esteja em uma região diferente, utilize um endpoint público. Isso gera taxas de transferência de dados de saída.

    Default Endpoint

    Local directory of a function

    Defina um diretório local no ambiente de execução da função. O diretório deve ser um subdiretório de /home, /mnt ou /data.

    /mnt/oss

    Permissions on the local directory of the function

    Escolha as permissões para o diretório local. Selecione Read-only ou Read and Write.

    Read/write

    Nota

    O recurso de montagem do OSS depende da configuração de rede da função. Se sua função estiver configurada para acessar apenas uma VPC e a opção Allow Default NIC to Access Internet estiver definida como No, a função precisará acessar a internet por meio da VPC especificada para usar um endpoint público do OSS. Para obter detalhes, consulte Configurar um endereço IP público estático.

Etapa 2: Acessar arquivos no diretório montado

Após configurar o destino de montagem do OSS, acesse os arquivos no diretório montado como se fossem locais.

  1. Na página de detalhes da função, clique em a aba Code. Escreva seu código no editor e clique em Deploy.

    O código a seguir fornece um exemplo.

    import os
    
    def handler(event, context):
        # Mount directory
        mount_path = '/mnt/oss'
        
        # List files in the mount directory
        files = os.listdir(mount_path)
        print("Files in OSS mount:", files)  
        # Read a specific file from the mount directory
        file_path = os.path.join(mount_path, 'example.txt')
        if os.path.exists(file_path):
            with open(file_path, 'r') as file:
                content = file.read()
                print("Content of example.txt:", content)
        else:
            print("example.txt does not exist.")
        # Write a file to the mount directory
        write_path = os.path.join(mount_path, 'output.txt')
        with open(write_path, 'w') as file:
            file.write("Hello, OSS mount!")
            print("Wrote to output.txt in OSS mount.")
        
        return "Function execution completed."
      
    Nota

    No código, substitua example.txt pelo nome de um arquivo real existente no diretório OSS montado.

  2. Após implantar o código, clique em Code na aba Test Function.

    Quando a execução for concluída, visualize os resultados na parte inferior da aba Code. A aba Log Output exibe o conteúdo do arquivo example.txt lido do diretório OSS. Também é possível acessar o console do OSS para verificar se o sistema gravou o arquivo output.txt no diretório montado correspondente.

Perguntas frequentes

Erro de montagem do OSS: bucket not found

Verifique se o endpoint de acesso do OSS e o nome do bucket estão corretos.

Erro de montagem do OSS: host resolv error ou deadline exceeded

Confirme se o endereço do endpoint está correto.

  • O erro host resolv error ocorre quando não é possível resolver o endereço do endpoint.

  • Endpoints internos não funcionam entre regiões diferentes. Utilizar um endpoint interno para uma função em outra região causa timeout de conexão, resultando no erro deadline exceeded.

Erro de montagem: invalid credentials

Certifique-se de que a função do RAM configurada para sua função possui as permissões necessárias para acessar o OSS. Para obter detalhes, consulte Conceder permissões a uma função para acessar outros serviços de nuvem usando uma função de serviço. As permissões obrigatórias são:

  • Read-only: Requer as permissões oss:ListObjects e oss:GetObject.

  • Read and Write: Exige as permissões oss:ListObjects, oss:GetObject, oss:PutObject, oss:DeleteObject, oss:ListParts e oss:AbortMultipartUpload.

Nota

A ação oss:ListObjects é executada no nível do bucket. Portanto, ao conceder acesso a um bucket específico, a política de permissões deve incluir um ARN de recurso no nível do bucket, como acs:oss:*:*:bucketName. Para mais informações, consulte Recurso do OSS.

Input/output error ao ler arquivos montados.

Verifique a classe de armazenamento do seu bucket do OSS. Se a classe for Archive ou Cold Archive, os objetos no bucket estarão congelados e precisarão ser restaurados antes do acesso. Defina a classe de armazenamento do seu bucket do OSS como Standard.

Como visualizar arquivos no diretório local

  1. Na página de detalhes da função, clique em a aba Instance. Na lista de instâncias com estado Running, selecione uma instância e clique em Connect to Instance na coluna Actions.

  2. Após conectar-se à instância, execute comandos para visualizar informações sobre os arquivos no diretório local configurado. Por exemplo:

    image

Erro ao acessar o destino de montagem: Transport endpoint is not connected

Esse erro ocorre quando o recurso de montagem do OSS falha devido à memória insuficiente, causada por especificações de memória baixas ou alto uso de memória. Aumente a especificação de memória da sua função conforme suas necessidades de negócio. Recomenda-se um mínimo de 512 MB ao utilizar um destino de montagem do OSS.

Persistência de dados em diretórios de função

O sistema exclui os dados gravados no diretório de uma função quando a instância da função é destruída. Para garantir a persistência dos dados, monte um sistema de arquivos NAS ou um bucket do OSS. Para obter detalhes, consulte Configurar um sistema de arquivos NAS e Configurar uma montagem do OSS.

Acesso somente leitura para um bucket

Expanda para ver um exemplo de política de permissões. Substitua bucketName no exemplo pelo nome do seu bucket. Para mais informações, consulte Visão geral da Política do RAM.

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "oss:ListObjects",
        "oss:GetObject"
      ],
      "Resource": [
        "acs:oss:*:*:bucketName",
        "acs:oss:*:*:bucketName/*"
      ],
      "Effect": "Allow"
    }
  ]
}

Acesso de leitura e gravação para um bucket

Expanda para ver um exemplo de política de permissões. Substitua bucketName no exemplo pelo nome do seu bucket. Para mais informações, consulte Visão geral da Política do RAM.

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "oss:ListObjects",
        "oss:GetObject",
        "oss:PutObject",
        "oss:DeleteObject",
        "oss:AbortMultipartUpload",
        "oss:ListParts"
      ],
      "Resource": [
        "acs:oss:*:*:bucketName",
        "acs:oss:*:*:bucketName/*"
      ],
      "Effect": "Allow"
    }
  ]
}

Acesso somente leitura para um subdiretório

Expanda para ver um exemplo de política de permissões. Substitua bucketName pelo nome do seu bucket e bucketPath pelo subdiretório específico. Para mais informações, consulte Visão geral da Política do RAM.

{
  "Version": "1",
  "Statement": [
    {
      "Action": "oss:ListObjects",
      "Effect": "Allow",
      "Resource": [
        "acs:oss:*:*:bucketName"
      ],
      "Condition": {
        "StringLike": {
          "oss:Prefix": [
            "bucketPath/*"
          ]
        }
      }
    },
    {
      "Action": [
        "oss:GetObject"
      ],
      "Effect": "Allow",
      "Resource": [
        "acs:oss:*:*:bucketName/bucketPath/*"
      ]
    }
  ]
}

Acesso de leitura e gravação para um subdiretório

Expanda para ver um exemplo de política de permissões. Substitua bucketName pelo nome do seu bucket e bucketPath pelo subdiretório específico. Para mais informações, consulte Visão geral da Política do RAM.

{
  "Version": "1",
  "Statement": [
    {
      "Action": "oss:ListObjects",
      "Effect": "Allow",
      "Resource": [
        "acs:oss:*:*:bucketName"
      ],
      "Condition": {
        "StringLike": {
          "oss:Prefix": [
            "bucketPath/*"
          ]
        }
      }
    },
    {
      "Action": [
        "oss:GetObject",
        "oss:PutObject",
        "oss:DeleteObject",
        "oss:AbortMultipartUpload",
        "oss:ListParts"
      ],
      "Effect": "Allow",
      "Resource": [
        "acs:oss:*:*:bucketName/bucketPath/*"
      ]
    }
  ]
}

Arquivos aparecem vazios durante operações de gravação

Ao gravar em um arquivo por meio de um destino de montagem do OSS, o sistema geralmente carrega o conteúdo para o OSS somente após você chamar explicitamente o método flush() ou fechar o arquivo.

Desempenho lento para compactação ou transferência de arquivos

O OSS não oferece suporte nativo a APIs de sistema de arquivos. Ao montar um bucket do OSS como um diretório, o Function Compute emula o comportamento da API do sistema de arquivos combinando e encapsulando APIs do OSS. Por exemplo, como o OSS não suporta gravações aleatórias, modificar um arquivo existente em um destino de montagem do OSS exige que o Function Compute baixe todo o arquivo de source do OSS, modifique-o e faça o upload novamente.

O desempenho costuma ser bom para operações em que as APIs do sistema de arquivos correspondem diretamente às funções da API do OSS, como leituras e gravações sequenciais de arquivos. No entanto, operações que exigem a combinação de várias APIs do OSS, como as leituras e gravações aleatórias usadas na compactação ou descompactação de arquivos, envolvem numerosas interações com o OSS e, portanto, são mais lentas do que em um sistema de arquivos local.

Sincronização entre instâncias de função

Não. As instâncias de função são independentes umas das outras; portanto, o acesso a um destino de montagem do OSS não é sincronizado entre elas. Por exemplo, se a instância A criar um arquivo no destino de montagem, a instância B poderá não ver esse arquivo imediatamente.