Crie um script de arranque
Esta página descreve como criar um script de arranque para o serviço Web e, em seguida, validar o script.
Para garantir que a apresentação do serviço Web não requer intervenção manual, tem de criar um script de arranque.O script de arranque realiza as seguintes tarefas:
- Lê os metadados da máquina virtual (VM) e define a variável de ambiente para metadados com o prefixo
CONNECTOR_ENV
. Todos os dados exigidos pelos consumidores são obtidos durante a criação da VM a partir do Marketplace e são definidos como variáveis de ambiente no Docker. Estas variáveis de ambiente podem ser lidas e processadas em conformidade na aplicação. - Inicia o contentor do Docker que contém o serviço Web com as variáveis de ambiente adequadas.
O código seguinte é um exemplo de script de arranque:
#!/bin/bash # 1. Fetch Metadata Keys metadata_keys_url="http://metadata.google.internal/computeMetadata/v1/instance/attributes/" metadata_keys=$(curl -H "Metadata-Flavor: Google" "$metadata_keys_url") # 2. Set Environment Variables for CONNECTOR_ENV Keys (with error handling) for key in $metadata_keys; do if [[ $key == CONNECTOR_ENV_* ]]; then metadata_value_url="http://metadata.google.internal/computeMetadata/v1/instance/attributes/$key" # Fetch value with error handling value=$(curl -H "Metadata-Flavor: Google" "$metadata_value_url" 2>/dev/null) if [[ -z "$value" ]]; then echo "Warning: No value found for key '$key'. Skipping." >&2 # Log the warning to stderr continue # Skip to the next iteration fi export "$key=$value" fi done # 3. Run Docker with Environment Variables sudo docker stop connector-service || true sudo docker run \ --name connector-service \ $(env | grep CONNECTOR_ENV_ | sed 's/=/="/;s/$/"/' | sed 's/^/-e /') \ -d -p $CONNECTOR_ENV_PORT:$CONNECTOR_ENV_PORT \ --restart=unless-stopped \ connector-container
Valide o script de arranque
- Na instância da VM, adicione os metadados da porta e todos os outros parâmetros necessários durante a criação da VM.
gcloud compute instances add-metadata VM_NAME \ --zone=VM_ZONE \ --project=PROJECT_NAME \ --metadata=CONNECTOR_ENV_PORT=8081
- Edite a VM a partir da IU e adicione o script de arranque mencionado na secção de automatização.
Também pode usar o seguinte comando gcloud:
gcloud compute instances add-metadata VM_NAME \ --zone=VM_ZONE \ --project=PROJECT_NAME \ --metadata-from-file startup-script=gcp-start.sh
- Depois de adicionar o script de arranque, use o SSH para aceder à VM e execute o seguinte comando:
sudo google_metadata_script_runner startup
- Execute o seguinte comando para garantir que o contentor do Docker está a ser executado na porta mencionada.
sudo docker ps
- Execute o seguinte comando para parar e remover o serviço Docker. Após os testes, o serviço não pode estar em execução na VM.
sudo docker rm -f connector-service
- Saiba como criar um script de implementação de VM.