Armazenamento externo
As gravações de sessões do OpenReplay são armazenadas por padrão na sua instância, mas o destino pode ser alterado para qualquer serviço de armazenamento de objetos compatível com S3, o que permite maior escalabilidade e menores custos de implantação.
Alterar o destino de armazenamento das gravações
Section titled Alterar o destino de armazenamento das gravaçõesAs gravações podem ser persistidas em qualquer destino de armazenamento de objetos, desde que seja compatível com S3, o que torna o OpenReplay compatível com todos os principais serviços de nuvem pública. Abaixo estão os passos para configurar um destino diferente para as suas gravações:
Criar os buckets necessários
Section titled Criar os buckets necessáriosVocê deve criar os buckets abaixo no seu serviço de armazenamento de objetos. Os nomes podem ser diferentes, mas usaremos as referências abaixo no restante desta seção:
openreplay-recordings: onde as gravações serão persistidasopenreplay-assets: onde os assets (como css e fontes) serão copiadosopenreplay-sourcemaps: para armazenar source maps (veja como fazer o upload deles)openreplay-spots: para armazenar as gravações do Spot
Depois que os buckets forem criados:
- Habilite o CORS para cada um dos buckets acima. Se você estiver na AWS, isso fica em ‘Permissions > Cross-origin resource sharing (CORS)’, usando a seguinte configuração:
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"GET"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": []
}
]
- Habilite o acesso público somente ao bucket
openreplay-assets. Este último contém apenas folhas de estilo, ícones e fontes necessários para o session replay funcionar corretamente. Se você estiver na AWS, primeiro acesse ‘Permissions > Block public access (bucket settings)’ e desative essa opção; depois, vá em ‘Permissions > Bucket policy’ e use a seguinte configuração:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::openreplay-assets/*"
}
]
}
- Por fim, gere as chaves de acesso adequadas somente para estes 4 buckets, para que o backend do OpenReplay possa acessá-los programaticamente e fazer upload de arquivos. As permissões S3 necessárias são:
"s3:PutObject",
"s3:GetObjectAcl",
"s3:GetObject",
"s3:GetObjectTagging",
"s3:ListBucket",
"s3:PutObjectTagging",
"s3:GetBucketLocation"
Atualizar os serviços de backend
Section titled Atualizar os serviços de backend- Faça login na sua instância do OpenReplay e execute
openreplay -epara atualizar as variáveis de ambiente abaixo na seçãos3:
| Variável | Descrição |
|---|---|
| accessKey | A chave de acesso do seu armazenamento de objetos (o seu IAM access key ID se você estiver na AWS; no Google Cloud, seria a sua chave HMAC para conta de serviço) |
| secretKey | O segredo do seu armazenamento de objetos |
| endpoint | A URL (começando com https) do seu serviço de armazenamento de objetos (por exemplo, consulte a lista de endpoints do S3 se você estiver na AWS; no Google Cloud Storage, seria https://storage.googleapis.com) |
| region | A região (se aplicável) dos seus buckets (por exemplo, se você estiver usando o AWS S3, algo como us-east-1) |
| assetsBucket | O nome do bucket de assets (por exemplo, openreplay-assets) |
| recordingsBucket | O nome do bucket de gravações (por exemplo, openreplay-recordings) |
| sourcemapsBucket | O nome do bucket de sourcemaps (por exemplo, openreplay-sourcemaps) |
| spotsBucket | O nome do bucket de spots (por exemplo, openreplay-spots) |
- Salve e saia usando
:wqpara que as alterações entrem em vigor
As sessões gravadas a partir de agora devem ser armazenadas e recuperadas (ao serem reproduzidas) a partir do seu novo destino/serviço de armazenamento de objetos.
Tem dúvidas?
Section titled Tem dúvidas?Em caso de qualquer problema, conecte-se ao nosso Slack e peça ajuda à nossa comunidade.