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.
Atualize a CLI do Azure para a versão mais recente.
az upgrade
Registre o provedor de
Microsoft.App
recursos.az provider register --namespace Microsoft.App
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
Inicie sessão no Azure.
az login
Consulte sua ID de assinatura do Azure e defina o valor como uma variável.
SUBSCRIPTION_ID=$(az account show --query id --output tsv)
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.
Definir a subscrição que pretende utilizar para criar o grupo de recursos
az account set -s $SUBSCRIPTION_ID
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.
Consulte seu ID de objeto de usuário.
USER_OBJECT_ID=$(az ad signed-in-user show --query id -o tsv)
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 .
Obtenha um token de acesso.
JWT_ACCESS_TOKEN=$(az account get-access-token --resource https://dynamicsessions.io --query accessToken -o tsv)
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