Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Usando variáveis de ambiente em AWS AppSync

Modo de foco
Usando variáveis de ambiente em AWS AppSync - AWS AppSync GraphQL

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á.

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á.

Você pode usar variáveis de ambiente para ajustar o comportamento de seus AWS AppSync resolvedores e funções sem atualizar seu código. As variáveis de ambiente são pares de strings armazenadas com sua configuração de API que são disponibilizadas para seus resolvedores e funções para serem aproveitadas em runtime. Elas são particularmente úteis para situações em que você precisa consultar dados de configuração que só estão disponíveis durante a configuração inicial, mas precisam ser usados por seus resolvedores e funções durante a execução. As variáveis de ambiente expõem os dados de configuração em seu código, reduzindo assim a necessidade de codificar esses valores.

nota

Para aumentar a segurança do banco de dados, recomendamos que você use o Secrets Manager ou o AWS Systems Manager Parameter Store, em vez de variáveis de ambiente, para armazenar credenciais ou informações confidenciais. Para aproveitar esse recurso, consulte Como invocar AWS serviços com fontes de dados AWS AppSync HTTP.

As variáveis de ambiente devem seguir vários comportamentos e regras para funcionar adequadamente:

  • Tanto os JavaScript resolvedores/funções quanto os modelos de VTL oferecem suporte a variáveis de ambiente.

  • As variáveis ​​de ambiente não são avaliadas antes da invocação da função.

  • As variáveis de ambiente oferecem suporte a valores de string.

  • Qualquer valor definido em uma variável de ambiente é considerado um literal de string e não expandido.

  • O ideal é que as avaliações de variáveis sejam realizadas no código da função.

Configurar variáveis de ambiente (console)

Você pode configurar variáveis de ambiente para sua API AWS AppSync GraphQL criando a variável e definindo seu par de valores-chave. Seus resolvedores e funções usarão o nome da chave da variável de ambiente para recuperar o valor em runtime. Para definir variáveis de ambiente no AWS AppSync console:

  1. Faça login no AWS Management Console e abra o AppSyncconsole.

  2. Na APIspágina, escolha o nome de uma API do GraphQL.

  3. Na página inicial da sua API, no painel de navegação, selecione Configurações.

  4. Em Variáveis de ambiente, escolha Adicionar variáveis de ambiente.

  5. Escolha Add environment variable (Adicionar variável de ambiente).

  6. Insira um par de chave e valor.

  7. Se necessário, repita as etapas 5 e 6 para adicionar mais valores de chave. Se precisar remover um valor de chave, escolha a opção Remover e a chave a ser removida.

  8. Selecione Enviar.

dica

Há algumas regras que você deve seguir ao criar chaves e valores:

  • As chaves devem começar com uma letra.

  • As chaves devem conter pelo menos dois caracteres.

  • As chaves só podem conter letras, números e o caractere de sublinhado (_).

  • Os valores podem conter até 512 caracteres.

  • Você pode configurar até 50 pares de chave-valor em uma API GraphQL.

Configurar variáveis de ambiente (API)

Para definir uma variável de ambiente usando APIs, você pode usarPutGraphqlApiEnvironmentVariables. O comando CLI correspondente é put-graphql-api-environment-variables.

Para recuperar uma variável de ambiente usando APIs, você pode usarGetGraphqlApiEnvironmentVariables. O comando CLI correspondente é get-graphql-api-environment-variables.

O comando deve conter o ID da API e a lista de variáveis de ambiente:

aws appsync put-graphql-api-environment-variables \ --api-id "<api-id>" \ --environment-variables '{"key1":"value1","key2":"value2", …}'

O exemplo a seguir define duas variáveis de ambiente em uma API com o ID abcdefghijklmnopqrstuvwxyz usando o comando put-graphql-api-environment-variables:

aws appsync put-graphql-api-environment-variables \ --api-id "abcdefghijklmnopqrstuvwxyz" \ --environment-variables '{"USER_TABLE":"users_prod","DEBUG":"true"}'

