Todos os produtos
Search
Central de documentação

Function Compute:Configure um ponto de montagem do OSS

Última atualização: Sep 29, 2026

Object Storage Service (OSS) é um service de armazenamento em cloud de grande escala, seguro, econômico e altamente confiável. Você pode montar um bucket do OSS no Function Compute, o que permite 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 aceita até cinco pontos de montagem NAS e cinco pontos de montagem OSS na mesma região.

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

    Para obter mais informações sobre como configurar pontos de montagem NAS, consulte {{XREF_0}}.

Pré-requisitos

  • Object Storage Service (OSS)

  • Function Compute

    • {{XREF_3}}

      O recurso de montagem do OSS requer uma função do RAM que conceda à sua função permissão para acessar o OSS. Para obter detalhes, consulte {{XREF_4}}.

Procedimento

Etapa 1: Configurar um ponto 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 no nome da função de destino.

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

    Parâmetro

    Descrição

    Exemplo

    OSS Mount Target: Configure o ponto 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 as taxas associadas ao OSS, consulte {{XREF_5}}.

    example-bucket

    Bucket Subdirectory

    Especifique um subdiretório no bucket. Este deve ser um caminho absoluto. Se você deixar este campo vazio ou defini-lo como /, o diretório raiz do bucket será montado.

    /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 {{XREF_6}}.

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

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

    Default Endpoint

    Local directory of a function

    Especifique 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

    Selecione as permissões para o diretório local. Você pode escolher 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 através da VPC especificada para usar um endpoint público do OSS. Para obter detalhes, consulte {{XREF_7}}.

Etapa 2: Acessar arquivos no diretório montado

Após configurar o ponto de montagem do OSS, você pode acessar os arquivos no diretório montado como se fossem locais.

  1. Na página de detalhes da função, clique na 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 que exista no seu diretório OSS montado.

  2. Após a implantação do código, clique em Code na aba Test Function.

    Após a conclusão da execução, visualize os resultados na parte inferior da aba Code. A aba Log Output mostra o conteúdo do arquivo example.txt lido do diretório OSS. Você também pode acessar o console do OSS para verificar se o arquivo output.txt foi gravado 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

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

  • O erro host resolv error ocorre quando o endereço do endpoint não pode ser resolvido.

  • Endpoints internos não podem ser usados entre regiões. O uso de um endpoint interno para uma função em uma região diferente causa um tempo limite de conexão, resultando no erro deadline exceeded.

Erro de montagem: invalid credentials

Verifique se a função do RAM configurada para sua função possui as permissões necessárias para acessar o OSS. Para obter detalhes, consulte {{XREF_8}}. As permissões necessárias são as seguintes:

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

  • Read and Write: Requer 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ão deve incluir um ARN de recurso no nível do bucket, como acs:oss:*:*:bucketName. Para obter mais informações, consulte {{XREF_9}}.

Input/output error ao ler arquivos montados.

Verifique a classe de armazenamento do seu bucket do OSS. Se a classe de armazenamento for Archive ou Cold Archive, os objetos no bucket estarão em um estado congelado e precisarão ser restaurados antes de poderem ser acessados. 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 na aba Instance. Na lista de instâncias que estão no 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:

    root@sr-65b30dd4-4f47295574cd41849c5f:/code# cd /mnt/oss
    root@sr-65b30dd4-4f47295574cd41849c5f:/mnt/oss# ls
     my.zip   output.txt  's (1).yaml'   下载.html   下载.json
    root@sr-65b30dd4-4f47295574cd41849c5f:/mnt/oss# cd ../
    root@sr-65b30dd4-4f47295574cd41849c5f:/mnt# ls
    oss
    root@sr-65b30dd4-4f47295574cd41849c5f:/mnt#

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

Esse erro ocorre quando o recurso de montagem do OSS falha devido à memória insuficiente, o que pode ser causado por especificações de memória baixas ou alto uso de memória. Aumente a especificação de memória da sua função com base nas suas necessidades de negócios. Recomenda-se um mínimo de 512 MB ao usar um ponto de montagem do OSS.

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

Os dados gravados no diretório de uma função são excluídos 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 {{XREF_10}} e {{XREF_11}}.

Acesso somente leitura para um bucket

Expanda para visualizar um exemplo de política de permissão. Substitua bucketName no exemplo pelo nome do seu bucket. Para obter mais informações, consulte {{XREF_12}}.

{
  "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 visualizar um exemplo de política de permissão. Substitua bucketName no exemplo pelo nome do seu bucket. Para obter mais informações, consulte {{XREF_13}}.

{
  "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 visualizar um exemplo de política de permissão. Substitua bucketName pelo nome do seu bucket e bucketPath pelo subdiretório específico. Para obter mais informações, consulte {{XREF_14}}.

{
  "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 visualizar um exemplo de política de permissão. Substitua bucketName pelo nome do seu bucket e bucketPath pelo subdiretório específico. Para obter mais informações, consulte {{XREF_15}}.

{
  "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/*"
      ]
    }
  ]
}

Os arquivos aparecem vazios durante as operações de gravação

Ao gravar em um arquivo através de um ponto de montagem do OSS, o sistema normalmente carrega o conteúdo no 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 as APIs do OSS. Por exemplo, como o OSS não aceita gravações aleatórias, a modificação de um arquivo existente em um ponto de montagem do OSS exige que o Function Compute baixe todo o arquivo de origem do OSS, modifique-o e, em seguida, faça o upload novamente.

O desempenho geralmente é 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 operações de leitura e gravação aleatórias usadas na compactação ou descompactação de arquivos, envolvem inúmeras 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 ponto de montagem do OSS não é sincronizado entre elas. Por exemplo, se a instância A criar um arquivo no ponto de montagem, a instância B poderá não ver esse arquivo imediatamente.