Gerenciando suas variáveis de ambiente - AWS App Runner

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Gerenciando suas variáveis de ambiente

Gerencie as variáveis de ambiente do seu serviço App Runner usando um dos seguintes métodos:

Console do App Runner

Ao criar um serviço ou atualizar um serviço no console do App Runner, você pode adicionar variáveis de ambiente.

Adicionando variável de ambiente

Para adicionar uma variável de ambiente
  1. Abra o console do App Runner e, na lista Regiões, selecione seu Região da AWS.

  2. Com base no fato de você estar criando ou atualizando um serviço, execute uma das seguintes etapas:

    • Se você estiver criando um novo serviço, escolha Criar um serviço App Runner e acesse Configurar serviço.

    • Se você estiver atualizando um serviço existente, selecione o serviço que deseja atualizar e acesse a guia Configuração do serviço.

  3. Vá para Variáveis de ambiente - opcional em Configurações de serviço.

  4. Escolha qualquer uma das opções a seguir com base em sua necessidade:

    • Escolha Texto simples na fonte da variável de ambiente e insira seus pares de valores-chave em Nome da variável de ambiente e Valor da variável de ambiente, respectivamente.

      nota

      Escolha Texto sem formatação se quiser referenciar dados não confidenciais. Esses dados não são criptografados e são visíveis para outras pessoas na configuração do serviço App Runner e nos registros do aplicativo.

    • Escolha Secrets Manager na fonte da variável de ambiente para referenciar o segredo armazenado AWS Secrets Manager como variável de ambiente em seu serviço. Forneça o nome da variável de ambiente e o Nome de recurso da Amazon (ARN) do segredo que você está referenciando em Nome da variável de ambiente e Valor da variável de ambiente, respectivamente.

    • Escolha SSM Parameter Store na fonte da variável de ambiente para referenciar o parâmetro armazenado no SSM Parameter Store como variável de ambiente em seu serviço. Forneça o nome da variável de ambiente e o ARN do parâmetro que você está referenciando em Nome da variável de ambiente e Valor da variável de ambiente, respectivamente.

      nota
      • Você não pode atribuir PORT como nome uma variável de ambiente ao criar ou atualizar seu serviço App Runner. É uma variável de ambiente reservada para o serviço App Runner.

      • Se o parâmetro SSM Parameter Store estiver no Região da AWS mesmo serviço que você deseja iniciar, você pode especificar o Amazon Resource Name (ARN) completo ou o nome do parâmetro. Se o parâmetro estiver em uma região diferente, você precisará especificar o ARN completo.

      • Verifique se o parâmetro ao qual você está se referindo está na mesma conta do serviço que você está lançando ou atualizando. Atualmente, você não pode referenciar o parâmetro SSM Parameter Store em todas as contas.

  5. Escolha Adicionar variável de ambiente para fazer referência a outra variável de ambiente.

  6. Expanda os modelos de política do IAM para visualizar e copiar os modelos de política do IAM fornecidos para o repositório de parâmetros do SSM AWS Secrets Manager e do SSM. Você só precisa fazer isso se ainda não tiver atualizado a política do IAM da sua função de instância com as permissões necessárias. Para obter mais informações, consulte Permissões do .

Removendo a variável de ambiente

Antes de excluir uma variável de ambiente, certifique-se de que o código do aplicativo esteja atualizado para refletir a mesma. Se o código do aplicativo não for atualizado, seu serviço App Runner poderá falhar.

Para remover variáveis de ambiente
  1. Abra o console do App Runner e, na lista Regiões, selecione seu Região da AWS.

  2. Vá para a guia Configuração do serviço que você deseja atualizar.

  3. Vá para Variáveis de ambiente - opcional em Configurações de serviço.

  4. Escolha Remover ao lado da variável de ambiente que você deseja remover. Você recebe uma mensagem para confirmar a exclusão.

  5. Escolha Excluir.

API App Runner ou AWS CLI

Você pode referenciar dados confidenciais armazenados no Secrets Manager e no SSM Parameter Store adicionando-os como variáveis de ambiente em seu serviço.

nota

Atualize a política do IAM da sua função de instância para que o App Runner possa acessar segredos e parâmetros armazenados no Secrets Manager e no SSM Parameter Store. Para obter mais informações, consulte Permissões do .