Observe que, quando você aplica variáveis de ambiente com o comando put-graphql-api-environment-variables, o conteúdo da estrutura das variáveis de ambiente é sobrescrito; isso significa que as variáveis de ambiente existentes serão perdidas. Para reter variáveis de ambiente existentes ao adicionar outras novas, inclua todos os pares de chave-valor existentes junto com os novos em sua solicitação. Usando o exemplo acima, se quiser adicionar "EMPTY":"", você pode fazer o seguinte:

aws appsync put-graphql-api-environment-variables \ --api-id "abcdefghijklmnopqrstuvwxyz" \ --environment-variables '{"USER_TABLE":"users_prod","DEBUG":"true", "EMPTY":""}'

Para recuperar a configuração atual, use o comando get-graphql-api-environment-variables:

aws appsync get-graphql-api-environment-variables --api-id "<api-id>"

Usando o exemplo acima, você poderia usar o comando a seguir:

aws appsync get-graphql-api-environment-variables --api-id "abcdefghijklmnopqrstuvwxyz"

O resultado mostrará a lista de variáveis de ambiente junto com seus valores de chave:

{ "environmentVariables": { "USER_TABLE": "users_prod", "DEBUG": "true", "EMPTY": "" } }

Configuração de variáveis de ambiente (CFN)

Você pode usar o modelo abaixo para criar variáveis de ambiente:

AWSTemplateFormatVersion: 2010-09-09 Resources: GraphQLApiWithEnvVariables: Type: "AWS::AppSync::GraphQLApi" Properties: Name: "MyApiWithEnvVars" AuthenticationType: "AWS_IAM" EnvironmentVariables: EnvKey1: "non-empty" EnvKey2: ""

variáveis de ambiente e mescladas APIs

As variáveis de ambiente definidas em Source também APIs estão disponíveis em seu Merged APIs. As variáveis de ambiente no Merged APIs são somente para leitura e não podem ser atualizadas. Observe que suas chaves variáveis de ambiente devem ser exclusivas em todo o Source APIs para que suas mesclagens sejam bem-sucedidas; chaves duplicadas sempre resultarão em uma falha na mesclagem.

Recuperar variáveis de ambiente

Para recuperar variáveis de ambiente em seu código de função, recupere o valor do ctx.env objeto em seus resolvedores e funções. Veja a seguir alguns exemplos.

Publishing to Amazon SNS

Neste exemplo, nosso resolvedor de HTTP envia uma mensagem para um tópico do Amazon SNS. O ARN do tópico só é conhecido depois que a pilha que define a API GraphQL e o tópico são implantados.

/** * Sends a publish request to the SNS topic */ export function request(ctx) { const TOPIC_ARN = ctx.env.TOPIC_ARN; const { input: values } = ctx.args; // this custom function sends values to the SNS topic return publishToSNSRequest(TOPIC_ARN, values); }
Transactions with DynamoDB

Neste exemplo, os nomes da tabela do DynamoDB serão diferentes se a API for implantada para preparação ou se já estiver em produção. O código do resolvedor não precisa mudar. Os valores das variáveis de ambiente são atualizados com base no local onde a API é implantada.

import { util } from '@aws-appsync/utils'; export function request(ctx) { const { authorId, postId } = ctx.args; return { operation: 'TransactWriteItems', transactItems: [ { table: ctx.env.POST_TABLE, operation: 'PutItem', key: util.dynamodb.toMapValues({ postId }), // rest of the configuration }, { table: ctx.env.AUTHOR_TABLE, operation: 'UpdateItem', key: util.dynamodb.toMapValues({ authorId }), // rest of the configuration }, ], }; }

Neste exemplo, nosso resolvedor de HTTP envia uma mensagem para um tópico do Amazon SNS. O ARN do tópico só é conhecido depois que a pilha que define a API GraphQL e o tópico são implantados.

/** * Sends a publish request to the SNS topic */ export function request(ctx) { const TOPIC_ARN = ctx.env.TOPIC_ARN; const { input: values } = ctx.args; // this custom function sends values to the SNS topic return publishToSNSRequest(TOPIC_ARN, values); }
PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.