An AFI is created using an AWS API called aws ec2 create-fpga-image. When calling the API, the developer passes a pointer to an S3 bucket which contains a tar file. The tar file includes the encrypted and compiled fpga image(a.k.a. Design Checkpoint or DCP) and a mandatory manifest.txt file.
Example API Usage:
$ aws ec2 create-fpga-image \
--name <afi-name> \
--description <afi-description> \
--input-storage-location Bucket=<dcp-bucket-name>,Key=<path-to-tarball> \
--logs-storage-location Bucket=<logs-bucket-name>,Key=<path-to-logs> \
[ --client-token <value> ] \
[ --dry-run | --no-dry-run ]
Errors can occurs when calling this API and this document provides the specification for the error codes.
-
INACCESSIBLE_INPUTError accessing resource in S3. Check permissions, naming, and ensure the bucket is within the same region as the API endpoint. -
INPUT_SIZE_ILLEGALInput file size is not valid -
DCP_INTEGRITY_UNVERIFIEDThe DCP integrity SHA-256 hash does not match the provided DCP -
MANIFEST_NOT_FOUNDNo manifest file was found. See AWS FPGA HDK documentation for valid input format. We recommend using the scripts provided with AWS FPGA HDK -
MANIFEST_PARSE_FAILEDParsing the manifest file failed. We recommend using the scripts provided with AWS FPGA HDK -
SHELL_VERSION_INVALIDThe Shell Version provided is invalid -
SHELL_VERSION_DEPRECATEDThe Shell Version provided is deprecated -
PCIID_SYNTAX_INVALIDPCI ID is not provided, wrongly formatted, or value is out of range valid range 1-65535 or 0x0001-0xFFFF -
PCIID_FORBIDDENPCI ID value used is reserved. See AWS FPGA HDK documentation for reserved PCI -
CLK_ILLEGALProvided clocks configuration is illegal. See AWS FPGA HDK documentation for supported clocks configuration -
CORRUPT_ARCHIVEFailed to parse the input tarball archive -
DCP_NOT_FOUNDNo DCP file was found with the supplied filename. See AWS FPGA HDK documentation for valid input format. We recommend using the scripts provided with AWS FPGA HDK -
DCP_CORRUPTCould not parse the input DCP. The DCP files seems to be corrupt -
DCP_NOT_ENCRYPTEDThe DCP was not encrypted