This topic describes how to use faascmd commands.

Prerequisites

faascmd is configured. For more information, see Configure faascmd.

The following conditions are met before you can use the authorization command:

  1. An Object Storage Service (OSS) bucket is created for FPGA as a Service (FaaS) to upload the originally compiled DCP file.
  2. A folder named compiling_logs is created in the bucket.

Background information

Description of the faascmd command syntax:

  • All commands and parameters provided by faascmd are case-sensitive.
  • In faascmd commands, extra spaces are not allowed between parameters, equal signs (=), or values.

This topic describes the following faascmd commands:

Authorize RAM users

You can run the faascmd auth command to authorize a RAM user to access your OSS buckets as a FaaS administrator.

Command format:
faascmd auth --bucket=<YourFaasOSSBucketName>
Sample code Authorize RAM users
Note If your Alibaba Cloud account has multiple RAM users, we recommend that you share the OSS bucket to the RAM users so that you do not have to repeatedly modify or overwrite authorization policies.

View an authorization policy

You can run the faascmd list_policy command to check whether the specified OSS bucket is contained in the corresponding authorization policy (faasPolicy).

Command format:
faascmd list_policy
Sample code View an authorization policy
Note Check whether your OSS bucket and the compiling_logs folder in the bucket are displayed in the policy information.

Delete an authorization policy

You can run the faascmd delete_policy command to delete an authorization policy (faasPolicy).

Command format:
faascmd delete_policy
Sample code Delete an authorization policy
Note If your Alibaba Cloud account has multiple RAM users, we recommend that you perform this operation in the RAM console to avoid unexpected policy deletion.

View all objects in an OSS bucket

You can run the faascmd list_objects command to view all objects in an OSS bucket.

Command format:
faascmd list_objects
Sample code View objects
Note You can combine this command with the grep command to filter objects. Example: faascmd list_objects | grep "xxx".

Upload an originally compiled file

You can run the faascmd upload_object command to upload original copies of files compiled on your local PC to a specified OSS bucket.

Command format:
faascmd upload_object --object=<NewFileNameInOSSBucket> --file=<YourFilePath>/<FileNameYouWantToUpload>           
Sample code upload_object
Note
  • If the file to be uploaded is stored in the current directory, you do not need to specify a path.
  • Locally compiled original files provided by Intel FPGA are in the .gbs format and those provided by Xilinx FPGA are compressed as packages in the .tar format after script processing.

Download an object from an OSS bucket

You can run the faascmd get_object command to download the specified object from an OSS bucket.

Command format:
faascmd get_object --object=<YourObjectName> --file=<YourLocalPath>/<YourFileName>
Sample code get_object
Note If you do not specify a path, the object is downloaded to the current folder.

Create an FPGA image

You can run the faascmd create_image command to submit a request to create an FPGA image. If the request succeeds, FpgaImageUUID is returned.

Command format:
faascmd create_image --object=<YourObjectName> 
--fpgatype=<intel/xilinx>  --encrypted=<true/false> 
--kmskey=<key/If encrypted is set to true, this parameter is required. Otherwise, this parameter is optional.> 
--shell=<Shell Version/Required> --name=<name/Optional> 
--description=<description/Optional> --tags=<tags/Optional>
Sample code create_image

View FPGA images

You can run the faascmd list_images command to view the information of all FPGA images that you created.

Command format:
faascmd list_images
Sample code list_images
Note Each RAM user can have up to 10 FPGA images.

Delete FPGA images

You can run the faascmd delete_image command to delete an FPGA image.

Command format:
faascmd delete_image --imageuuid=<yourImageuuid>
Sample code delete_image

Download an FPGA image

You can run the faascmd download_image command to submit a request to download an FPGA image.

Command format:
faascmd download_image  --instanceId=<YourInstanceId> 
--fpgauuid=<Yourfpgauuid> --fpgatype=<intel/xilinx> 
--imageuuid=<YourImageuuid> --imagetype=<afu> 
--shell=<YourImageShellVersion>
Sample code
faascmd download_image --instanceId=XXXXX --fpgauuid=XXXX --fpgatype=intel --imageuuid=XXXX

View the download status of an FPGA image

You can run the faascmd fpga_status command to view the status of the current FPGA board card or the download progress of the FPGA image.

Command format:
faascmd fpga_status --fpgauuid=<Yourfpgauuid> --instanceId=<YourInstanceId>
Sample code fpga_status

Publish an FPGA image

You can run the faascmd publish_image command to submit a request to publish an FPGA image.

Command format:
faascmd publish_image --imageuuid=<YourImageuuid> --imageid=<YourInstanceImageid>
Note
  • imageuuid indicates the ID of the image that you want to publish to Alibaba Cloud Marketplace. You can run the faascmd list_images command to view this image ID.
  • imageid indicates the image ID of the current FPGA-accelerated instance. You can go to the product details page in the ECS console to view this image ID.

Query information of FPGA-accelerated instances

You can run the faascmd list_instances command to query the basic information of an FPGA-accelerated instance such as the instance ID, FPGA board card information, and shell version.

Command format:
faascmd list_instances --instanceId=<YourInstanceId>
Sample code list_instances