AZURE BLOB → STACKIT OBJECT STORAGE · HANDLEIDING
Azure Blob Storage naar STACKIT Object Storage
Een storage account met twee containers wordt twee STACKIT-buckets. Deze handleiding voert StackToIT uit op een kleine demo-omgeving, toont de Terraform die het schrijft en somt op wat u daarna handmatig instelt: versiebeheer, lifecycleregels, een kopie in een tweede regio en de overstap van de Azure Storage SDK naar een S3-client.
De demo-invoer en het concept
Een storage account met versiebeheer, soft delete, geo-redundante replicatie, twee privécontainers en één lifecycleregel, voor deze pagina geschreven en op 4 november 2026 beoordeeld door StackToIT. Links: de invoer. Rechts: de resourceblokken van de STACKIT-Terraform die de engine schreef; de beoordelingsopmerkingen boven elk blok in het bestand zijn hier weggelaten. De invoerblokken staan niet naast elkaar in main.tf, dus elk heeft een eigen paneel, letterlijk weergegeven.
resource "azurerm_storage_account" "media" {
name = "stmediagwc01"
resource_group_name = azurerm_resource_group.media.name
location = azurerm_resource_group.media.location
account_kind = "StorageV2"
account_tier = "Standard"
account_replication_type = "GRS"
access_tier = "Hot"
min_tls_version = "TLS1_2"
allow_nested_items_to_be_public = false
blob_properties {
versioning_enabled = true
delete_retention_policy {
days = 14
}
container_delete_retention_policy {
days = 7
}
}
}
resource "azurerm_storage_container" "invoices" {
name = "invoices"
storage_account_id = azurerm_storage_account.media.id
container_access_type = "private"
}resource "azurerm_storage_management_policy" "media" {
storage_account_id = azurerm_storage_account.media.id
rule {
name = "archive-old-exports"
enabled = true
filters {
prefix_match = ["exports/"]
blob_types = ["blockBlob"]
}
actions {
base_blob {
tier_to_cool_after_days_since_modification_greater_than = 30
delete_after_days_since_modification_greater_than = 365
}
}
}
}resource "stackit_objectstorage_bucket" "media" {
project_id = var.project_id
name = "stmediagwc01-exports"
}
resource "stackit_objectstorage_bucket" "media_2" {
project_id = var.project_id
name = "stmediagwc01-invoices"
}Eén account, één bucket per container
Azure groepeert containers onder een storage account. STACKIT Object Storage kent buckets, en buckets kunnen niet worden genest. De run schrijft voor elke container één bucket en noemt die naar het account en de container, hier stmediagwc01-exports en stmediagwc01-invoices.
Alleen naam en project
De bucketresource van de vastgezette STACKIT-provider heeft een naam en een instelling voor object lock. De accountsoort, de performancetier, de toegangstier, replicatie, versiebeheer en de lifecycleregel worden dus niet gegenereerd, en het bestand meldt dat bij elk ervan in een NOT CARRIED-opmerking.
De klasse is REPLATFORM
Azure Blob is niet S3-compatibel: de API, de authenticatie en het uploadprotocol verschillen. De run classificeert het account als REPLATFORM met zekerheidsniveau MEDIUM en vraagt u alle applicaties op te sporen die het gebruiken.
Voer het uit
Het commando leest de Terraform van de bron en schrijft het rapport, het concept en het uitvoeringspakket naar de uitvoermap. Het doet geen netwerkverzoeken en wijzigt niets in beide clouds. De samenvattingsregels hieronder zijn gekopieerd uit de console van deze run.
stacktoit assess . ./out --offline --no-validateSource 5 resources · 1 unit · visibility: Complete
Migration 1 drafted (of 1 units the draft considered)
Target STACKIT Terraform generated
Attention 1 unit to review · 5 open requests (1 block the draft, marked in inputs-template.yaml)Vijf resources, één eenheid
Het storage account, zijn twee containers en het lifecyclebeleid tellen als één eenheid, omdat ze allemaal naar dezelfde dienst verhuizen. Het concept bevat twee resourceblokken, één per container.
Eén vraag blokkeert het concept
De run vraagt eerst om de STACKIT-regio (eu01 of eu02). Zolang die niet in het invoerbestand is beantwoord, is het concept een voorstel dat niet zoals geschreven kan worden gepland.
Welk bestand beantwoordt welke vraag
- terraform/storage.tf
- De twee buckets, met een opmerking bij elke Azure-instelling die het concept niet overneemt
- migration/data-movement.md
- De tabel voor dataverplaatsing: de eenheid staat met het mechanisme UNKNOWN op de lijst tot een medewerker er een kiest
- execution/manual/actions.md
- De handmatige stappen met per stap een eigenaarsrol en de voorwaarde waaronder de stap klaar is
- assurance/critical-semantics.json
- De kritieke instellingen van het account en waarom elk nog openstaat
- review/inputs.yaml
- Ontwerpantwoorden, te beginnen met de doelregio
- review/decisions.yaml
- Beoordelingsregistraties voor de instellingen van het account, één per eigenaarsrol
Wat het concept met elke Azure-instelling doet
| Azure-instelling in de demo | Wat de run besliste | Uw actie |
|---|---|---|
| account_replication_type = GRS | Niet gegenereerd. STACKIT Object Storage kent geen beheerde replicatie tussen regio's; de run legt de instelling vast als UNSUPPORTED. | Bepaal of de tweede kopie nodig is. Zo ja, plan een synchronisatietaak naar een bucket in de tweede regio. |
| versioning_enabled = true | Niet gegenereerd: de bucketresource heeft geen instelling voor versiebeheer. | Schakel versiebeheer in via de S3-API zodra de bucket bestaat. Het kan later worden opgeschort maar niet worden uitgeschakeld. |
| delete_retention_policy, container_delete_retention_policy | Niet gegenereerd. De run vond voor STACKIT Object Storage geen soft delete of point-in-time-herstel. | Gebruik versiebeheer, en Object Lock waar verwijdering moet worden voorkomen. |
| storage_management_policy (na 30 dagen cool, na 365 verwijderen) | Niet gegenereerd: de bucketresource van de vastgezette provider heeft geen lifecycle-attribuut, en STACKIT documenteert geen opslagtiers, dus de overgang naar cool na 30 dagen heeft geen tegenhanger. | Stel de verwijdering na 365 dagen in als S3-lifecycleregel Expiration op de bucket (put-bucket-lifecycle-configuration, zie de STACKIT-how-to). Laat de tiering-stap vervallen en controleer dat geen regel data beschermde die u nu bewaart. |
| access_tier = Hot, account_tier = Standard | Niet gegenereerd; de accountsoort en de tiers hebben geen tegenhanger. | Geen, maar leg het vast in het architectuurdossier. |
| Accountnaam en containernamen | Overgenomen in de bucketnaam. Bucketnamen zijn uniek binnen een regio. | Bevestig de namen aan de hand van alles wat naar het oude account verwijst. |
Gelezen uit de opmerkingen in terraform/storage.tf en de bevindingen in assessment.json van deze run.
Verplaats de data
StackToIT verplaatst nooit data: het dataverplaatsingsbestand toont de eenheid en laat het mechanisme aan een medewerker over. Dit is de gebruikelijke volgorde.
1. Maak de buckets en inloggegevens aan
Pas het beoordeelde concept toe in een testproject. De run noemt credentialresources onder de doelen van het account, maar schrijft alleen de buckets, dus maak de access key en secret key voor het project zelf aan; STACKIT beheert credentials op projectniveau.
2. Schakel versiebeheer in vóór de eerste kopie
Voer het versiebeheercommando uit de STACKIT-documentatie uit op elke bucket die dat in Azure had, zodat elke latere overschrijving de oudere versie bewaart.
3. Kopieer de data
Gebruik een tool die beide protocollen spreekt. De onderstaande commando's zijn een voorbeeld met rclone; de run zelf wijst naar rclone of een kopieertool van Azure naar S3. Omvang, wijzigingsfrequentie en toegestane downtime bepalen de keuze tussen één kopie bij de cutover en herhaalde synchronisaties daarvoor.
4. Vergelijk en schakel daarna de applicaties om
Vergelijk aantallen en groottes van objecten per bucket en laat de applicaties daarna overstappen van de Azure Storage SDK naar een S3-SDK en van accountsleutels, SAS-URL's of Entra-tokens naar S3-toegangssleutels.
5. Bewaar de bron tot de controle is afgerond
Laat het Azure-account ongemoeid tot de nieuwe buckets echt verkeer hebben verwerkt. Zolang geen applicatie uitsluitend naar STACKIT heeft geschreven, is een rollback een configuratiewijziging; daarna kopieert u eerst de nieuwe objecten terug.
Commando's voor de kopie
Praktijk, geen uitvoer van StackToIT. De eerste paneel is het versiebeheercommando uit de STACKIT-documentatie voor het eu01-endpoint; de tweede is één manier om te kopiëren en te vergelijken met rclone, met de demonamen.
aws --endpoint-url https://object.storage.eu01.onstackit.cloud s3api put-bucket-versioning \
--bucket $BUCKET_NAME \
--versioning-configuration Status=Enabled# for example, with rclone (not run by StackToIT)
rclone config create azblob azureblob account=stmediagwc01 key="$AZURE_STORAGE_KEY"
rclone config create stackit s3 provider=Other \
endpoint=https://object.storage.eu01.onstackit.cloud \
access_key_id="$STACKIT_ACCESS_KEY" secret_access_key="$STACKIT_SECRET_KEY"
rclone sync azblob:invoices stackit:stmediagwc01-invoices
rclone sync azblob:exports stackit:stmediagwc01-exports
rclone check azblob:invoices stackit:stmediagwc01-invoices --size-onlyBeslis voordat u toepast
Regio en endpoint
Elke regio heeft een eigen endpoint, https://object.storage.eu01.onstackit.cloud voor eu01, en een bucket in eu01 is onafhankelijk van een bucket met dezelfde naam in eu02. Beantwoord eerst de vraag over de regio.
Adresseringsstijl
STACKIT ondersteunt virtual-hosted en path-style adressering. Controleer welke uw S3-client gebruikt en of die een eigen endpoint accepteert.
Geschiedenis
Bepaal of oude versies en blobs die via soft delete zijn verwijderd mee moeten. Een gewone synchronisatie van de actuele inhoud zorgt er niet voor dat STACKIT de geschiedenis bewaart die Azure bewaarde.
Openbare containers
De demo heeft er geen. Als uw omgeving containers met openbare leestoegang heeft, vereist de bucket een expliciet toegangsontwerp, omdat het concept het toegangsniveau niet overneemt.
Vragen van opslagteams
Is STACKIT Object Storage S3-compatibel?
Ja. De STACKIT-documentatie beschrijft een S3-compatibele API via HTTPS, dus standaard S3-tools kunnen ermee werken. Azure Blob Storage is niet S3-compatibel, en daarom wijzigen applicaties hun client en hun inloggegevens.
Maakt het concept de access keys aan?
Nee. Voor deze demo schrijft het alleen de twee buckets. Credentials worden op STACKIT op projectniveau beheerd, dus maak ze aan na het toepassen en geef ze bij de cutover aan de applicaties.
Wat gebeurt er met de lifecycleregel en met soft delete?
Geen van beide wordt gegenereerd, omdat de bucketresource zo'n instelling niet heeft, en de run toont beide als openstaande instellingen. STACKIT documenteert S3-lifecycleregels voor het laten verlopen van objecten en oude versies, dus de verwijdering na 365 dagen kan via de S3-API op de bucket worden ingesteld; de overgang naar een koelere tier heeft geen tegenhanger. Gebruik voor bescherming tegen verwijdering versiebeheer, en Object Lock waar het moet worden voorkomen.
Kan ik geo-redundante replicatie behouden?
Niet als beheerde instelling. STACKIT Object Storage kent in de bronnen die de run controleerde geen beheerde replicatie tussen regio's. Als een tweede kopie vereist is, levert een synchronisatietaak naar een bucket in de tweede regio die.
Bronnen
Uw volgende stap: STACKIT.
Vertel ons over uw omgeving, dan laten wij zien wat StackToIT daarvoor oplevert: doelarchitectuur, Terraform-artefacten en een gestructureerd migratieplan.
Laat uw gegevens achter, onze specialisten nemen contact met u op.
Liever zelf een e-mail sturen? connect@stacktoit.com
Hartelijk dank.
Uw verzoek is bij ons binnengekomen. Onze specialisten nemen contact met u op.