Para referenciar segredos e configurações como variáveis de ambiente
  1. Crie um segredo ou configuração no Secrets Manager ou no SSM Parameter Store.

    Os exemplos a seguir mostram como criar um segredo e um parâmetro usando o SSM Parameter Store.

    exemplo Criando um segredo - Solicitação

    O exemplo a seguir mostra como criar um segredo que represente a credencial do banco de dados.

    aws secretsmanager create-secret \ —name DevRdsCredentials \ —description "Rds credentials for development account." \ —secret-string "{\"user\":\"diegor\",\"password\":\"EXAMPLE-PASSWORD\"}"
    exemplo Criando um segredo - Resposta
    arn:aws:secretsmanager:<region>:<aws_account_id>:secret:DevRdsCredentials
    exemplo Criando uma configuração - Solicitação

    O exemplo a seguir mostra como criar um parâmetro que represente a cadeia de conexão do RDS.

    aws systemsmanager put-parameter \ —name DevRdsConnectionString \ —value "mysql2://dev-mysqlcluster-rds.com:3306/diegor" \ —type "String" \ —description "Rds connection string for development account."
    exemplo Criando uma configuração - Resposta
    arn:aws:ssm:<region>:<aws_account_id>:parameter/DevRdsConnectionString
  2. Faça referência aos segredos e configurações que estão armazenados no Secrets Manager e no SSM Parameter Store adicionando-os como variáveis de ambiente. Você pode adicionar variáveis de ambiente ao criar ou atualizar seu serviço App Runner.

    Os exemplos a seguir mostram como referenciar segredos e configurações como variáveis de ambiente em um serviço App Runner baseado em código e em imagem.

    exemplo Arquivo.json de entrada para o serviço App Runner baseado em imagem
    { "ServiceName": "example-secrets", "SourceConfiguration": { "ImageRepository": { "ImageIdentifier": "<image-identifier>", "ImageConfiguration": { "Port": "<port>", "RuntimeEnvironmentSecrets": { "Credential1":"arn:aws:secretsmanager:<region>:<aws_account_id>:secret:XXXXXXXXXXXX", "Credential2":"arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter-name>" } }, "ImageRepositoryType": "ECR_PUBLIC" } }, "InstanceConfiguration": { "Cpu": "1 vCPU", "Memory": "3 GB", "InstanceRoleArn": "<instance-role-arn>" } }
    exemplo Serviço App Runner baseado em imagem — Solicitação
    aws apprunner create-service \ --cli-input-json file://input.json
    exemplo Serviço App Runner baseado em imagens — Resposta
    { ... "ImageRepository": { "ImageIdentifier":"<image-identifier>", "ImageConfiguration":{ "Port": "<port>", "RuntimeEnvironmentSecrets":{ "Credential1": "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:XXXXXXXXXXXX", "Credential2": "arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter-name>" }, "ImageRepositoryType":"ECR" } }, "InstanceConfiguration": { "CPU": "1 vCPU", "Memory": "3 GB", "InstanceRoleArn: "<instance-role-arn>" } ... }
    exemplo Arquivo.json de entrada para o serviço App Runner baseado em código
    { "ServiceName": "example-secrets", "SourceConfiguration": { "AuthenticationConfiguration": { "ConnectionArn": "arn:aws:apprunner:us-east-1:123456789012:connection/my-github-connection/XXXXXXXXXX" }, "AutoDeploymentsEnabled": false, "CodeRepository": { "RepositoryUrl": "<repository-url>", "SourceCodeVersion": { "Type": "BRANCH", "Value": "main" }, "CodeConfiguration": { "ConfigurationSource": "API", "CodeConfigurationValues": { "Runtime": "<runtime>", "BuildCommand": "<build-command>", "StartCommand": "<start-command>", "Port": "<port>", "RuntimeEnvironmentSecrets": { "Credential1":"arn:aws:secretsmanager:<region>:<aws_account_id>:secret:XXXXXXXXXXXX", "Credential2":"arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter-name>" } } } } }, "InstanceConfiguration": { "Cpu": "1 vCPU", "Memory": "3 GB", "InstanceRoleArn": "<instance-role-arn>" } }
    exemplo Serviço App Runner baseado em código — Solicitação
    aws apprunner create-service \ --cli-input-json file://input.json
    exemplo Serviço App Runner baseado em código — Resposta
    { ... "SourceConfiguration":{ "CodeRepository":{ "RepositoryUrl":"<repository-url>", "SourceCodeVersion":{ "Type":"Branch", "Value":"main" }, "CodeConfiguration":{ "ConfigurationSource":"API", "CodeConfigurationValues":{ "Runtime":"<runtime>", "BuildCommand":"<build-command>", "StartCommand":"<start-command>", "Port":"<port>", "RuntimeEnvironmentSecrets":{ "Credential1" : "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:XXXXXXXX", "Credential2" : "arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter-name>" } } } }, "InstanceConfiguration": { "CPU": "1 vCPU", "Memory": "3 GB", "InstanceRoleArn: "<instance-role-arn>" } ... }
  3. O apprunner.yaml modelo é atualizado para refletir os segredos adicionados.

    Veja a seguir um exemplo do apprunner.yaml modelo atualizado.

    exemplo apprunner.yaml
    version: 1.0 runtime: python3 build: commands: build: - python -m pip install flask run: command: python app.py network: port: 8080 env: - name: MY_VAR_EXAMPLE value: "example" secrets: - name: my-secret value-from: "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:XXXXXXXXXXXX" - name: my-parameter value-from: "arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter-name>" - name: my-parameter-only-name value-from: "parameter-name"