From 8627a4552c5feeb000d8ee644aa83492095c6b83 Mon Sep 17 00:00:00 2001 From: Kaiqian Yang Date: Fri, 2 Aug 2024 15:20:19 +0800 Subject: [PATCH 01/13] refactor azure-message-queue rule and add amqp & rabbit --- rules-catalogue/rules-catalogue.md | 6 +- ...dup.xml => azure-message-queue.windup.xml} | 84 +++++++++++++++++-- .../tests/azure-mq-config.windup.test.xml | 12 +-- 3 files changed, 88 insertions(+), 14 deletions(-) rename rules/rules-reviewed/azure/{azure-mq-config.windup.xml => azure-message-queue.windup.xml} (61%) diff --git a/rules-catalogue/rules-catalogue.md b/rules-catalogue/rules-catalogue.md index 8251565b..66cf87ac 100644 --- a/rules-catalogue/rules-catalogue.md +++ b/rules-catalogue/rules-catalogue.md @@ -17,9 +17,9 @@ | azure-java-version-02000 | Java version found to be lower than JAVA_8 | mandatory | 3 | X | X | X | X | azure-java-version.windup.xml | | azure-keystore-certificates-01000 | Java KeyStore file found | potential | 3 | X | X | X | X | azure-keystore-certificates.windup.xml | | azure-keystore-certificates-02000 | The application loads certificates into a KeyStore | potential | 3 | X | X | X | X | azure-keystore-certificates.windup.xml | -| azure-mq-config-kafka-01000 | Kafka connection string, username or password found in configuration file | information | 0 | X | X | X | X | azure-mq-config.windup.xml | -| azure-mq-config-rabbitmq-01000 | RabbitMQ connection string, username or password found in configuration file | information | 0 | X | X | X | X | azure-mq-config.windup.xml | -| azure-mq-config-artemis-01000 | ActiveMQ Artemis connection string, username or password found in configuration file | information | 0 | X | X | X | X | azure-mq-config.windup.xml | +| azure-message-queue-config-kafka-01000 | Kafka connection string, username or password found in configuration file | information | 0 | X | X | X | X | azure-message-queue-config.windup.xml | +| azure-message-queue-config-rabbitmq-01000 | RabbitMQ connection string, username or password found in configuration file | information | 0 | X | X | X | X | azure-message-queue-config.windup.xml | +| azure-message-queue-config-artemis-01000 | ActiveMQ Artemis connection string, username or password found in configuration file | information | 0 | X | X | X | X | azure-message-queue-config.windup.xml | | azure-password-01000 | Password found in configuration file | potential | 3 | X | X | X | X | azure-password.windup.xml | | azure-static-content-01000 | Static content found in the application | optional | 5 | X | X | X | X | azure-static-content.windup.xml | | azure-system-config-01000 | Environment variables/system properties | optional | 1 | X | X | X | X | azure-system-config.windup.xml | diff --git a/rules/rules-reviewed/azure/azure-mq-config.windup.xml b/rules/rules-reviewed/azure/azure-message-queue.windup.xml similarity index 61% rename from rules/rules-reviewed/azure/azure-mq-config.windup.xml rename to rules/rules-reviewed/azure/azure-message-queue.windup.xml index 33101c9d..adccfddc 100644 --- a/rules/rules-reviewed/azure/azure-mq-config.windup.xml +++ b/rules/rules-reviewed/azure/azure-message-queue.windup.xml @@ -1,11 +1,11 @@ - - This ruleset identifies message queue connection strings, usernames, or passwords. + This ruleset identifies message queue. @@ -17,7 +17,7 @@ message queue - + @@ -47,7 +47,7 @@ - + @@ -78,7 +78,7 @@ - + @@ -109,5 +109,79 @@ + + + + + + + + + The application uses Spring RabbitMQ based on Spring AMQP. To migrate a Java application that uses Spring RabbitMQ to Azure, you can follow these recommendations: + + * Provision **Azure Service Bus**: Replace RabbitMQ with Azure Service Bus, a fully managed messaging service that offers reliable message queuing and publish/subscribe capabilities. + + * Update the application's **messaging connection** details: Modify the Java application's configuration updating the connection information and message queues/topics. + + * Configure Azure Service Bus **queues/topics**: Create appropriate queues or topics in Azure Service Bus to align with your application's messaging requirements. Configure access control and security settings as needed. + + + + RabbitMQ Client + + RabbitMQ Client + + + + + + + + + + + The application uses Spring AMQP in code. To migrate a Java application that uses Spring AMQP to Azure, you can follow these recommendations: + + * Provision **Azure Service Bus**: Use Azure Service Bus, a fully managed messaging service that offers reliable message queuing and publish/subscribe capabilities. + + * Update the application's **messaging connection** details: Modify the Java application's configuration updating the connection information and message queues/topics. + + * Configure Azure Service Bus **queues/topics**: Create appropriate queues or topics in Azure Service Bus to align with your application's messaging requirements. Configure access control and security settings as needed. + + + + AMQP Client + + AMQP Client + + + + + + + + + + + + + + + + The application uses Spring AMQP dependency. To migrate a Java application that uses Spring AMQP to Azure, you can follow these recommendations: + + * Provision **Azure Service Bus**: Use Azure Service Bus, a fully managed messaging service that offers reliable message queuing and publish/subscribe capabilities. + + * Update the application's **messaging connection** details: Modify the Java application's configuration updating the connection information and message queues/topics. + + * Configure Azure Service Bus **queues/topics**: Create appropriate queues or topics in Azure Service Bus to align with your application's messaging requirements. Configure access control and security settings as needed. + + + + AMQP Client + + AMQP Client + + diff --git a/rules/rules-reviewed/azure/tests/azure-mq-config.windup.test.xml b/rules/rules-reviewed/azure/tests/azure-mq-config.windup.test.xml index 4fe6238b..9e45c725 100644 --- a/rules/rules-reviewed/azure/tests/azure-mq-config.windup.test.xml +++ b/rules/rules-reviewed/azure/tests/azure-mq-config.windup.test.xml @@ -1,13 +1,13 @@ - - data/azure-mq-config - ../azure-mq-config.windup.xml + data/azure-message-queue-config + ../azure-message-queue-config.windup.xml - + @@ -19,7 +19,7 @@ - + @@ -31,7 +31,7 @@ - + From 3e96a8a941bd2d9d4e729e03c4769469106180a9 Mon Sep 17 00:00:00 2001 From: kaiqianyang Date: Wed, 7 Aug 2024 14:30:18 +0800 Subject: [PATCH 02/13] add test --- .../azure/azure-message-queue.windup.xml | 4 +- ...ml => azure-message-queue.windup.test.xml} | 43 ++++++++++++--- .../azure-message-queue/RabbitRunner.java | 30 +++++++++++ .../application-prod.properties | 0 .../application.properties | 0 .../application.yaml | 0 .../tests/data/azure-message-queue/pom.xml | 53 +++++++++++++++++++ 7 files changed, 122 insertions(+), 8 deletions(-) rename rules/rules-reviewed/azure/tests/{azure-mq-config.windup.test.xml => azure-message-queue.windup.test.xml} (51%) create mode 100644 rules/rules-reviewed/azure/tests/data/azure-message-queue/RabbitRunner.java rename rules/rules-reviewed/azure/tests/data/{azure-mq-config => azure-message-queue}/application-prod.properties (100%) rename rules/rules-reviewed/azure/tests/data/{azure-mq-config => azure-message-queue}/application.properties (100%) rename rules/rules-reviewed/azure/tests/data/{azure-mq-config => azure-message-queue}/application.yaml (100%) create mode 100644 rules/rules-reviewed/azure/tests/data/azure-message-queue/pom.xml diff --git a/rules/rules-reviewed/azure/azure-message-queue.windup.xml b/rules/rules-reviewed/azure/azure-message-queue.windup.xml index adccfddc..9edac724 100644 --- a/rules/rules-reviewed/azure/azure-message-queue.windup.xml +++ b/rules/rules-reviewed/azure/azure-message-queue.windup.xml @@ -1,5 +1,5 @@ - @@ -117,7 +117,7 @@ - The application uses Spring RabbitMQ based on Spring AMQP. To migrate a Java application that uses Spring RabbitMQ to Azure, you can follow these recommendations: + The application uses Spring RabbitMQ based on Spring AMQP in code. To migrate a Java application that uses Spring RabbitMQ to Azure, you can follow these recommendations: * Provision **Azure Service Bus**: Replace RabbitMQ with Azure Service Bus, a fully managed messaging service that offers reliable message queuing and publish/subscribe capabilities. diff --git a/rules/rules-reviewed/azure/tests/azure-mq-config.windup.test.xml b/rules/rules-reviewed/azure/tests/azure-message-queue.windup.test.xml similarity index 51% rename from rules/rules-reviewed/azure/tests/azure-mq-config.windup.test.xml rename to rules/rules-reviewed/azure/tests/azure-message-queue.windup.test.xml index 9e45c725..067a5472 100644 --- a/rules/rules-reviewed/azure/tests/azure-mq-config.windup.test.xml +++ b/rules/rules-reviewed/azure/tests/azure-message-queue.windup.test.xml @@ -1,10 +1,10 @@ - - data/azure-message-queue-config - ../azure-message-queue-config.windup.xml + data/azure-message-queue + ../azure-message-queue.windup.xml @@ -16,7 +16,7 @@ - + @@ -28,7 +28,7 @@ - + @@ -40,9 +40,40 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/rules/rules-reviewed/azure/tests/data/azure-message-queue/RabbitRunner.java b/rules/rules-reviewed/azure/tests/data/azure-message-queue/RabbitRunner.java new file mode 100644 index 00000000..01823069 --- /dev/null +++ b/rules/rules-reviewed/azure/tests/data/azure-message-queue/RabbitRunner.java @@ -0,0 +1,30 @@ +package com.example.messagingrabbitmq; + +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.boot.CommandLineRunner; +import org.springframework.stereotype.Component; + +import java.util.concurrent.TimeUnit; + +import static com.example.messagingrabbitmq.MessagingRabbitmqApplication.routingKey; + +@Component +public class RabbitRunner implements CommandLineRunner { + + private final RabbitTemplate rabbitTemplate; + private final Receiver receiver; + + public Runner(Receiver receiver, RabbitTemplate rabbitTemplate) { + this.receiver = receiver; + this.rabbitTemplate = rabbitTemplate; + } + + @Override + public void run(String... args) throws Exception { + for (int i = 0; i < 10; i++) { + System.out.println("Sending message..."+i); + rabbitTemplate.convertAndSend(MessagingRabbitmqApplication.topicExchangeName, routingKey, "Hello from RabbitMQ!"+i); + } + } + +} diff --git a/rules/rules-reviewed/azure/tests/data/azure-mq-config/application-prod.properties b/rules/rules-reviewed/azure/tests/data/azure-message-queue/application-prod.properties similarity index 100% rename from rules/rules-reviewed/azure/tests/data/azure-mq-config/application-prod.properties rename to rules/rules-reviewed/azure/tests/data/azure-message-queue/application-prod.properties diff --git a/rules/rules-reviewed/azure/tests/data/azure-mq-config/application.properties b/rules/rules-reviewed/azure/tests/data/azure-message-queue/application.properties similarity index 100% rename from rules/rules-reviewed/azure/tests/data/azure-mq-config/application.properties rename to rules/rules-reviewed/azure/tests/data/azure-message-queue/application.properties diff --git a/rules/rules-reviewed/azure/tests/data/azure-mq-config/application.yaml b/rules/rules-reviewed/azure/tests/data/azure-message-queue/application.yaml similarity index 100% rename from rules/rules-reviewed/azure/tests/data/azure-mq-config/application.yaml rename to rules/rules-reviewed/azure/tests/data/azure-message-queue/application.yaml diff --git a/rules/rules-reviewed/azure/tests/data/azure-message-queue/pom.xml b/rules/rules-reviewed/azure/tests/data/azure-message-queue/pom.xml new file mode 100644 index 00000000..9ed350ef --- /dev/null +++ b/rules/rules-reviewed/azure/tests/data/azure-message-queue/pom.xml @@ -0,0 +1,53 @@ + + + 4.0.0 + + com.example + spring-rabbit-json + 3.1.0 + jar + + spring-rabbit-json + Receiving JSON from non-Spring Applications + + + org.springframework.boot + spring-boot-starter-parent + 3.2.0 + + + + + UTF-8 + UTF-8 + 17 + ${project.version} + + + + + org.springframework.boot + spring-boot-starter-amqp + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + + repository.springframework.maven.snapshots + Spring Framework Repository Including Snapshots + https://repo.spring.io/snapshot + + true + + + + From 0c45e93d5f73bdcf67f12715a5328110ae024870 Mon Sep 17 00:00:00 2001 From: showpune Date: Tue, 13 Aug 2024 14:05:32 +0800 Subject: [PATCH 03/13] add azure service bus detection --- .../azure/azure-message-queue.windup.xml | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/rules/rules-reviewed/azure/azure-message-queue.windup.xml b/rules/rules-reviewed/azure/azure-message-queue.windup.xml index 9edac724..bf130781 100644 --- a/rules/rules-reviewed/azure/azure-message-queue.windup.xml +++ b/rules/rules-reviewed/azure/azure-message-queue.windup.xml @@ -183,5 +183,31 @@ AMQP Client + + + + + + + + + + + + The application uses Spring Azure Service Bus dependency. you can follow these recommendations: + + * Provision **Azure Service Bus**: Use Azure Service Bus, a fully managed messaging service that offers reliable message queuing and publish/subscribe capabilities. + + * Update the application's **messaging connection** details: Modify the Java application's configuration updating the connection information and message queues/topics. + + * Configure Azure Service Bus **queues/topics**: Create appropriate queues or topics in Azure Service Bus to align with your application's messaging requirements. Configure access control and security settings as needed. + + + + Azure Service Bus Client + + Azure Service Bus Client + + From 1611110794315ac2b24dd30cfbe1d1cd7947366a Mon Sep 17 00:00:00 2001 From: KaiqianYang <89442934+KaiqianYang@users.noreply.github.com> Date: Tue, 13 Aug 2024 14:08:48 +0800 Subject: [PATCH 04/13] revert change in rules-catalogue.md because it's auto generated --- rules-catalogue/rules-catalogue.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rules-catalogue/rules-catalogue.md b/rules-catalogue/rules-catalogue.md index 66cf87ac..8251565b 100644 --- a/rules-catalogue/rules-catalogue.md +++ b/rules-catalogue/rules-catalogue.md @@ -17,9 +17,9 @@ | azure-java-version-02000 | Java version found to be lower than JAVA_8 | mandatory | 3 | X | X | X | X | azure-java-version.windup.xml | | azure-keystore-certificates-01000 | Java KeyStore file found | potential | 3 | X | X | X | X | azure-keystore-certificates.windup.xml | | azure-keystore-certificates-02000 | The application loads certificates into a KeyStore | potential | 3 | X | X | X | X | azure-keystore-certificates.windup.xml | -| azure-message-queue-config-kafka-01000 | Kafka connection string, username or password found in configuration file | information | 0 | X | X | X | X | azure-message-queue-config.windup.xml | -| azure-message-queue-config-rabbitmq-01000 | RabbitMQ connection string, username or password found in configuration file | information | 0 | X | X | X | X | azure-message-queue-config.windup.xml | -| azure-message-queue-config-artemis-01000 | ActiveMQ Artemis connection string, username or password found in configuration file | information | 0 | X | X | X | X | azure-message-queue-config.windup.xml | +| azure-mq-config-kafka-01000 | Kafka connection string, username or password found in configuration file | information | 0 | X | X | X | X | azure-mq-config.windup.xml | +| azure-mq-config-rabbitmq-01000 | RabbitMQ connection string, username or password found in configuration file | information | 0 | X | X | X | X | azure-mq-config.windup.xml | +| azure-mq-config-artemis-01000 | ActiveMQ Artemis connection string, username or password found in configuration file | information | 0 | X | X | X | X | azure-mq-config.windup.xml | | azure-password-01000 | Password found in configuration file | potential | 3 | X | X | X | X | azure-password.windup.xml | | azure-static-content-01000 | Static content found in the application | optional | 5 | X | X | X | X | azure-static-content.windup.xml | | azure-system-config-01000 | Environment variables/system properties | optional | 1 | X | X | X | X | azure-system-config.windup.xml | From 910852b0a480ff532604222c6a2df2585a9ee7f1 Mon Sep 17 00:00:00 2001 From: showpune Date: Tue, 13 Aug 2024 14:09:26 +0800 Subject: [PATCH 05/13] add service bus --- rules/rules-reviewed/azure/azure-message-queue.windup.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rules/rules-reviewed/azure/azure-message-queue.windup.xml b/rules/rules-reviewed/azure/azure-message-queue.windup.xml index bf130781..e0842612 100644 --- a/rules/rules-reviewed/azure/azure-message-queue.windup.xml +++ b/rules/rules-reviewed/azure/azure-message-queue.windup.xml @@ -183,7 +183,7 @@ AMQP Client - + From 4449217e00ebbb0773d1e69e337ea4be622f16b8 Mon Sep 17 00:00:00 2001 From: KaiqianYang <89442934+KaiqianYang@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:21:55 +0800 Subject: [PATCH 06/13] add servicebus configuration detect --- .../azure/azure-message-queue.windup.xml | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/rules/rules-reviewed/azure/azure-message-queue.windup.xml b/rules/rules-reviewed/azure/azure-message-queue.windup.xml index e0842612..42ae6aed 100644 --- a/rules/rules-reviewed/azure/azure-message-queue.windup.xml +++ b/rules/rules-reviewed/azure/azure-message-queue.windup.xml @@ -209,5 +209,35 @@ Azure Service Bus Client + + + + + + + + + + The application uses Azure Service Bus Spring configurations. you can follow these recommendations: + + * Provision **Azure Service Bus**: Use Azure Service Bus, a fully managed messaging service that offers reliable message queuing and publish/subscribe capabilities. + + * Update the application's **messaging connection** details: Modify the Java application's configuration updating the connection information and message queues/topics. + + * Configure Azure Service Bus **queues/topics**: Create appropriate queues or topics in Azure Service Bus to align with your application's messaging requirements. Configure access control and security settings as needed. + + + + Azure Service Bus Client + + Azure Service Bus Client + + + + + + + + From fd211f16f5d96389ebe8cc178e97feac57edfb51 Mon Sep 17 00:00:00 2001 From: Kaiqian Yang Date: Wed, 14 Aug 2024 15:40:10 +0800 Subject: [PATCH 07/13] add amqp dependency detect in gradle --- rules/rules-reviewed/azure/azure-message-queue.windup.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/rules/rules-reviewed/azure/azure-message-queue.windup.xml b/rules/rules-reviewed/azure/azure-message-queue.windup.xml index 42ae6aed..db32d613 100644 --- a/rules/rules-reviewed/azure/azure-message-queue.windup.xml +++ b/rules/rules-reviewed/azure/azure-message-queue.windup.xml @@ -163,6 +163,7 @@ + From 2e4615e0b7486084ed03d5f828d74ee070e49e86 Mon Sep 17 00:00:00 2001 From: Kaiqian Yang Date: Wed, 14 Aug 2024 16:36:06 +0800 Subject: [PATCH 08/13] minor update --- rules/rules-reviewed/azure/azure-message-queue.windup.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rules/rules-reviewed/azure/azure-message-queue.windup.xml b/rules/rules-reviewed/azure/azure-message-queue.windup.xml index db32d613..618a461d 100644 --- a/rules/rules-reviewed/azure/azure-message-queue.windup.xml +++ b/rules/rules-reviewed/azure/azure-message-queue.windup.xml @@ -193,9 +193,9 @@ - + - The application uses Spring Azure Service Bus dependency. you can follow these recommendations: + The application uses Azure Service Bus Spring dependency. you can follow these recommendations: * Provision **Azure Service Bus**: Use Azure Service Bus, a fully managed messaging service that offers reliable message queuing and publish/subscribe capabilities. From 5d30f4a060a6b41b0a8a4b4c08c3d76c58cdedca Mon Sep 17 00:00:00 2001 From: Kaiqian Yang Date: Fri, 16 Aug 2024 16:08:39 +0800 Subject: [PATCH 09/13] add mysql and postgresql dependency detect --- .../technology-usage/database.windup.xml | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/rules/rules-overridden-azure/technology-usage/database.windup.xml b/rules/rules-overridden-azure/technology-usage/database.windup.xml index 840f2fea..9d08bdff 100644 --- a/rules/rules-overridden-azure/technology-usage/database.windup.xml +++ b/rules/rules-overridden-azure/technology-usage/database.windup.xml @@ -16,7 +16,13 @@ - + + + + + + + @@ -46,7 +52,13 @@ - + + + + + + + From db07cb744b476539db180093146a7160b5dda5b3 Mon Sep 17 00:00:00 2001 From: Kaiqian Yang Date: Fri, 30 Aug 2024 14:08:34 +0800 Subject: [PATCH 10/13] change message queue ruleset tag --- rules/rules-reviewed/azure/azure-message-queue.windup.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rules/rules-reviewed/azure/azure-message-queue.windup.xml b/rules/rules-reviewed/azure/azure-message-queue.windup.xml index 618a461d..8b48ced7 100644 --- a/rules/rules-reviewed/azure/azure-message-queue.windup.xml +++ b/rules/rules-reviewed/azure/azure-message-queue.windup.xml @@ -14,7 +14,7 @@ - message queue + message-queue From 87bb247fc672ef8a46e75daec72bb9597b0d9660 Mon Sep 17 00:00:00 2001 From: kaiqianyang Date: Mon, 9 Sep 2024 11:21:47 +0800 Subject: [PATCH 11/13] update s3 rule --- .../azure/azure-aws-config.windup.xml | 57 ++++++++++++++----- 1 file changed, 44 insertions(+), 13 deletions(-) diff --git a/rules/rules-reviewed/azure/azure-aws-config.windup.xml b/rules/rules-reviewed/azure/azure-aws-config.windup.xml index 4694cd3e..545c2912 100644 --- a/rules/rules-reviewed/azure/azure-aws-config.windup.xml +++ b/rules/rules-reviewed/azure/azure-aws-config.windup.xml @@ -66,25 +66,58 @@ + - - IMPORT - - + - - IMPORT - + + + + + + + + + + + The application contains AWS S3 usage. Consider using Azure Blob Storage instead. + + * Provision **Azure Blob Storage**: Create an Azure Blob Storage account in the Azure portal. Choose the appropriate storage tier (Hot, Cool, or Archive) based on your application's data access patterns and cost considerations. + + * **Update application code**: Modify the Java application's code to replace AWS SDK calls with the equivalent Azure Storage SDK calls for Azure Blob Storage. Update the code to authenticate and interact with Azure Blob Storage using the Azure SDK for Java. + + * **Map S3 functionality** to Azure Blob Storage: Understand the differences between AWS S3 and Azure Blob Storage, and adjust your application logic accordingly. Map S3 concepts (buckets, objects, permissions, etc.) to their Azure Blob Storage equivalents (containers, blobs, shared access signatures, etc.). + + * **Migrate data** from S3 to Azure Blob Storage: Plan and execute the migration of your data from AWS S3 to Azure Blob Storage. You can use Azure Storage Data Transfer Tool, AzCopy, or other migration tools to copy the data from S3 buckets to Azure Blob Storage containers. + + * Update **access permissions**: Adjust the access permissions and policies in Azure Blob Storage to match your application's requirements. Azure provides various options for controlling access, including shared access signatures (SAS), Azure AD authentication, and role-based access control (RBAC). + + * Validate functionality and **performance**: Thoroughly test the updated application to ensure that it can read from and write to Azure Blob Storage correctly. Validate the performance of data transfer and any other operations to ensure they meet your application's requirements. + + + + + storage + + + + + + + + + + - + - The application contains AWS S3 configuration. Consider using Azure Blob Storage instead. + The application contains AWS S3 storage operations. Consider using Azure Blob Storage instead. * Provision **Azure Blob Storage**: Create an Azure Blob Storage account in the Azure portal. Choose the appropriate storage tier (Hot, Cool, or Archive) based on your application's data access patterns and cost considerations. @@ -104,16 +137,14 @@ storage - + - - IMPORT - + From 306b2833e977c61b68a4e3f295d3c26abd4902a9 Mon Sep 17 00:00:00 2001 From: KaiqianYang <89442934+KaiqianYang@users.noreply.github.com> Date: Mon, 9 Sep 2024 12:50:37 +0800 Subject: [PATCH 12/13] Update azure-aws-config.windup.xml --- .../azure/azure-aws-config.windup.xml | 37 +++++++++++++++++-- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/rules/rules-reviewed/azure/azure-aws-config.windup.xml b/rules/rules-reviewed/azure/azure-aws-config.windup.xml index 545c2912..71286833 100644 --- a/rules/rules-reviewed/azure/azure-aws-config.windup.xml +++ b/rules/rules-reviewed/azure/azure-aws-config.windup.xml @@ -67,10 +67,6 @@ - - - - @@ -105,6 +101,39 @@ + + + + + + + + + + + + + The application contains AWS S3 usage. Consider using Azure Blob Storage instead. + + * Provision **Azure Blob Storage**: Create an Azure Blob Storage account in the Azure portal. Choose the appropriate storage tier (Hot, Cool, or Archive) based on your application's data access patterns and cost considerations. + + * **Update application code**: Modify the Java application's code to replace AWS SDK calls with the equivalent Azure Storage SDK calls for Azure Blob Storage. Update the code to authenticate and interact with Azure Blob Storage using the Azure SDK for Java. + + * **Map S3 functionality** to Azure Blob Storage: Understand the differences between AWS S3 and Azure Blob Storage, and adjust your application logic accordingly. Map S3 concepts (buckets, objects, permissions, etc.) to their Azure Blob Storage equivalents (containers, blobs, shared access signatures, etc.). + + * **Migrate data** from S3 to Azure Blob Storage: Plan and execute the migration of your data from AWS S3 to Azure Blob Storage. You can use Azure Storage Data Transfer Tool, AzCopy, or other migration tools to copy the data from S3 buckets to Azure Blob Storage containers. + + * Update **access permissions**: Adjust the access permissions and policies in Azure Blob Storage to match your application's requirements. Azure provides various options for controlling access, including shared access signatures (SAS), Azure AD authentication, and role-based access control (RBAC). + + * Validate functionality and **performance**: Thoroughly test the updated application to ensure that it can read from and write to Azure Blob Storage correctly. Validate the performance of data transfer and any other operations to ensure they meet your application's requirements. + + + + + storage + + + From f0ef8704d5fa8cd8450623808ff356e464a869b6 Mon Sep 17 00:00:00 2001 From: KaiqianYang <89442934+KaiqianYang@users.noreply.github.com> Date: Mon, 9 Sep 2024 13:03:00 +0800 Subject: [PATCH 13/13] Update azure-aws-config.windup.xml --- .../azure/azure-aws-config.windup.xml | 37 ++++++++++++++++--- 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/rules/rules-reviewed/azure/azure-aws-config.windup.xml b/rules/rules-reviewed/azure/azure-aws-config.windup.xml index 71286833..bf89eaf8 100644 --- a/rules/rules-reviewed/azure/azure-aws-config.windup.xml +++ b/rules/rules-reviewed/azure/azure-aws-config.windup.xml @@ -103,12 +103,7 @@ - - - - - - + @@ -134,6 +129,36 @@ + + + + + + + + + + The application contains AWS S3 dependency usage. Consider using Azure Blob Storage instead. + + * Provision **Azure Blob Storage**: Create an Azure Blob Storage account in the Azure portal. Choose the appropriate storage tier (Hot, Cool, or Archive) based on your application's data access patterns and cost considerations. + + * **Update application code**: Modify the Java application's code to replace AWS SDK calls with the equivalent Azure Storage SDK calls for Azure Blob Storage. Update the code to authenticate and interact with Azure Blob Storage using the Azure SDK for Java. + + * **Map S3 functionality** to Azure Blob Storage: Understand the differences between AWS S3 and Azure Blob Storage, and adjust your application logic accordingly. Map S3 concepts (buckets, objects, permissions, etc.) to their Azure Blob Storage equivalents (containers, blobs, shared access signatures, etc.). + + * **Migrate data** from S3 to Azure Blob Storage: Plan and execute the migration of your data from AWS S3 to Azure Blob Storage. You can use Azure Storage Data Transfer Tool, AzCopy, or other migration tools to copy the data from S3 buckets to Azure Blob Storage containers. + + * Update **access permissions**: Adjust the access permissions and policies in Azure Blob Storage to match your application's requirements. Azure provides various options for controlling access, including shared access signatures (SAS), Azure AD authentication, and role-based access control (RBAC). + + * Validate functionality and **performance**: Thoroughly test the updated application to ensure that it can read from and write to Azure Blob Storage correctly. Validate the performance of data transfer and any other operations to ensure they meet your application's requirements. + + + + + storage + + +