Todos os produtos
Search
Central de documentação

Function Compute:Use uma função de serviço para acessar outros serviços de nuvem

Última atualização: Jun 29, 2026

Ao usar recursos como logging, acesso à VPC ou invocação assíncrona, o Function Compute precisa de permissões para acessar outros serviços de nuvem. Por exemplo, para configurar o logging de funções, conceda ao Function Compute permissões de gravação em um Logstore específico para registrar os logs da função.

Para simplificar o processo de autorização, o Function Compute oferece suporte a uma função vinculada ao serviço. As funções usam essa função por padrão, o que permite acessar recursos como logging, acesso à VPC e invocação assíncrona sem configuração adicional.

Se o código da sua função precisar acessar outros serviços de nuvem ou exigir permissões mais granulares, configure uma Function Role. Durante a invocação, o Function Compute assume automaticamente a função configurada.

Como funciona

Com base na função configurada para uma função, o Function Compute obtém credenciais temporárias (um token STS) ao chamar a API AssumeRole e as transmite para sua função por meio do parâmetro Credentials ou credentials no contexto. Essas credenciais temporárias concedem acesso a todos os recursos abrangidos pelas permissões configuradas. Você pode usá-las no código da função para acessar outros serviços da Alibaba Cloud.

As credenciais temporárias têm validade fixa de 36 horas. Como a duração máxima de execução de uma função é de 24 horas, as credenciais não expiram durante a execução.

A localização do parâmetro Credentials ou credentials varia conforme o runtime. Para obter detalhes sobre runtimes específicos, consulte os links a seguir. Em runtimes personalizados e imagens personalizadas, as credenciais temporárias são injetadas nos cabeçalhos de solicitação HTTP.

Exemplo: Conceder acesso ao OSS

Este exemplo demonstra como conceder a uma função permissão para gerenciar o OSS. Crie uma função com permissões de OSS e vincule-a à função.

Pré-requisitos

Criar uma função

Procedimento

Etapa 1: Criar uma função e conceder permissões

  1. Faça logon no console RAM. No painel de navegação à esquerda, escolha Roles > Create Role.

  2. Na página Create Role, selecione Cloud Service para Principal Type e Function Compute / FC para Principal Name. Em seguida, clique em OK.

  3. Na caixa de diálogo Create Role exibida, defina o Role Name, como mytestrole, e clique em OK. Você será redirecionado para a página de detalhes da função.

  4. Na aba Permissions, clique em Grant Permission. No painel Grant Permission, siga estas etapas para conceder permissões à função.

  5. Selecione o Resource Scope. O Principal é a função de destino por padrão. Na lista de políticas, marque a caixa de seleção ao lado de uma política do sistema ou personalizada para adicioná-la à lista Selected Policies. Depois, clique em OK. Para mais informações, consulte Políticas e exemplos.

    • Account: As permissões entram em vigor na conta atual da Alibaba Cloud.

    • Resource Group: As permissões entram em vigor no grupo de recursos especificado. Esta opção está disponível apenas se o serviço de nuvem oferecer suporte a grupos de recursos. Para mais informações, consulte Serviços de nuvem compatíveis com grupos de recursos.

    Neste exemplo, para gerenciar o OSS, adicione a política de sistema AliyunOSSFullAccess à nova função.

Etapa 2: Vincular a função à função de destino

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

  2. Na barra de menus superior, selecione uma região. Na página Functions, localize a função de destino e clique em Configuration na coluna Actions.

  3. Na página de detalhes da função, selecione a aba Configuration. Na seção Advanced Settings, clique em Modify. No painel Advanced Settings, expanda a seção Permissions. Para Function Role, selecione a função mytestrole criada na Etapa 1. Em seguida, clique em Deploy.

Etapa 3: Testar a função

Verifique se a função associada à função mytestrole possui permissões para gerenciar o OSS.

  1. Na página de lista de funções, clique na função de destino. Na aba Code, clique na seta ao lado de Test Function e selecione Configure Test Parameters. Abaixo está um exemplo de evento de teste.

    {
       "endpoint": "http://oss-cn-hangzhou.aliyuncs.com",
       "bucket": "web****",
       "objectName": "myObj",
       "message": "your-message"
    }

    Neste exemplo, substitua o valor de bucket pelo nome do seu bucket, que deve estar na mesma região da função.

  2. Na aba Code, insira o código no editor de código e clique em Deploy.

    Este exemplo usa o runtime Python. O código usa as credenciais temporárias fornecidas pelo Function Compute para acessar o OSS.

    import json
    import oss2
    def handler(event, context):
        evt = json.loads(event)
        creds = context.credentials
        # Use the temporary credentials injected by Function Compute.
        # Your Alibaba Cloud account AccessKey pair grants full access to all API operations. 
        # We recommend that you use a RAM user for API access and routine O&M.
        # To prevent security risks, do not hardcode the AccessKey ID and AccessKey secret in your project code.
        # This example shows how to obtain the AccessKey ID and AccessKey secret from the context.
        auth = oss2.StsAuth(creds.access_key_id, creds.access_key_secret, creds.security_token)
        bucket = oss2.Bucket(auth, evt['endpoint'], evt['bucket'])
        bucket.put_object(evt['objectName'], evt['message'])
        return 'success'
  3. Clique em Test Function. Após a execução bem-sucedida da função, faça logon no console do OSS, localize o bucket de destino e verifique se o conteúdo do objeto de destino foi atualizado para o valor do parâmetro message do evento de teste.

Referências

  • O Function Compute 3.0 oferece suporte a funções vinculadas ao serviço para autorização de privilégio mínimo. Para obter detalhes sobre a política da função vinculada ao serviço, consulte AliyunServiceRoleForFC.

  • Para saber como configurar uma função de serviço, consulte Criar uma função.