Neste tutorial, descrevemos como configurar um bucket do Cloud Storage para hospedar um site estático de um domínio seu. As páginas da Web estáticas podem conter tecnologias de cliente, como HTML, CSS e JavaScript. Eles não podem conter conteúdo dinâmico, como scripts do servidor, como PHP.
Como o Cloud Storage não é compatível com domínios personalizados com HTTPS por conta própria, este tutorial usa o Cloud Storage com balanceamento de carga HTTP(S) externo para exibir conteúdo de um domínio personalizado por HTTPS. Para ver mais maneiras de exibir conteúdo de um domínio personalizado por HTTPS, consulte Solução de problemas de exibição de HTTPS. Também é possível usar o Cloud Storage para exibir conteúdo de domínio personalizado por HTTP, que não requer um balanceador de carga.
Para exemplos e dicas sobre páginas da Web estáticas, incluindo como hospedar recursos estáticos para um site dinâmico, consulte Página do site estático.
Objetivos
Neste tutorial, mostramos como fazer as seguintes tarefas:- Crie um bucket.
- fazer o upload de arquivos do seu site e compartilhá-los;
- Configure um balanceador de carga e um certificado SSL.
- Conecte o balanceador de carga ao bucket.
- Aponte seu domínio para o balanceador de carga usando um registro
A
. - testar o site.
Custos
Neste tutorial, usamos o seguinte componente faturável do Google Cloud:
Consulte a dica Como monitorar cobranças para mais detalhes sobre as cobranças que podem ser geradas ao hospedar um site estático.
Antes de começar
- Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
- Ative a API Compute Engine no projeto.
- Tenha os seguintes papéis do Identity and Access Management: Administrador do Storage e Administrador de rede do Compute
- Tenha um domínio próprio ou que você gerencia. Se você não tiver um domínio,
há muitos serviços pelos quais você pode registrar um novo domínio, como Cloud Domains.
Este tutorial usa o domínio
example.com
. - Tenha alguns arquivos de site que você quer exibir. Este tutorial funcionará melhor se você
tiver pelo menos uma página de índice (
index.html
) e uma página 404 (404.html
). - (Opcional) Se você quiser que o bucket do Cloud Storage tenha o mesmo
nome do domínio, será necessário
verificar se
você é proprietário ou administrador do domínio que será usado de dados. Certifique-se de estar
verificando o domínio de nível mais alto, como
example.com
, e não um subdomínio, comowww.example.com
. Se você comprou seu domínio pelo Cloud Domains, a confirmação será automática.
Crie um bucket
Para criar um bucket:
Console
- No Console do Google Cloud, acesse a página Buckets do Cloud Storage.
- Clique em + Criar.
- Na página Criar um bucket, insira as informações do seu bucket. Para ir à próxima
etapa, clique em Continuar.
- Em Nomear o bucket, insira um nome que atenda aos requisitos de nome de bucket.
- Em Escolha onde armazenar os dados, selecione o Tipo de local e o Local onde os dados do bucket serão armazenados permanentemente.
- Em Escolha uma classe de armazenamento para seus dados, selecione uma
classe de armazenamento padrão para o bucket ou selecione
Classe automática para gerenciamento automático da classe de armazenamento dos dados do
bucket.
Observação: o painel Estimativa de custo mensal no painel direito estima os custos mensais do bucket com base na classe e no local de armazenamento selecionados, bem como no tamanho e nas operações dos dados.
- Em Escolha como controlar o acesso a objetos, selecione se o bucket
aplica a prevenção de acesso público e
um modelo de Controle de acesso para os
objetos do bucket.
Observação: se a prevenção de acesso público já estiver aplicada pela política da organização do projeto, a opção Impedir acesso público ficará bloqueada.
- Em Escolher como proteger os dados do objeto, configure Ferramentas de proteção se quiser e selecione um método de Criptografia de dados.
- Clique em Criar.
Para saber como acessar informações detalhadas de erro sobre operações do Cloud Storage com falha no console do Google Cloud, consulte Solução de problemas.
Linha de comando
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
No ambiente de desenvolvimento, execute o comando
gcloud storage buckets create
:gcloud storage buckets create gs://BUCKET_NAME --location=BUCKET_LOCATION
Em que:
BUCKET_NAME
é o nome que você quer dar ao bucket, sujeito a requisitos de nomenclatura. Por exemplo,my-bucket
.BUCKET_LOCATION
é o local do bucket. Por exemplo,us-east1
.
Se a solicitação for bem-sucedida, o comando retornará a seguinte mensagem:
Creating gs://BUCKET_NAME/...
Para ter mais controle sobre a criação do bucket, defina as seguintes flags:
--project
: especifique o ID ou o número do projeto ao qual seu bucket será associado. Por exemplo,my-project
.--default-storage-class
: especifique a classe de armazenamento padrão do bucket. Por exemplo,STANDARD
.--soft-delete-duration
: especifique a duração da retenção da exclusão reversível do seu bucket. Por exemplo,2w1d
.--uniform-bucket-level-access
: ative o acesso uniforme no nível do bucket para seu bucket.
Para ver uma lista completa de opções de criação de buckets da gcloud, consulte opções de
buckets create
.Exemplo:
gcloud storage buckets create gs://BUCKET_NAME --project=PROJECT_ID --default-storage-class=STORAGE_CLASS --location=BUCKET_LOCATION --uniform-bucket-level-access
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage C#.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage Python.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Terraform
É possível usar um recurso Terraform para criar um bucket de armazenamento.
O exemplo a seguir inclui a atribuição de um sufixo de página de índice e uma página de erros personalizada. Para mais informações, consulte Atribuir páginas de especialidades.
APIs REST
API JSON
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.- Crie um arquivo JSON com as configurações do bucket, incluindo um
name
para o bucket. Consulte a documentação Buckets:Insert para ver uma lista completa de configurações. Veja a seguir configurações comuns a serem incluídas: BUCKET_NAME
é o nome que você quer dar ao bucket, sujeito a requisitos de nomenclatura. Por exemplo,my-bucket
.BUCKET_LOCATION
é o local em que você quer armazenar os dados de objeto do intervalo. Por exemplo,US-EAST1
.STORAGE_CLASS
é a classe de armazenamento padrão do bucket. Por exemplo,STANDARD
.- Use
cURL
para chamar a API JSON:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b?project=PROJECT_IDENTIFIER"
Em que:
JSON_FILE_NAME
é o nome do arquivo JSON criado na Etapa 2.PROJECT_IDENTIFIER
é o ID ou o número do projeto ao qual seu bucket será associado. Por exemplo,my-project
.
{ "name": "BUCKET_NAME", "location": "BUCKET_LOCATION", "storageClass": "STORAGE_CLASS", "iamConfiguration": { "uniformBucketLevelAccess": { "enabled": true }, } }
Em que:
API XML
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.- Crie um arquivo XML contendo as configurações do bucket. Consulte a documentação XML: criar um bucket para conferir uma lista completa de configurações. Veja a seguir configurações comuns a serem incluídas:
BUCKET_LOCATION
é o local em que você quer armazenar os dados de objeto do intervalo. Por exemplo,US-EAST1
.STORAGE_CLASS
é a classe de armazenamento padrão do bucket. Por exemplo,STANDARD
.- Use
cURL
para chamar a API XML:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-project-id: PROJECT_ID" \ "https://storage.googleapis.com/BUCKET_NAME"
Em que:
XML_FILE_NAME
é o nome do arquivo XML criado na Etapa 2.PROJECT_ID
é o ID do projeto ao qual o bucket será associado. Por exemplo,my-project
.BUCKET_NAME
é o nome que você quer dar ao bucket, sujeito a requisitos de nomenclatura. Por exemplo,my-bucket
.
<CreateBucketConfiguration> <LocationConstraint>BUCKET_LOCATION</LocationConstraint> <StorageClass>STORAGE_CLASS</StorageClass> </CreateBucketConfiguration>
Em que:
Fazer upload dos arquivos do seu site
Adicione os arquivos que você pretende que seu site veicule ao bucket:
Console
- No Console do Google Cloud, acesse a página Buckets do Cloud Storage.
Na lista de buckets, clique no nome do bucket que você criou.
A página Detalhes do bucket é aberta, com a guia Objetos selecionada.
Clique no botão Enviar arquivos.
Na caixa de diálogo de arquivos, procure e selecione o arquivo desejado.
Após a conclusão do upload, você verá o nome do arquivo com as informações do arquivo exibidas no bucket.
Para saber como acessar informações detalhadas de erro sobre operações do Cloud Storage com falha no console do Google Cloud, consulte Solução de problemas.
Linha de comando
Use o comando gcloud storage cp
para copiar arquivos para o bucket.
Por exemplo,
para copiar o arquivo index.html
do local atual Desktop
para o
bucket my-static-assets
:
gcloud storage cp Desktop/index.html gs://my-static-assets
Se funcionar, a resposta será parecida com esta:
Completed files 1/1 | 164.3kiB/164.3kiB
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage C#.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
No exemplo a seguir, é feito o upload de um objeto individual:
O exemplo a seguir faz upload de vários objetos simultaneamente:
No exemplo a seguir, todos os objetos com um prefixo comum são enviados simultaneamente:
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
No exemplo a seguir, é feito o upload de um objeto individual:
O exemplo a seguir faz upload de vários objetos simultaneamente:
No exemplo a seguir, todos os objetos com um prefixo comum são enviados simultaneamente:
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage Python.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
No exemplo a seguir, é feito o upload de um objeto individual:
O exemplo a seguir faz upload de vários objetos simultaneamente:
No exemplo a seguir, todos os objetos com um prefixo comum são enviados simultaneamente:
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Terraform
APIs REST
API JSON
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Use
cURL
(em inglês) para chamar a API JSON com uma solicitação do objetoPOST
. Para o arquivoindex.html
enviado a um bucket chamadomy-static-assets
:curl -X POST --data-binary @index.html \ -H "Content-Type: text/html" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/upload/storage/v1/b/my-static-assets/o?uploadType=media&name=index.html"
API XML
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Use
cURL
(em inglês) para chamar a API XML com uma solicitação do objetoPUT
. Para o arquivoindex.html
enviado a um bucket chamadomy-static-assets
:curl -X PUT --data-binary @index.html \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: text/html" \ "https://storage.googleapis.com/my-static-assets/index.html"
Compartilhe seus arquivos
Para ativar a leitura de todos os objetos no seu bucket para todos os usuários da Internet pública, siga estas etapas:
Console
- No Console do Google Cloud, acesse a página Buckets do Cloud Storage.
Na lista de buckets, clique no nome do bucket que você quer tornar público.
Selecione a guia Permissões na parte superior da página.
Se o painel Acesso público for Não público, clique no botão Remover a prevenção do acesso público e clique em Confirmar na caixa de diálogo exibida.
Clique no botão add_boxPermitir acesso.
A caixa de diálogo Adicionar participantes é exibida.
No campo Novos participantes, insira
allUsers
.No campo Selecionar uma função, selecione o submenu Cloud Storage e clique na opção Leitor de objetos do Storage.
Clique em Salvar.
Clique em Permitir acesso público.
Depois que o intervalo for compartilhado publicamente, aparecerá um ícone de link para cada objeto na coluna de acesso público. Clique nesse ícone para ver o URL do objeto.
Para saber como acessar informações detalhadas de erro sobre operações do Cloud Storage com falha no console do Google Cloud, consulte Solução de problemas.
Linha de comando
Use o comando buckets add-iam-policy-binding
:
gcloud storage buckets add-iam-policy-binding gs://my-static-assets --member=allUsers --role=roles/storage.objectViewer
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage C#.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage Python.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Terraform
APIs REST
API JSON
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Crie um arquivo JSON com as informações a seguir:
{ "bindings":[ { "role": "roles/storage.objectViewer", "members":["allUsers"] } ] }
Use
cURL
para chamar a API JSON com uma solicitação bucketPUT
:curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/iam"
Em que:
JSON_FILE_NAME
é o caminho para o arquivo JSON criado na Etapa 2.BUCKET_NAME
é o nome do bucket que contém os objetos que você quer tornar públicos. Por exemplo,my-static-assets
.
API XML
Não é possível ativar a leitura pública de todos os objetos em um bucket com
a API XML. Use o console do Google Cloud ou gcloud storage
ou defina ACLs para cada objeto.
Para tornar objetos individuais no seu bucket acessíveis publicamente, é necessário mudar o modo Controle de acesso do seu bucket para Detalhado. Normalmente é mais fácil e rápido tornar todos os arquivos do seu bucket acessíveis publicamente.
Os visitantes recebem um código de resposta http 403
ao solicitar o URL de um
arquivo não público ou inexistente. Consulte a próxima seção para obter informações sobre como
adicionar uma página de erro que usa um http 404
código de resposta.
Recomendado: atribuir páginas especializadas
É possível atribuir um sufixo de página de índice e uma página de erro personalizada, conhecidos como páginas especializadas. A atribuição de um deles é opcional, mas se você não atribuir um sufixo de página de índice e fizer upload da página de índice correspondente, os usuários que acessarem seu site de nível superior receberão uma árvore de documento XML contendo uma lista de objetos públicos no seu bucket.
Para mais informações sobre o comportamento de páginas especializadas, consulte Páginas especializadas.
Console
- No Console do Google Cloud, acesse a página Buckets do Cloud Storage.
Na lista de buckets, encontre o bucket que você criou.
Clique no menu flutuante "Bucket" (more_vert) associado ao bucket e selecione Editar configuração do site.
Na caixa de diálogo de configuração do site, especifique a página principal e a página de erro.
Clique em Salvar.
Para saber como acessar informações detalhadas de erro sobre operações do Cloud Storage com falha no console do Google Cloud, consulte Solução de problemas.
Linha de comando
Use o comando buckets update
com as sinalizações --web-main-page-suffix
e --web-error-page
.
No exemplo a seguir, o MainPageSuffix
está definido como index.html
e
NotFoundPage
está definido como 404.html
:
gcloud storage buckets update gs://my-static-assets --web-main-page-suffix=index.html --web-error-page=404.html
Se o comando estiver correto, ele retornará:
Updating gs://www.example.com/... Completed 1
Bibliotecas de cliente
C++
Para mais informações, consulte a documentação de referência da API Cloud Storage C++.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para mais informações, consulte a documentação de referência da API Cloud Storage C#.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para mais informações, consulte a documentação de referência da API Cloud Storage Go.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para mais informações, consulte a documentação de referência da API Cloud Storage Java.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para mais informações, consulte a documentação de referência da API Cloud Storage Node.js.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para mais informações, consulte a documentação de referência da API Cloud Storage PHP.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para mais informações, consulte a documentação de referência da API Cloud Storage Python.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para mais informações, consulte a documentação de referência da API Cloud Storage Ruby.
Para autenticar no Cloud Storage, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
APIs REST
API JSON
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Crie um arquivo JSON que defina as propriedades
mainPageSuffix
enotFoundPage
em um objetowebsite
para as páginas desejadas.No exemplo a seguir, o
mainPageSuffix
está definido comoindex.html
enotFoundPage
está definido como404.html
:{ "website":{ "mainPageSuffix": "index.html", "notFoundPage": "404.html" } }
Use
cURL
para chamar a API JSON com uma solicitação de bucketPATCH
. Para o bucketmy-static-assets
:curl -X PATCH --data-binary @web-config.json \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/my-static-assets"
API XML
Ter a gcloud CLI instalada e inicializadapara gerar um token de acesso para o cabeçalho
Authorization
.Como alternativa, é possível criar um token de acesso usando o OAuth 2.0 Playground e incluí-lo no cabeçalho
Authorization
.Crie um arquivo XML que defina os elementos
MainPageSuffix
eNotFoundPage
em um elementoWebsiteConfiguration
para as páginas desejadas.No exemplo a seguir, o
MainPageSuffix
está definido comoindex.html
eNotFoundPage
está definido como404.html
:<WebsiteConfiguration> <MainPageSuffix>index.html</MainPageSuffix> <NotFoundPage>404.html</NotFoundPage> </WebsiteConfiguration>
Use
cURL
(em inglês) para chamar a API XML com uma solicitação do bucketPUT
e o parâmetro de string de consultawebsiteConfig
. Paramy-static-assets
:curl -X PUT --data-binary @web-config.xml \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://storage.googleapis.com/my-static-assets?websiteConfig
Configurar o balanceador de carga e o certificado SSL
Para que o Cloud Storage seja compatível com domínios personalizados que usam HTTPS, você precisa configurar um certificado SSL anexado a um balanceador de carga HTTPS para exibir seu site com esse protocolo. Nesta seção, mostraremos como adicionar seu bucket ao back-end de um balanceador de carga e como adicionar um novo certificado SSL gerenciado pelo Google ao front-end do balanceador de carga.
Iniciar a configuração
No console do Google Cloud, acesse a página Balanceamento de carga.
- Clique em Criar balanceador de carga.
- Em Tipo de balanceador de carga, selecione Balanceador de carga de aplicativo (HTTP/HTTPS) e clique em Próxima.
- Em Voltado ao público ou interno, selecione Voltado ao público (externo) e clique em Próxima.
- Em Implantação global ou de região única, selecione Melhor para cargas de trabalho globais e clique em Próxima.
- Em Geração do balanceador de carga, selecione Balanceador de carga de aplicativo clássico e clique em Próxima.
- Clique em Configurar.
A janela de configuração do balanceador de carga é exibida.
Configuração básica
Antes de continuar com a configuração, insira um
Nome do balanceador de carga, como example-lb
.
Configure o front-end
Nesta seção, mostraremos como configurar o protocolo HTTPS e criar um certificado SSL. Também é possível selecionar um certificado existente ou fazer o upload de um certificado SSL autogerenciado.
- Clique em Configuração de front-end.
- (Opcional) Atribua um Nome à configuração de front-end.
- Em Protocolo, selecione HTTPS (inclui HTTP/2).
- Em Versão IP, selecione IPv4. Se você preferir o IPv6, consulte Encerramento do IPv6 para mais informações.
Para o campo Endereço IP:
- Na lista suspensa, clique em Criar endereço IP.
- No pop-up Reservar um novo endereço IP estático, insira um nome, como
example-ip
, para o Nome do endereço IP. - Clique em Reservar.
Em Porta, selecione 443.
No menu suspenso do campo Certificado, selecione Criar um novo certificado. O formulário de criação de certificado é exibido em um painel. Faça as configurações a seguir:
- Dê um nome ao seu certificado, como
example-ssl
. - Em Modo de criação, selecione Criar certificado gerenciado pelo Google.
- Em Domínios, insira o nome do seu site, como
www.example.com
. Se você quiser exibir seu conteúdo por meio de domínios adicionais, como o domínio raizexample.com
, pressione Enter para incluí-lo em outras linhas. Cada certificado tem um limite de 100 domínios.
- Dê um nome ao seu certificado, como
Clique em Criar.
(Opcional) Se você quiser que o Google Cloud configure automaticamente um balanceador de carga HTTP parcial para redirecionar tráfego HTTP, marque a caixa de seleção ao lado de Ativar redirecionamento HTTP para HTTPS.
Clique em Concluído.
Configure o back-end
- Clique em Configuração de back-end.
- Na lista suspensa Serviços e buckets de back-end, clique em Criar um bucket de back-end.
- Escolha um nome do bucket de back-end, como
example-bucket
. O nome escolhido pode ser diferente do nome do bucket criado anteriormente. - Clique em Procurar no campo Bucket do Cloud Storage.
- Selecione o bucket
my-static-assets
criado anteriormente e clique em Selecionar. - (Opcional) Se você quiser usar o Cloud CDN, marque a caixa de seleção Ativar o Cloud CDN e configure o Cloud CDN como quiser. O Cloud CDN pode gerar custos adicionais.
- Clique em Criar.
Configurar regras de roteamento
As regras de roteamento são os componentes do mapa de URL de um balanceador de carga de aplicativo externo. Neste tutorial, pule esta parte da configuração do balanceador de carga, porque ela é configurada automaticamente para usar o back-end que acabou de configurar.
Analise a configuração
- Clique em Analisar e finalizar.
- Revise Front-end, Regras de roteamento e Back-end.
- Clique em Criar.
Pode ser necessário aguardar alguns minutos para que o balanceador de carga seja criado.
Como conectar seu domínio ao balanceador de carga
Depois que o balanceador de carga for criado, clique no nome: example-lb
. Anote o endereço IP associado ao balanceador de carga: por exemplo, 30.90.80.100
. Para apontar seu domínio para o balanceador de carga, crie um registro A
usando o serviço de registro de domínio. Se você tiver adicionado vários domínios
ao seu certificado SSL, será necessário adicionar um registro A
para cada um deles, todos apontando
para o endereço IP do balanceador de carga. Por exemplo, para criar registros A
para
www.example.com
e example.com
:
NAME TYPE DATA www A 30.90.80.100 @ A 30.90.80.100
Recomendado: monitorar o status do certificado SSL
O Google Cloud pode levar de 60 a 90 minutos para provisionar o certificado e disponibilizar o site por meio do balanceador de carga. Para monitorar o status do seu certificado:
Console
- Acesse a página Balanceamento de carga no Console do Google Cloud.
Acesse balanceamento de carga - Clique no nome do balanceador de carga:
example-lb
. - Clique no nome do certificado SSL associado ao balanceador de carga:
example-ssl
. - As linhas Status e Status do domínio mostram o status do certificado. Ambos precisam estar ativos para que o certificado seja válido para seu site.
Linha de comando
Para verificar o status do certificado, execute o comando a seguir:
gcloud compute ssl-certificates describe CERTIFICATE_NAME \ --global \ --format="get(name,managed.status)"
Para verificar o status do domínio, execute o comando a seguir:
gcloud compute ssl-certificates describe CERTIFICATE_NAME \ --global \ --format="get(managed.domainStatus)"
Consulte Solução de problemas de certificados SSL para mais informações sobre o status do certificado.
Teste o site
Depois que o certificado SSL estiver ativo, verifique se o conteúdo é exibido a partir do
bucket acessando https://www.example.com/test.html
, em que test.html
é um
objeto armazenado no bucket que você está usando como back-end. Se você definir a propriedade
MainPageSuffix
, https://www.example.com
será direcionado para index.html
.
Limpar
Depois de concluir o tutorial, você pode limpar os recursos que criou para que eles parem de usar a cota e gerar cobranças. Nas seções a seguir, descrevemos como excluir ou desativar esses recursos.
Excluir o projeto
O jeito mais fácil de evitar cobranças é excluindo o projeto que você criou para o tutorial.
Para excluir o projeto:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Excluir o balanceador de carga e o bucket
Se você não quiser excluir todo o projeto, exclua o balanceador de carga e o bucket que criou para o tutorial:
- Acesse a página Balanceamento de carga no Console do Google Cloud.
Acesse balanceamento de carga - Marque a caixa de seleção ao lado de
example-lb
. - Clique em Excluir.
- (Opcional) Marque a caixa de seleção ao lado dos recursos que você quer excluir
com o balanceador de carga, como o bucket
my-static-assets
ou o certificado SSLexample-ssl
. - Clique em Excluir balanceador de carga ou Excluir balanceador de carga e os recursos selecionados.
Liberar um endereço IP reservado
Para excluir o endereço IP reservado usado no tutorial:
No console do Google Cloud, acesse a página Endereços IP externos.
Marque as caixas de seleção ao lado de
example-ip
.Clique em Liberar endereço estático.
Na janela de confirmação, clique em Excluir.
A seguir
- Veja exemplos e dicas para usar buckets para hospedar um site estático.
- Leia sobre a solução de problemas para hospedar um site estático.
- Saiba mais sobre hospedagem de recursos estáticos em um site dinâmico.
- Veja outras soluções de exibição da Web do Google Cloud.
Faça um teste
Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho do Cloud Storage em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
Faça uma avaliação gratuita do Cloud Storage