Partilhar via


Tutorial: Executar código JavaScript em uma sessão do interpretador de código nos Aplicativos de Contêiner do Azure (visualização)

Este tutorial demonstra como executar código JavaScript em sessões dinâmicas de Aplicativos de Contêiner do Azure usando uma API HTTP.

Neste tutorial, você:

  • Criar uma nova sessão de interpretador de código
  • Definir o contexto de segurança apropriado para o pool de sessões
  • Passe o código JavaScript para que o aplicativo contêiner seja executado

Nota

O recurso de interpretador de código JavaScript nas sessões dinâmicas dos Aplicativos de Contêiner do Azure está atualmente em visualização. Para obter mais informações, consulte Limitações de visualização.

Pré-requisitos

Você precisa dos seguintes recursos antes de começar este tutorial.

Recurso Description
Conta do Azure Você precisa de uma conta do Azure com uma assinatura ativa. Se não tiver uma, pode criar uma gratuitamente.
CLI do Azure Instale a CLI do Azure.

Configurar

Comece preparando a CLI do Azure com as atualizações mais recentes e entrando no Azure.

  1. Atualize a CLI do Azure para a versão mais recente.

    az upgrade
    
  2. Registre o provedor de Microsoft.App recursos.

    az provider register --namespace Microsoft.App
    
  3. Instale a versão mais recente da extensão CLI dos Aplicativos de Contêiner do Azure.

    az extension add \
      --name containerapp \
      --allow-preview true --upgrade
    
  4. Inicie sessão no Azure.

    az login
    
  5. Consulte sua ID de assinatura do Azure e defina o valor como uma variável.

    SUBSCRIPTION_ID=$(az account show --query id --output tsv)
    
  6. Defina as variáveis usadas neste procedimento.

    Antes de executar o comando a seguir, certifique-se de substituir os espaços reservados cercados por <> seus próprios valores.

    RESOURCE_GROUP=<RESOURCE_GROUP_NAME>
    SESSION_POOL_NAME=<SESSION_POOL_NAME>
    LOCATION="northcentralus"
    

    Use essas variáveis para criar os recursos nas etapas a seguir.

  7. Definir a subscrição que pretende utilizar para criar o grupo de recursos

    az account set -s $SUBSCRIPTION_ID
    
  8. Crie um grupo de recursos.

    az group create \
      --name $RESOURCE_GROUP \
      --location $LOCATION
    

Criar um pool de sessões do interpretador de código

Use o az containerapp sessionpool create comando para criar um pool de sessões Node.js que é responsável pela execução de código JavaScript arbitrário.

az containerapp sessionpool create \
  --name $SESSION_POOL_NAME \
  --resource-group $RESOURCE_GROUP \
  --location $LOCATION \
  --max-sessions 5 \
  --network-status EgressEnabled \
  --container-type NodeLTS \
  --cooldown-period 300

Definir atribuições de função para APIs de execução de código

Para interagir com a API do pool de sessões, você deve usar uma identidade com a atribuição de Azure ContainerApps Session Executor função. Neste tutorial, você usa sua identidade de usuário do Microsoft Entra ID para chamar a API.

  1. Consulte seu ID de objeto de usuário.

    USER_OBJECT_ID=$(az ad signed-in-user show --query id -o tsv)
    
  2. Atribua a função à sua identidade.

    az role assignment create \
      --role "Azure ContainerApps Session Executor" \
      --assignee-object-id $USER_OBJECT_ID \
      --assignee-principal-type User \
      --scope "/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.App/sessionPools/$SESSION_POOL_NAME"
    

Obter um token ao portador

Para acesso direto à API do pool de sessões, gere um token de acesso para incluir no Authorization cabeçalho de suas solicitações. Verifique se o token contém uma declaração de audiência (aud) com o valor https://dynamicsessions.io. Para obter mais informações, consulte Regras de autenticação e autorização .

  1. Obtenha um token de acesso.

    JWT_ACCESS_TOKEN=$(az account get-access-token --resource https://dynamicsessions.io --query accessToken -o tsv)
    
  2. Crie uma variável para manter o cabeçalho da solicitação.

    AUTH_HEADER="Authorization: Bearer $JWT_ACCESS_TOKEN"
    

    Esse cabeçalho acompanha a solicitação que você faz ao ponto de extremidade do seu aplicativo.

Obter o ponto de extremidade de gerenciamento do pool de sessões

Use o comando a seguir para retornar o ponto de extremidade do aplicativo.

SESSION_POOL_MANAGEMENT_ENDPOINT=$(az containerapp sessionpool show -n $SESSION_POOL_NAME -g $RESOURCE_GROUP --query "properties.poolManagementEndpoint" -o tsv)

Este ponto de extremidade é o local onde você faz chamadas de API para executar sua carga de código na sessão do interpretador de código.

Execute código na sua sessão

Agora que você tem um token de portador para estabelecer o contexto de segurança e o ponto de extremidade do pool de sessões, você pode enviar uma solicitação ao aplicativo para executar seu bloco de código.

Execute o seguinte comando para executar o código JavaScript para registrar "hello world" em seu aplicativo.

curl -v -X 'POST' -H "$AUTH_HEADER" "$SESSION_POOL_MANAGEMENT_ENDPOINT/code/execute?api-version=2024-02-02-preview&identifier=test" -H 'Content-Type: application/json' -d '
{
    "properties": {
        "codeInputType": "inline",
        "executionType": "synchronous",
        "code": "console.log(\"hello-world\")"
    }
}'

Você deve ver uma saída semelhante ao exemplo a seguir.

{
  "properties": {
    "status": "Success",
    "stdout": "hello-world\n",
    "stderr": "",
    "executionResult": "",
    "executionTimeInMilliseconds": 5
  }
}

Você pode encontrar mais exemplos de API do interpretador de código no GitHub.

Clean up resources (Limpar recursos)

Os recursos criados neste tutorial têm um efeito na sua fatura do Azure. Se você não vai usar esses serviços a longo prazo, execute o seguinte comando para remover tudo o que foi criado neste tutorial.

az group delete \
  --resource-group $RESOURCE_GROUP

Próximos passos