Como usar bibliotecas do Go

É possível usar qualquer pacote compatível com linux/amd64 com instâncias em execução no ambiente flexível do App Engine. Nestas instruções, pressupomos que você esteja usando o comando go get para conseguir os pacotes diretamente de repositórios compatíveis, como GitHub, Bitbucket, LaunchPad etc.

Como declarar e gerenciar dependências

Os aplicativos do Go são organizados em pacotes que espelham a estrutura de diretórios dos arquivos de origem. Quando você usa uma declaração de importação, os caminhos relativos na importação são interpretados. Os caminhos de importação válidos são caminhos totalmente qualificados relativos ao subdiretório src de todos os diretórios especificados em GOPATH.

Por exemplo, se GOPATH for definido da seguinte maneira:

export GOPATH=/home/fred/go

E o arquivo src1-1.go no diretório do app de exemplo contém a seguinte declaração de importação:

import "foo/bar"

Consequentemente, a ferramenta gcloud procura o pacote "foo/bar" no seguinte local quando você executa ou implanta o app:

/home/fred/go/src/foo/bar

Se incluir as fontes de pacotes em GOPATH, você precisará tomar cuidado para não colocar o código-fonte no diretório do aplicativo (onde o arquivo app.yaml está localizado) ou abaixo dele. Se isso acontecer, problemas menores poderão ocorrer porque um pacote pode ser carregado duas vezes: uma vez para o caminho relativo ao diretório de um serviço e novamente para o caminho totalmente qualificado. Para evitar problemas, a ferramenta gcloud verificará o diretório do app e o GOPATH e, em seguida, informará um erro se um conflito for detectado.

Para melhores resultados, estas são as nossas recomendações:

  • Crie um diretório separado no diretório do app para cada serviço.
  • O diretório de cada serviço precisa conter o arquivo app.yaml do serviço e um ou mais arquivos .go.
  • Não inclua subdiretórios no diretório de um serviço.
  • O GOPATH precisa especificar um diretório que esteja fora do diretório do app e conter todas as dependências importadas pelo app.

Como fazer o download de pacotes obrigatórios

É possível usar o comando go get para fazer o download de pacotes. Por exemplo, para fazer o download de packagename no GitHub my_repo:

go get github.com/my_repo/packagename

Como implantar no App Engine

Para implantar o aplicativo no App Engine, você precisará implantar as bibliotecas exigidas pelo app com o código do aplicativo. Para detalhes completos, consulte Como implantar o aplicativo.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente flexível do App Engine para Go